diff options
Diffstat (limited to 'src/backend/executor/spi.c')
-rw-r--r-- | src/backend/executor/spi.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 4ffb27b0139..636eed31eee 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.125 2004/08/29 05:06:42 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.126 2004/09/10 18:39:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -16,6 +16,7 @@ #include "access/printtup.h" #include "catalog/heap.h" +#include "commands/trigger.h" #include "executor/spi_priv.h" #include "tcop/tcopprot.h" #include "utils/lsyscache.h" @@ -1434,6 +1435,8 @@ _SPI_pquery(QueryDesc *queryDesc, bool runit, ResetUsage(); #endif + AfterTriggerBeginQuery(); + ExecutorStart(queryDesc, useCurrentSnapshot, false); ExecutorRun(queryDesc, ForwardScanDirection, (long) tcount); @@ -1447,6 +1450,11 @@ _SPI_pquery(QueryDesc *queryDesc, bool runit, elog(ERROR, "consistency check on SPI tuple count failed"); } + ExecutorEnd(queryDesc); + + /* Take care of any queued AFTER triggers */ + AfterTriggerEndQuery(); + if (queryDesc->dest->mydest == SPI) { SPI_processed = _SPI_current->processed; @@ -1459,8 +1467,6 @@ _SPI_pquery(QueryDesc *queryDesc, bool runit, res = SPI_OK_UTILITY; } - ExecutorEnd(queryDesc); - FreeQueryDesc(queryDesc); #ifdef SPI_EXECUTOR_STATS |