]> granicus.if.org Git - postgresql/commit
Fix some planner issues with degenerate outer join clauses.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 2 Aug 2015 00:57:41 +0000 (20:57 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 2 Aug 2015 00:57:41 +0000 (20:57 -0400)
commit1044541dccfed0da1f27b2b8929e9524a1f577b4
tree1af771cb42168cc13ba45a7b996c6831726f3a26
parenta4df781c9037584d66a6f04b0b010a5bab0b509b
Fix some planner issues with degenerate outer join clauses.

An outer join clause that didn't actually reference the RHS (perhaps only
after constant-folding) could confuse the join order enforcement logic,
leading to wrong query results.  Also, nested occurrences of such things
could trigger an Assertion that on reflection seems incorrect.

Per fuzz testing by Andreas Seltenreich.  The practical use of such cases
seems thin enough that it's not too surprising we've not heard field
reports about it.

This has been broken for a long time, so back-patch to all active branches.
src/backend/optimizer/path/joinrels.c
src/backend/optimizer/plan/initsplan.c
src/test/regress/expected/join.out
src/test/regress/sql/join.sql