|
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 |
|