pgsql: Build EC members for child join rels in the right memory context
Build EC members for child join rels in the right memory context.
This patch prevents crashes or wrong plans when partition-wise joins
are considered during GEQO planning, as a consequence of the
EquivalenceClass data structures becoming corrupt after a GEQO
context reset.
A remaining problem is that successive GEQO cycles will make multiple
copies of the required EC members, since add_child_join_rel_equivalences
has no idea that such members might exist already. For now we'll just
live with that. The lack of field complaints of crashes suggests that
this is a mighty little-used situation.
Back-patch to v12 where this code was introduced.
Discussion: /messages/by-id/1683100.1601860653@sss.pgh.pa.us
Branch
------
REL_12_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/3d69efc4f07d773329dfbd39d6ec67a025cf7339
Modified Files
--------------
src/backend/optimizer/path/equivclass.c | 13 +++++++++++++
1 file changed, 13 insertions(+)