]> granicus.if.org Git - postgresql/commit
Fix crashes on plans with multiple Gather (Merge) nodes.
authorRobert Haas <rhaas@postgresql.org>
Mon, 18 Dec 2017 17:17:37 +0000 (12:17 -0500)
committerRobert Haas <rhaas@postgresql.org>
Mon, 18 Dec 2017 17:22:31 +0000 (12:22 -0500)
commitfd7c0fa732d97a4b4ebb58730e6244ea30d0a618
tree984e90d9e0d1d289a0de4dec67cb16445e5f0da3
parent7731c32087faf498db0562cc7e40d256ffc1750f
Fix crashes on plans with multiple Gather (Merge) nodes.

es_query_dsa turns out to be broken by design, because it supposes
that there is only one DSA for the whole query, whereas there is
actually one per Gather (Merge) node.  For now, work around that
problem by setting and clearing the pointer around the sections of
code that might need it.  It's probably a better idea to get rid of
es_query_dsa altogether in favor of having each node keep track
individually of which DSA is relevant, but that seems like more than
we would want to back-patch.

Thomas Munro, reviewed and tested by Andreas Seltenreich, Amit
Kapila, and by me.

Discussion: http://postgr.es/m/CAEepm=1U6as=brnVvMNixEV2tpi8NuyQoTmO8Qef0-VV+=7MDA@mail.gmail.com
src/backend/executor/execParallel.c
src/backend/executor/nodeGather.c
src/backend/executor/nodeGatherMerge.c