Re: Support "Right Semi Join" plan shapes

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Li Japin <japinli(at)hotmail(dot)com>
Cc: Alena Rybakina <lena(dot)ribackina(at)yandex(dot)ru>, wenhui qiu <qiuwenhuifx(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, vignesh C <vignesh21(at)gmail(dot)com>
Subject: Re: Support "Right Semi Join" plan shapes
Date: 2024-06-28 07:21:35
Message-ID: CAMbWs49vPtOb2oH8z4KYb3+5TWapbmHZ8Pf7nf5-=qqobySomA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jun 28, 2024 at 2:54 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:
> On Mon, Jun 24, 2024 at 5:59 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:
> > I noticed that this patch changes the plan of a query in join.sql from
> > a semi join to right semi join, compromising the original purpose of
> > this query, which was to test the fix for neqjoinsel's behavior for
> > semijoins (see commit 7ca25b7d).
> >
> > --
> > -- semijoin selectivity for <>
> > --
> > explain (costs off)
> > select * from int4_tbl i4, tenk1 a
> > where exists(select * from tenk1 b
> > where a.twothousand = b.twothousand and a.fivethous <> b.fivethous)
> > and i4.f1 = a.tenthous;
> >
> > So I've changed this test case a bit so that it is still testing what it
> > is supposed to test.
>
> I've refined this test case further to make it more stable by using an
> additional filter 'a.tenthous < 5000'. Besides, I noticed a surplus
> blank line in ExecHashJoinImpl(). I've removed it in the v7 patch.

BTW, I've also verified the empty-rel optimization for hash join and
AFAICT it works correctly for the new right-semi join.

Thanks
Richard

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2024-06-28 07:24:43 Re: walsender.c comment with no context is hard to understand
Previous Message Peter Eisentraut 2024-06-28 07:11:42 Re: Document use of ldapurl with LDAP simple bind