diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-05-29 01:59:17 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-05-29 01:59:17 +0000 |
commit | 18952f67446da73f938d213b5225b99e95657837 (patch) | |
tree | 7ad26843000b8a17e798dafacbd29baf2d390fa1 /src/backend/commands/command.c | |
parent | 147ccf5c8045c79a9c8194044359e140c9074ed7 (diff) | |
download | postgresql-18952f67446da73f938d213b5225b99e95657837.tar.gz postgresql-18952f67446da73f938d213b5225b99e95657837.zip |
Second round of fmgr changes: triggers are now invoked in new style,
CurrentTriggerData is history.
Diffstat (limited to 'src/backend/commands/command.c')
-rw-r--r-- | src/backend/commands/command.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c index 4fb184b7f6d..22ae1547691 100644 --- a/src/backend/commands/command.c +++ b/src/backend/commands/command.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.72 2000/05/28 17:55:54 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.73 2000/05/29 01:59:06 tgl Exp $ * * NOTES * The PortalExecutorHeapMemory crap needs to be eliminated @@ -1159,19 +1159,24 @@ AlterTableAddConstraint(const char *relationName, while (HeapTupleIsValid(tuple = heap_getnext(scan, 0))) { - TriggerData newtrigdata; + /* Make a call to the check function */ + /* No parameters are passed, but we do set a context */ + FunctionCallInfoData fcinfo; + TriggerData trigdata; - newtrigdata.tg_event = TRIGGER_EVENT_INSERT | TRIGGER_EVENT_ROW; - newtrigdata.tg_relation = rel; - newtrigdata.tg_trigtuple = tuple; - newtrigdata.tg_newtuple = NULL; - newtrigdata.tg_trigger = &trig; + MemSet(&fcinfo, 0, sizeof(fcinfo)); + /* We assume RI_FKey_check_ins won't look at flinfo... */ - CurrentTriggerData = &newtrigdata; + 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; - RI_FKey_check_ins(NULL); + fcinfo.context = (Node *) &trigdata; - /* Make a call to the check function */ + RI_FKey_check_ins(&fcinfo); } heap_endscan(scan); heap_close(rel, NoLock); /* close rel but keep |