diff options
author | Bruce Momjian <bruce@momjian.us> | 2003-10-12 23:19:21 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2003-10-12 23:19:21 +0000 |
commit | 4a2c34d4a035e59be8d4a8eaaa093e701dbef370 (patch) | |
tree | 7bb75eb27de331f150838e477e49bb24cbdfcf5b /src/backend/commands/tablecmds.c | |
parent | 037468eff2e1fddefd0ece3e8208e70dc0a380e7 (diff) | |
download | postgresql-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.c | 19 |
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); } |