Re: Planner : anti-join on left joins - Mailing list pgsql-hackers

From wenhui qiu
Subject Re: Planner : anti-join on left joins
Date
Msg-id CAGjGUA+8uaR412ZZ0iNAHLn7-qMMKPdrTQxAZrnJvT6s0pMJ8w@mail.gmail.com
Whole thread Raw
In response to Re: Planner : anti-join on left joins  (Richard Guo <guofenglinux@gmail.com>)
List pgsql-hackers
HI Richard 
> The logic 'strict for b.z' effectively applies only if b.z happens to
> be the join key b.y.  To avoid confusion, I have rephrased the comment
> to make this distinction clear.

> I've also included a commit message, refined the comments throughout,
> and added test cases in the updated patch.

> Feedback and testing are very welcome.
The v6 path  correctly extends LEFT→ANTI join reduction using NOT NULL constraints, carefully accounting for nullability introduced by lower-level outer joins; the approach is sound, well-contained, and adequately covered by regression tests. LGTM

Thanks 

On Tue, Jan 6, 2026 at 4:24 PM Richard Guo <guofenglinux@gmail.com> wrote:
On Tue, Jan 6, 2026 at 10:47 AM Tender Wang <tndrwang@gmail.com> wrote:
> ...
> SELECT ... FROM a LEFT JOIN b ON (a.x = b.y) WHERE b.z IS NULL;
>  * If we can prove that b.z must be non-null for any matching row, either
>  * because the join clause is strict for b.z, or because b.z is defined NOT
>  * NULL by table constraints,
> ...
> How can the strict join clause influence b.z?

The logic 'strict for b.z' effectively applies only if b.z happens to
be the join key b.y.  To avoid confusion, I have rephrased the comment
to make this distinction clear.

I've also included a commit message, refined the comments throughout,
and added test cases in the updated patch.

Feedback and testing are very welcome.

- Richard

pgsql-hackers by date:

Previous
From: John Naylor
Date:
Subject: Re: Correct comment wording in extension.c
Next
From: Henson Choi
Date:
Subject: Re: Row pattern recognition