Re: ERROR wrong varnullingrels (b 3) (expected (b)) with LEFT JOIN LATERAL and CTE

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bertrand Mamasam <golgote@gmail.com>
Cc: pgsql-general@postgresql.org
Date: 2024-11-28T18:51:02Z
Lists: pgsql-general
Bertrand Mamasam <golgote@gmail.com> writes:
> Ok thank you, here is a short version of the query that works before 16.5
> but not in 16.5+ anymore.

Thanks for the test case!  A quick "git bisect" says I broke it at

cb8e50a4a09fe541e32cd54ea90a97f2924121a1 is the first bad commit
commit cb8e50a4a09fe541e32cd54ea90a97f2924121a1
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date:   Fri Aug 30 12:42:12 2024 -0400

    Avoid inserting PlaceHolderVars in cases where pre-v16 PG did not.

Apparently that change was less safe than I thought.  Looking ...

			regards, tom lane



Commits

  1. Avoid mislabeling of lateral references when pulling up a subquery.

  2. Avoid inserting PlaceHolderVars in cases where pre-v16 PG did not.