>>>>> "Chapman" == Chapman Flack <c...@anastigmatix.net> writes:
Chapman> Please bear with me as I check my understanding of snapshot Chapman> management by looking at PersistHoldablePortal(). There's a Chapman> PushActiveSnapshot(queryDesc->snapshot) in there. Is that Chapman> because: Chapman> (d) some other reason I haven't thought of ? It has to be pushed as the active snapshot so that it's the snapshot that the executor uses to run the query to populate the tuplestore which becomes the "held" portal content. I think you're confusing the stack of active snapshots with the registry of snapshots. The snapshot of a portal that's not currently running in the executor won't be on the stack, but it will be registered (which is enough to maintain the session's reported xmin, which is what prevents visible data from being vacuumed away). -- Andrew (irc:RhodiumToad)