|
7 | 7 | * Portions Copyright (c) 1994, Regents of the University of California
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.193 2005/08/23 22:40:08 tgl Exp $ |
| 10 | + * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.194 2005/08/24 17:38:35 tgl Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -1492,9 +1492,10 @@ ExecBRDeleteTriggers(EState *estate, ResultRelInfo *relinfo,
|
1492 | 1492 | TriggerDesc*trigdesc=relinfo->ri_TrigDesc;
|
1493 | 1493 | intntrigs=trigdesc->n_before_row[TRIGGER_EVENT_DELETE];
|
1494 | 1494 | int*tgindx=trigdesc->tg_before_row[TRIGGER_EVENT_DELETE];
|
| 1495 | +boolresult= true; |
1495 | 1496 | TriggerDataLocTriggerData;
|
1496 | 1497 | HeapTupletrigtuple;
|
1497 |
| -HeapTuplenewtuple=NULL; |
| 1498 | +HeapTuplenewtuple; |
1498 | 1499 | TupleTableSlot*newSlot;
|
1499 | 1500 | inti;
|
1500 | 1501 |
|
@@ -1524,13 +1525,16 @@ ExecBRDeleteTriggers(EState *estate, ResultRelInfo *relinfo,
|
1524 | 1525 | relinfo->ri_TrigInstrument,
|
1525 | 1526 | GetPerTupleMemoryContext(estate));
|
1526 | 1527 | if (newtuple==NULL)
|
| 1528 | +{ |
| 1529 | +result= false;/* tell caller to suppress delete */ |
1527 | 1530 | break;
|
| 1531 | +} |
1528 | 1532 | if (newtuple!=trigtuple)
|
1529 | 1533 | heap_freetuple(newtuple);
|
1530 | 1534 | }
|
1531 | 1535 | heap_freetuple(trigtuple);
|
1532 | 1536 |
|
1533 |
| -return(newtuple==NULL) ? false : true; |
| 1537 | +returnresult; |
1534 | 1538 | }
|
1535 | 1539 |
|
1536 | 1540 | void
|
|