From 4a39057e590cc5ba7583516ceeef52a242867cad Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 13 Oct 2003 22:47:15 +0000 Subject: [PATCH] Back out makeNode() patch to fix gcc 3.3.1 warning. --- src/backend/commands/tablecmds.c | 19 +++++---- src/backend/executor/execQual.c | 67 ++++++++++++++++---------------- src/backend/port/sysv_shmem.c | 4 +- 3 files changed, 44 insertions(+), 46 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index f0550ff7ac..b77faed0d3 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.90 2003/10/13 20:02:52 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.91 2003/10/13 22:47:15 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -3397,7 +3397,6 @@ validateForeignKeyConstraint(FkConstraint *fkconstraint, Relation pkrel) { HeapScanDesc scan; - TriggerData *trigdata = makeNode(TriggerData); /* must be Node aligned */ HeapTuple tuple; Trigger trig; List *list; @@ -3455,6 +3454,7 @@ validateForeignKeyConstraint(FkConstraint *fkconstraint, while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL) { FunctionCallInfoData fcinfo; + TriggerData trigdata; /* * Make a call to the trigger function @@ -3466,21 +3466,20 @@ validateForeignKeyConstraint(FkConstraint *fkconstraint, /* * We assume RI_FKey_check_ins won't look at flinfo... */ - trigdata->type = T_TriggerData; - trigdata->tg_event = TRIGGER_EVENT_INSERT | TRIGGER_EVENT_ROW; - trigdata->tg_relation = rel; - trigdata->tg_trigtuple = tuple; - trigdata->tg_newtuple = NULL; - trigdata->tg_trigger = &trig; + trigdata.type = T_TriggerData; + trigdata.tg_event = TRIGGER_EVENT_INSERT | TRIGGER_EVENT_ROW; + trigdata.tg_relation = rel; + trigdata.tg_trigtuple = tuple; + trigdata.tg_newtuple = NULL; + trigdata.tg_trigger = &trig; - fcinfo.context = (Node *) trigdata; + fcinfo.context = (Node *) &trigdata; RI_FKey_check_ins(&fcinfo); } heap_endscan(scan); - pfree(trigdata); pfree(trig.tgargs); } diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index d01ee62b20..1ee41ddb8c 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; } diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c index 268b55802c..8ee9b32bf3 100644 --- a/src/backend/port/sysv_shmem.c +++ b/src/backend/port/sysv_shmem.c @@ -10,7 +10,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/port/sysv_shmem.c,v 1.20 2003/10/12 23:19:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/port/sysv_shmem.c,v 1.21 2003/10/13 22:47:15 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -365,7 +365,7 @@ PGSharedMemoryAttach(IpcMemoryKey key, IpcMemoryId *shmid) if (hdr->magic != PGShmemMagic) { - shmdt((void *)hdr); + shmdt(hdr); return NULL; /* segment belongs to a non-Postgres app */ }