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 <[email protected]> wrote:

> On Tue, Jan 6, 2026 at 10:47 AM Tender Wang <[email protected]> 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
>

Reply via email to