• Tom Lane's avatar
    PortalRun must guard against the possibility that the portal it's · 4c77cbb2
    Tom Lane authored
    running contains VACUUM or a similar command that will internally start
    and commit transactions.  In such a case, the original caller values of
    CurrentMemoryContext and CurrentResourceOwner will point to objects that
    will be destroyed by the internal commit.  We must restore these pointers
    to point to the newly-manufactured transaction context and resource owner,
    rather than possibly pointing to deleted memory.
    Also tweak xact.c so that AbortTransaction and AbortSubTransaction
    forcibly restore a sane value for CurrentResourceOwner, much as they
    have always done for CurrentMemoryContext.  I'm not certain this is
    necessary but I'm feeling paranoid today.
    Responds to Sean Chittenden's bug report of 4-Oct.
    4c77cbb2
pquery.c 35.9 KB