diff options
author | Bruce Momjian <bruce@momjian.us> | 2003-10-13 22:47:15 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2003-10-13 22:47:15 +0000 |
commit | 4a39057e590cc5ba7583516ceeef52a242867cad (patch) | |
tree | fad71ffbfa5155127a79fcc89c7e24ebb2db538b /src/backend/executor/execQual.c | |
parent | 014a0a3da1296104cfde959fa4cd1673cb557ad5 (diff) | |
download | postgresql-4a39057e590cc5ba7583516ceeef52a242867cad.tar.gz postgresql-4a39057e590cc5ba7583516ceeef52a242867cad.zip |
Back out makeNode() patch to fix gcc 3.3.1 warning.
Diffstat (limited to 'src/backend/executor/execQual.c')
-rw-r--r-- | src/backend/executor/execQual.c | 67 |
1 files changed, 33 insertions, 34 deletions
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index d01ee62b20d..1ee41ddb8ce 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.149 2003/10/12 23:19:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execQual.c,v 1.150 2003/10/13 22:47:15 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -699,8 +699,7 @@ ExecMakeFunctionResult(FuncExprState *fcache, List *arguments = fcache->args; Datum result; FunctionCallInfoData fcinfo; - /* for functions returning sets, must be aligned as Node, so use makeNode */ - ReturnSetInfo *rsinfo = makeNode(ReturnSetInfo); + ReturnSetInfo rsinfo; /* for functions returning sets */ ExprDoneCond argDone; bool hasSetArg; int i; @@ -747,15 +746,15 @@ ExecMakeFunctionResult(FuncExprState *fcache, */ if (fcache->func.fn_retset) { - fcinfo.resultinfo = (Node *) rsinfo; - rsinfo->type = T_ReturnSetInfo; - rsinfo->econtext = econtext; - rsinfo->expectedDesc = NULL; - rsinfo->allowedModes = (int) SFRM_ValuePerCall; - rsinfo->returnMode = SFRM_ValuePerCall; + fcinfo.resultinfo = (Node *) &rsinfo; + rsinfo.type = T_ReturnSetInfo; + rsinfo.econtext = econtext; + rsinfo.expectedDesc = NULL; + rsinfo.allowedModes = (int) SFRM_ValuePerCall; + rsinfo.returnMode = SFRM_ValuePerCall; /* isDone is filled below */ - rsinfo->setResult = NULL; - rsinfo->setDesc = NULL; + rsinfo.setResult = NULL; + rsinfo.setDesc = NULL; } /* @@ -804,10 +803,10 @@ ExecMakeFunctionResult(FuncExprState *fcache, if (callit) { fcinfo.isnull = false; - rsinfo->isDone = ExprSingleResult; + rsinfo.isDone = ExprSingleResult; result = FunctionCallInvoke(&fcinfo); *isNull = fcinfo.isnull; - *isDone = rsinfo->isDone; + *isDone = rsinfo.isDone; } else { @@ -904,7 +903,7 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, TupleDesc tupdesc = NULL; Oid funcrettype; FunctionCallInfoData fcinfo; - ReturnSetInfo *rsinfo = makeNode(ReturnSetInfo); /* must be Node aligned */ + ReturnSetInfo rsinfo; MemoryContext callerContext; MemoryContext oldcontext; TupleTableSlot *slot; @@ -993,15 +992,15 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, * doesn't actually get to see the resultinfo, but set it up anyway * because we use some of the fields as our own state variables. */ - fcinfo.resultinfo = (Node *) rsinfo; - rsinfo->type = T_ReturnSetInfo; - rsinfo->econtext = econtext; - rsinfo->expectedDesc = expectedDesc; - rsinfo->allowedModes = (int) (SFRM_ValuePerCall | SFRM_Materialize); - rsinfo->returnMode = SFRM_ValuePerCall; + fcinfo.resultinfo = (Node *) &rsinfo; + rsinfo.type = T_ReturnSetInfo; + rsinfo.econtext = econtext; + rsinfo.expectedDesc = expectedDesc; + rsinfo.allowedModes = (int) (SFRM_ValuePerCall | SFRM_Materialize); + rsinfo.returnMode = SFRM_ValuePerCall; /* isDone is filled below */ - rsinfo->setResult = NULL; - rsinfo->setDesc = NULL; + rsinfo.setResult = NULL; + rsinfo.setDesc = NULL; /* * Switch to short-lived context for calling the function or @@ -1029,17 +1028,17 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, if (direct_function_call) { fcinfo.isnull = false; - rsinfo->isDone = ExprSingleResult; + rsinfo.isDone = ExprSingleResult; result = FunctionCallInvoke(&fcinfo); } else { result = ExecEvalExpr(funcexpr, econtext, - &fcinfo.isnull, &rsinfo->isDone); + &fcinfo.isnull, &rsinfo.isDone); } /* Which protocol does function want to use? */ - if (rsinfo->returnMode == SFRM_ValuePerCall) + if (rsinfo.returnMode == SFRM_ValuePerCall) { /* * Check for end of result set. @@ -1048,7 +1047,7 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, * tupdesc or tuplestore (since we can't get a tupdesc in the * function-returning-tuple case) */ - if (rsinfo->isDone == ExprEndResult) + if (rsinfo.isDone == ExprEndResult) break; /* @@ -1094,8 +1093,8 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, } tupstore = tuplestore_begin_heap(true, false, SortMem); MemoryContextSwitchTo(oldcontext); - rsinfo->setResult = tupstore; - rsinfo->setDesc = tupdesc; + rsinfo.setResult = tupstore; + rsinfo.setDesc = tupdesc; } /* @@ -1128,13 +1127,13 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, /* * Are we done? */ - if (rsinfo->isDone != ExprMultipleResult) + if (rsinfo.isDone != ExprMultipleResult) break; } - else if (rsinfo->returnMode == SFRM_Materialize) + else if (rsinfo.returnMode == SFRM_Materialize) { /* check we're on the same page as the function author */ - if (!first_time || rsinfo->isDone != ExprSingleResult) + if (!first_time || rsinfo.isDone != ExprSingleResult) ereport(ERROR, (errcode(ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED), errmsg("table-function protocol for materialize mode was not followed"))); @@ -1145,7 +1144,7 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, ereport(ERROR, (errcode(ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED), errmsg("unrecognized table-function returnMode: %d", - (int) rsinfo->returnMode))); + (int) rsinfo.returnMode))); first_time = false; } @@ -1153,8 +1152,8 @@ ExecMakeTableFunctionResult(ExprState *funcexpr, MemoryContextSwitchTo(callerContext); /* The returned pointers are those in rsinfo */ - *returnDesc = rsinfo->setDesc; - return rsinfo->setResult; + *returnDesc = rsinfo.setDesc; + return rsinfo.setResult; } |