postgres.git / summary / log / commit / refs

commit    acc67ffd0a8c728b928958e75b76ee544b64c2d8
Author:   Peter Eisentraut <peter_e@gmx.net>
Date:     Wed Jan 10 14:22:07 2018 +0000

    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.


src/backend/utils/mmgr/portalmem.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index 9edc1ccc832..84c68ac1895 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))); [parent: d16c2de6244f]