Re: wrong query result due to wang plan - Mailing list pgsql-hackers

From Richard Guo
Subject Re: wrong query result due to wang plan
Date
Msg-id CAMbWs49De1Wsk3QPKK9BQW_H0Pk2LMz7XvX8aO=MSq+FNvazdw@mail.gmail.com
Whole thread Raw
In response to Re: wrong query result due to wang plan  (Richard Guo <guofenglinux@gmail.com>)
List pgsql-hackers

On Thu, Feb 16, 2023 at 5:50 PM Richard Guo <guofenglinux@gmail.com> wrote:
It seems we still need to check whether a variable-free qual comes from
somewhere that is below the nullable side of an outer join before we
decide that it can be evaluated at join domain level, just like we did
before.  So I wonder if we can add a 'below_outer_join' flag in
JoinTreeItem, fill its value during deconstruct_recurse, and check it in
distribute_qual_to_rels() like

       /* eval at join domain level if not below outer join */
-      relids = bms_copy(jtitem->jdomain->jd_relids);
+      relids = jtitem->below_outer_join ?
+               bms_copy(qualscope) : bms_copy(jtitem->jdomain->jd_relids);
 
To be concrete, I mean something like attached.

Thanks
Richard
Attachment

pgsql-hackers by date:

Previous
From: "Drouvot, Bertrand"
Date:
Subject: Re: Normalization of utility queries in pg_stat_statements
Next
From: Laurenz Albe
Date:
Subject: Re: Move defaults toward ICU in 16?