Re: pgsql: Fix incorrect handling of join clauses pushed into parameterized
От | Andrew Dunstan |
---|---|
Тема | Re: pgsql: Fix incorrect handling of join clauses pushed into parameterized |
Дата | |
Msg-id | CAA8=A78B1=X0HtGiUquTNQZ26PW_xuiZ4qSuxfQ=udkA2Fry2w@mail.gmail.com обсуждение исходный текст |
Ответ на | pgsql: Fix incorrect handling of join clauses pushed intoparameterized (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-committers |
On Thu, Apr 19, 2018 at 3:49 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Fix incorrect handling of join clauses pushed into parameterized paths. > > In some cases a clause attached to an outer join can be pushed down into > the outer join's RHS even though the clause is not degenerate --- this > can happen if we choose to make a parameterized path for the RHS. If > the clause ends up attached to a lower outer join, we'd misclassify it > as being a "join filter" not a plain "filter" condition at that node, > leading to wrong query results. > > To fix, teach extract_actual_join_clauses to examine each join clause's > required_relids, not just its is_pushed_down flag. (The latter now > seems vestigial, or at least in need of rethinking, but we won't do > anything so invasive as redefining it in a bug-fix patch.) > > This has been wrong since we introduced parameterized paths in 9.2, > though it's evidently hard to hit given the lack of previous reports. > The test case used here involves a lateral function call, and I think > that a lateral reference may be required to get the planner to select > a broken plan; though I wouldn't swear to that. In any case, even if > LATERAL is needed to trigger the bug, it still affects all supported > branches, so back-patch to all. > > Per report from Andreas Karlsson. Thanks to Andrew Gierth for > preliminary investigation. > > Discussion: https://postgr.es/m/f8128b11-c5bf-3539-48cd-234178b2314d@proxel.se > > Branch > ------ > REL9_6_STABLE > Seems to have broken the buildfarm on 9.6. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-committers по дате отправления: