]> granicus.if.org Git - postgresql/commit
Adjust overly strict Assert
authorDavid Rowley <drowley@postgresql.org>
Sun, 21 Jul 2019 22:29:41 +0000 (10:29 +1200)
committerDavid Rowley <drowley@postgresql.org>
Sun, 21 Jul 2019 22:29:41 +0000 (10:29 +1200)
commite1a0f6a983068675813074847e1d0d61bd37ac0e
tree670240ac75e82c99834c721396c3f65cd2ed351d
parent330cafdfaa11ebe53e3e59688acac1577ae0cb34
Adjust overly strict Assert

3373c7155 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
src/backend/optimizer/path/equivclass.c