From: Peter Eisentraut Date: Wed, 10 Jan 2018 14:22:07 +0000 (-0500) Subject: Give more accurate error message for dropping pinned portal X-Git-Tag: REL_11_BETA1~959 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=acc67ffd0a8c728b928958e75b76ee544b64c2d8;p=postgresql Give more accurate error message for dropping pinned portal The previous code gave the same error message for attempting to drop pinned and active portals, but those are separate states, so give separate error messages. --- diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index 9edc1ccc83..84c68ac189 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -464,11 +464,17 @@ PortalDrop(Portal portal, bool isTopCommit) /* * Don't allow dropping a pinned portal, it's still needed by whoever - * pinned it. Not sure if the PORTAL_ACTIVE case can validly happen or - * not... + * pinned it. */ - if (portal->portalPinned || - portal->status == PORTAL_ACTIVE) + if (portal->portalPinned) + ereport(ERROR, + (errcode(ERRCODE_INVALID_CURSOR_STATE), + errmsg("cannot drop pinned portal \"%s\"", portal->name))); + + /* + * Not sure if the PORTAL_ACTIVE case can validly happen or not... + */ + if (portal->status == PORTAL_ACTIVE) ereport(ERROR, (errcode(ERRCODE_INVALID_CURSOR_STATE), errmsg("cannot drop active portal \"%s\"", portal->name)));