pgsql: Further fixes in qual nullingrel adjustment for outer join commu
От | Tom Lane |
---|---|
Тема | pgsql: Further fixes in qual nullingrel adjustment for outer join commu |
Дата | |
Msg-id | E1pQYAs-000Qx0-Bp@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Further fixes in qual nullingrel adjustment for outer join commutation. One of the add_nulling_relids calls in deconstruct_distribute_oj_quals added an OJ relid to too few Vars, while the other added it to too many. We should consider the syntactic structure not min_left/righthand while deciding which Vars to decorate, and when considering pushing up a lower outer join pursuant to transforming the second form of OJ identity 3 to the first form, we only want to decorate Vars coming from its LHS. In a related bug, I realized that make_outerjoininfo was failing to check a very basic property that's needed to apply OJ identity 3: the syntactically-upper outer join clause can't refer to the lower join's LHS. This didn't break the join order restriction logic, but it led to setting bogus commute_xxx bits, possibly resulting in bogus nullingrel markings in modified quals. Richard Guo and Tom Lane Discussion: https://postgr.es/m/CAMbWs497CmBruMx1SOjepWEz+T5NWa4scqbdE9v7ZzSXqH_gQw@mail.gmail.com Discussion: https://postgr.es/m/CAEP4nAx9C5gXNBfEA0JBfz7B+5f1Bawt-RWQWyhev-wdps8BZA@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/acc5821e4dcb6b7df6ad1f806459f95fcaebadfc Modified Files -------------- src/backend/optimizer/plan/initsplan.c | 21 ++++++++++++++++----- src/test/regress/expected/join.out | 25 +++++++++++++++++++++++++ src/test/regress/sql/join.sql | 9 +++++++++ 3 files changed, 50 insertions(+), 5 deletions(-)
В списке pgsql-committers по дате отправления: