pgsql: Fix pull_varnos to cope with translated PlaceHolderVars. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix pull_varnos to cope with translated PlaceHolderVars.
Date
Msg-id E1mRJjr-00063g-SN@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix pull_varnos to cope with translated PlaceHolderVars.

Commit 55dc86eca changed pull_varnos to use (if possible) the associated
ph_eval_at for a PlaceHolderVar.  I missed a fine point though: we might
be looking at a PHV in the quals or tlist of a child appendrel, in which
case we need to compute a ph_eval_at value that's been translated in the
same way that the PHV itself has been (cf. adjust_appendrel_attrs).
Fortunately, enough info is available in the PlaceHolderInfo to make
such translation possible without additional outside data, so we don't
need another round of uglification of planner APIs.  This is a little
bit complicated, but since it's a hard-to-hit corner case, I'm not much
worried about adding cycles here.

Per report from Jaime Casanova.  Back-patch to v12, like the previous
commit.

Discussion: https://postgr.es/m/20210915230959.GB17635@ahch-to

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/e0b0d1eab48c85f961a39c263d2074ad11931920

Modified Files
--------------
src/backend/optimizer/util/var.c   | 41 +++++++++++++++++++++++++++++++++++---
src/test/regress/expected/join.out | 28 ++++++++++++++++++++++++++
src/test/regress/sql/join.sql      | 16 +++++++++++++++
3 files changed, 82 insertions(+), 3 deletions(-)


pgsql-committers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: pgsql: Support "postgres -C" with runtime-computed GUCs
Next
From: Peter Geoghegan
Date:
Subject: pgsql: pageinspect: Make page deletion elog less chatty.