aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/tablecmds.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-10-12 23:19:21 +0000
committerBruce Momjian <bruce@momjian.us>2003-10-12 23:19:21 +0000
commit4a2c34d4a035e59be8d4a8eaaa093e701dbef370 (patch)
tree7bb75eb27de331f150838e477e49bb24cbdfcf5b /src/backend/commands/tablecmds.c
parent037468eff2e1fddefd0ece3e8208e70dc0a380e7 (diff)
downloadpostgresql-4a2c34d4a035e59be8d4a8eaaa093e701dbef370.tar.gz
postgresql-4a2c34d4a035e59be8d4a8eaaa093e701dbef370.zip
Use makeNode() to allocate structures that have to be cast to Node *,
rather than allocating them on the stack. Fixes complaint from gcc 3.3.1.
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r--src/backend/commands/tablecmds.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 137dde37dda..41760f39b97 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.88 2003/10/11 18:04:25 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.89 2003/10/12 23:19:21 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -3449,6 +3449,7 @@ validateForeignKeyConstraint(FkConstraint *fkconstraint,
Relation pkrel)
{
HeapScanDesc scan;
+ TriggerData *trigdata = makeNode(TriggerData); /* must be Node aligned */
HeapTuple tuple;
Trigger trig;
List *list;
@@ -3506,7 +3507,6 @@ validateForeignKeyConstraint(FkConstraint *fkconstraint,
while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
{
FunctionCallInfoData fcinfo;
- TriggerData trigdata;
/*
* Make a call to the trigger function
@@ -3518,20 +3518,21 @@ 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);
}