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 >
