mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Improve EXPLAIN ANALYZE to show the time spent in each trigger when
executing a statement that fires triggers. Formerly this time was included in "Total runtime" but not otherwise accounted for. As a side benefit, we avoid re-opening relations when firing non-deferred AFTER triggers, because the trigger code can re-use the main executor's ResultRelInfo data structure.
This commit is contained in:
@ -14,7 +14,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.38 2004/12/31 21:59:41 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.39 2005/03/25 21:57:58 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -281,8 +281,8 @@ PortalCleanup(Portal portal)
|
||||
PG_TRY();
|
||||
{
|
||||
CurrentResourceOwner = portal->resowner;
|
||||
ExecutorEnd(queryDesc);
|
||||
/* we do not need AfterTriggerEndQuery() here */
|
||||
ExecutorEnd(queryDesc);
|
||||
}
|
||||
PG_CATCH();
|
||||
{
|
||||
@ -382,8 +382,8 @@ PersistHoldablePortal(Portal portal)
|
||||
* Now shut down the inner executor.
|
||||
*/
|
||||
portal->queryDesc = NULL; /* prevent double shutdown */
|
||||
ExecutorEnd(queryDesc);
|
||||
/* we do not need AfterTriggerEndQuery() here */
|
||||
ExecutorEnd(queryDesc);
|
||||
|
||||
/*
|
||||
* Reset the position in the result set: ideally, this could be
|
||||
|
Reference in New Issue
Block a user