Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> If the executor has buried in it the assumption that the snapshot
> can't change after startup, then does that mean that we need to start
> up and shut down the executor for each subquery?
Yes, I think so. That's the way it's always worked in the past;
see for example PortalRunMulti() and ProcessQuery(). I think trying
to change that is a high-risk, low-reward activity.
This probably means that the planner output for queries involving
writeable CTEs has to be a separate PlannedStmt per such CTE.
regards, tom lane