| From: | Richard Guo <guofenglinux(at)gmail(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "Finnerty, Jim" <jfinnert(at)amazon(dot)com> |
| Subject: | Re: Making Vars outer-join aware |
| Date: | 2022-08-25 10:27:38 |
| Message-ID: | CAMbWs49iXxG=Br9CcvntrN5X1MVnu-SEP0SosfbcnBvrgqVipA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Aug 25, 2022 at 5:18 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> > Do we need to also
> > generate two SpecialJoinInfos for the B/C join in the first order, with
> > and without the A/B join in its min_lefthand?
>
> No, the SpecialJoinInfos would stay as they are now. It's already the
> case that the first join's min_righthand would contain only B, and
> the second one's min_righthand would contain only C.
I'm not sure if I understand it correctly. If we are given the first
order from the parser, the SpecialJoinInfo for the B/C join would have
min_lefthand as containing both B and the A/B join. And this
SpecialJoinInfo would make the B/C join be invalid, which is not what we
want. Currently the patch resolves this by explicitly running
remove_unneeded_nulling_relids, and the A/B join would be removed from
B/C join's min_lefthand, if Pbc is strict for B.
Do we still need this kind of fixup if we are to keep just one form of
SpecialJoinInfo and two forms of RestrictInfos?
Thanks
Richard
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Benjamin Coutu | 2022-08-25 10:55:46 | Insertion Sort Improvements |
| Previous Message | Drouvot, Bertrand | 2022-08-25 09:44:34 | Re: pg_stat_have_stats() returns true for dropped indexes (or for index creation transaction rolled back) |