| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Fix pull_varnos to cope with translated PlaceHolderVars. |
| Date: | 2021-09-17 19:41:35 |
| Message-ID: | E1mRJjr-00063d-Rz@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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_14_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/4d5b4483db1c6370861ca968edd753ab4dc03f9d
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(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Geoghegan | 2021-09-17 21:21:25 | pgsql: pageinspect: Make page deletion elog less chatty. |
| Previous Message | Andrew Dunstan | 2021-09-17 19:18:38 | Re: pgsql: Support "postgres -C" with runtime-computed GUCs |