On Thu, Feb 16, 2023 at 5:50 PM Richard Guo <guofengli...@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: v1-0001-Fix-variable-free-clause-distribution.patch
Description: Binary data

Reply via email to