From f58df0f5928628b88c4d5152828a1a3a474e34c8 Mon Sep 17 00:00:00 2001 From: Pavan Deolasee Date: Tue, 18 Aug 2015 17:06:23 +0530 Subject: [PATCH] Free queryDesc while dropping a portal. Once we decide that the portal is no longer an active producing portal, we decide to release all resources. But before that we must free the queryDesc and unregister any snapshots to avoid snapshot-leak warnings later on --- src/backend/utils/mmgr/portalmem.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index b1e1dc935e..2880b2c728 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -584,6 +584,15 @@ PortalDrop(Portal portal, bool isTopCommit) */ if (portalIsProducing(portal)) return; + + if (portal->queryDesc) + { + ResourceOwner saveResourceOwner = CurrentResourceOwner; + CurrentResourceOwner = portal->resowner; + FreeQueryDesc(portal->queryDesc); + CurrentResourceOwner = saveResourceOwner; + portal->queryDesc = NULL; + } #endif /* -- 2.39.5