Re: Remove no-op PlaceHolderVars - Mailing list pgsql-hackers

From Richard Guo
Subject Re: Remove no-op PlaceHolderVars
Date
Msg-id CAMbWs49B8KrvYvRQfhkFvBb_rRyBHv61S29sYO7W+gP3Cve3eQ@mail.gmail.com
Whole thread Raw
In response to Re: Remove no-op PlaceHolderVars  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Fri, Jan 16, 2026 at 12:37 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> My immediate reaction is "how sure are you that they're no-ops"?
> I recall that there are places where we intentionally insert PHVs
> to preserve the separate identity of the contained expression
> (so that, for example, it can be matched to a subquery output
> later).

The new phpreserved flag is used for that purpose, as explained in the
commit message and the code comments.

> Do we generate a PHV at all in that case?  Seems like we could
> deal with that by adding to the Var's varnullingrels instead of
> making a wrapper node.

The Var can be a reference to something outside the subquery being
pulled up.  If it is a reference to the non-nullable side, we'll have
to wrap it in a PHV to ensure that it is forced to null when the outer
join should do so.

- Richard



pgsql-hackers by date:

Previous
From: Alexander Lakhin
Date:
Subject: Re: Bug in amcheck?
Next
From: Dilip Kumar
Date:
Subject: Re: Proposal: Conflict log history table for Logical Replication