• Tom Lane's avatar
    Fix failure to set ActiveSnapshot while rewinding a cursor. · 04e5025b
    Tom Lane authored
    ActiveSnapshot needs to be set when we call ExecutorRewind because some
    plan node types may execute user-defined functions during their ReScan
    calls (nodeLimit.c does so, at least).  The wisdom of that is somewhat
    debatable, perhaps, but for now the simplest fix is to make sure the
    required context is valid.  Failure to do this typically led to a
    null-pointer-dereference core dump, though it's possible that in more
    complex cases a function could be executed with the wrong snapshot
    leading to very subtle misbehavior.
    
    Per report from Leif Jensen.  It's been broken for a long time, so
    back-patch to all active branches.
    04e5025b
portals.sql 10.7 KB