diff options
author | Tom Lane | 2005-08-24 17:38:35 +0000 |
---|---|---|
committer | Tom Lane | 2005-08-24 17:38:35 +0000 |
commit | a0a0bc02b72e6ad4f50470050da7f0c1147e697a (patch) | |
tree | c77dc8eb1404fd79c3c12270be816259a70fbf42 /src/backend/commands/trigger.c | |
parent | 130b2dd8ead85b9ee74de1e55d233ecbaf22c55d (diff) |
Fix ExecBRDeleteTriggers so that deletion is not suppressed when delete
triggers exist but are all disabled. Problem noted by Gavin Sherry in
original discussion of enable/disable trigger patch, but was never
addressed.
Diffstat (limited to 'src/backend/commands/trigger.c')
-rw-r--r-- | src/backend/commands/trigger.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index b1d2f4ce0db..b3caaa4ce3c 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.193 2005/08/23 22:40:08 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.194 2005/08/24 17:38:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1492,9 +1492,10 @@ ExecBRDeleteTriggers(EState *estate, ResultRelInfo *relinfo, TriggerDesc *trigdesc = relinfo->ri_TrigDesc; int ntrigs = trigdesc->n_before_row[TRIGGER_EVENT_DELETE]; int *tgindx = trigdesc->tg_before_row[TRIGGER_EVENT_DELETE]; + bool result = true; TriggerData LocTriggerData; HeapTuple trigtuple; - HeapTuple newtuple = NULL; + HeapTuple newtuple; TupleTableSlot *newSlot; int i; @@ -1524,13 +1525,16 @@ ExecBRDeleteTriggers(EState *estate, ResultRelInfo *relinfo, relinfo->ri_TrigInstrument, GetPerTupleMemoryContext(estate)); if (newtuple == NULL) + { + result = false; /* tell caller to suppress delete */ break; + } if (newtuple != trigtuple) heap_freetuple(newtuple); } heap_freetuple(trigtuple); - return (newtuple == NULL) ? false : true; + return result; } void |