pgsql: Fix planner error with pulling up subquery expressions into func

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix planner error with pulling up subquery expressions into func
Date: 2021-10-14 16:44:08
Message-ID: E1mb3pw-00039r-Tq@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix planner error with pulling up subquery expressions into function RTEs.

If a function-in-FROM laterally references the output of some sub-SELECT
earlier in the FROM clause, and we are able to flatten that sub-SELECT
into the outer query, the expression(s) copied into the function RTE
missed being processed by eval_const_expressions. This'd lead to trouble
and probable crashes at execution if such expressions contained
named-argument function call syntax or functions with defaulted arguments.
The bug is masked if the query contains any explicit JOIN syntax, which
may help explain why we'd not noticed.

Per bug #17227 from Bernd Dorn. This is an oversight in commit 7266d0997,
so back-patch to v13 where that came in.

Discussion: https://postgr.es/m/17227-5a28ed1512189fa4@postgresql.org

Branch
------
REL_14_STABLE

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

Modified Files
--------------
src/backend/optimizer/plan/planner.c | 9 +++++----
src/test/regress/expected/rangefuncs.out | 29 +++++++++++++++++++++++++++++
src/test/regress/sql/rangefuncs.sql | 15 +++++++++++++++
3 files changed, 49 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Jeff Davis 2021-10-14 19:24:13 pgsql: Check criticalSharedRelcachesBuilt in GetSharedSecurityLabel().
Previous Message Robert Haas 2021-10-14 16:01:56 pgsql: Postpone some end-of-recovery operations related to allowing WAL