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. Branch ------ REL9_2_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/44618f92bb3f287124c616cc9d25cce5592c3d2b Modified Files -------------- src/backend/optimizer/path/joinrels.c | 26 ++++--- src/backend/optimizer/plan/initsplan.c | 18 ++++- src/test/regress/expected/join.out | 129 ++++++++++++++++++++++++++++++++ src/test/regress/sql/join.sql | 50 +++++++++++++ 4 files changed, 211 insertions(+), 12 deletions(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
