Re: Support "Right Semi Join" plan shapes

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: Li Japin <japinli@hotmail.com>
Cc: Alena Rybakina <lena.ribackina@yandex.ru>, wenhui qiu <qiuwenhuifx@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, vignesh C <vignesh21@gmail.com>
Date: 2024-06-28T06:54:39Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Support "Right Semi Join" plan shapes

  2. Fix neqjoinsel's behavior for semi/anti join cases.

Attachments

On Mon, Jun 24, 2024 at 5:59 PM Richard Guo <guofenglinux@gmail.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.

Thanks
Richard