• David Rowley's avatar
    Adjust overly strict Assert · e1a0f6a9
    David Rowley authored
    3373c715 changed how we determine EquivalenceClasses for relations and
    added an Assert to ensure all relations mentioned in each EC's ec_relids
    was a RELOPT_BASEREL.  However, the join removal code may remove a LEFT
    JOIN and since it does not clean up EC members belonging to the removed
    relations it can leave RELOPT_DEADREL rels in ec_relids.
    
    Fix this by adjusting the Assert to allow RELOPT_DEADREL rels too.
    
    Reported-by: sqlsmith via Andreas Seltenreich
    Discussion: https://postgr.es/m/87y30r8sls.fsf@ansel.ydns.eu
    e1a0f6a9
equivclass.c 88.7 KB