• Tom Lane's avatar
    Build EC members for child join rels in the right memory context. · d7885b1f
    Tom Lane authored
    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: https://postgr.es/m/1683100.1601860653@sss.pgh.pa.us
    d7885b1f
equivclass.c 93.9 KB