From 8759b79d0fe8b9937b7cbebfed78480b3e6a94b2 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Thu, 20 Mar 2008 20:05:56 +0000 Subject: [PATCH] Add a couple of missing FreeQueryDesc calls. Noticed while testing a framework to keep track of snapshots in use. --- src/backend/commands/portalcmds.c | 4 +++- src/backend/executor/spi.c | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c index 6efd09c44b..c876f76d92 100644 --- a/src/backend/commands/portalcmds.c +++ b/src/backend/commands/portalcmds.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.69 2008/01/01 19:45:49 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/commands/portalcmds.c,v 1.70 2008/03/20 20:05:56 alvherre Exp $ * *------------------------------------------------------------------------- */ @@ -262,6 +262,7 @@ PortalCleanup(Portal portal) CurrentResourceOwner = portal->resowner; /* we do not need AfterTriggerEndQuery() here */ ExecutorEnd(queryDesc); + FreeQueryDesc(queryDesc); } PG_CATCH(); { @@ -362,6 +363,7 @@ PersistHoldablePortal(Portal portal) portal->queryDesc = NULL; /* prevent double shutdown */ /* we do not need AfterTriggerEndQuery() here */ ExecutorEnd(queryDesc); + FreeQueryDesc(queryDesc); /* * Set the position in the result set: ideally, this could be diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index a23c4d017a..b735791816 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.188 2008/02/12 04:09:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.189 2008/03/20 20:05:56 alvherre Exp $ * *------------------------------------------------------------------------- */ @@ -1541,7 +1541,6 @@ _SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls, { Node *stmt = (Node *) lfirst(lc2); bool canSetTag; - QueryDesc *qdesc; DestReceiver *dest; _SPI_current->processed = 0; @@ -1617,6 +1616,8 @@ _SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls, if (IsA(stmt, PlannedStmt) && ((PlannedStmt *) stmt)->utilityStmt == NULL) { + QueryDesc *qdesc; + qdesc = CreateQueryDesc((PlannedStmt *) stmt, ActiveSnapshot, crosscheck_snapshot, @@ -1790,6 +1791,7 @@ _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount) AfterTriggerEndQuery(queryDesc->estate); ExecutorEnd(queryDesc); + /* FreeQueryDesc is done by the caller */ #ifdef SPI_EXECUTOR_STATS if (ShowExecutorStats) -- 2.11.0