Обсуждение: pgsql: Avoid creating a RESULT RTE that's marked LATERAL.

Поиск
Список
Период
Сортировка

pgsql: Avoid creating a RESULT RTE that's marked LATERAL.

От
Tom Lane
Дата:
Avoid creating a RESULT RTE that's marked LATERAL.

Commit 7266d0997 added code to pull up simple constant function
results, converting the RTE_FUNCTION RTE to a dummy RTE_RESULT
RTE since it no longer need be scanned.  But I forgot to clear
the LATERAL flag if the RTE has it set.  If the function reduced
to a constant, it surely contains no lateral references so this
simplification is logically OK.  It's needed because various other
places will Assert that RESULT RTEs aren't LATERAL.

Per bug #17097 from Yaoguang Chen.  Back-patch to v13 where the
faulty code came in.

Discussion: https://postgr.es/m/17097-3372ef9f798fc94f@postgresql.org

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1d98fdaed89c00465ef68fa2804967ea27b03abc

Modified Files
--------------
src/backend/optimizer/prep/prepjointree.c | 5 ++++-
src/test/regress/expected/join.out        | 8 ++++++++
src/test/regress/sql/join.sql             | 3 +++
3 files changed, 15 insertions(+), 1 deletion(-)