Re: BUG #19412: Wrong query result with not null constraint
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: s.shinderuk@postgrespro.ru, pgsql-bugs@lists.postgresql.org, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2026-02-17T22:53:50Z
Lists: pgsql-bugs
On Wed, 18 Feb 2026 at 00:31, PG Bug reporting form <noreply@postgresql.org> wrote: > create table a (id int, x_id int, y_id int); > insert into a values (1, 1, 1), (1, 2, 2), (1, 3, 3); > create table x (id int, nm text, constraint pk_x_id primary key (id)); > insert into x values (1, 'x1'), (2, 'x2'), (3, 'x3'); > create table y (id int, nm text, constraint pk_y_id primary key (id)); > insert into y values (1, 'y1'), (3, 'y3'), (4, 'y4'); > > select a.id, z.id > from a > join x on x.id = a.x_id > left join y on y.id = a.y_id > join lateral(select x.id > union all > select y.id) z on z.id is not null; Thanks for the reproducer. I'd say that y.id Var in the lateral join should be getting marked as nullable by the left join, but it's not being marked as nullable by anything. Tom, do you have any thoughts on the empty varnullingrels here? David
Commits
-
Fix computation of varnullingrels when translating appendrel Var
- ec20a45528bf 16.13 landed
- bcaf1b5101c4 17.9 landed
- ed57c207c397 18.3 landed
- 691977d37037 19 (unreleased) landed
-
Fix IS [NOT] NULL qual optimization for inheritance tables
- 3af7040985b6 17.0 cited