Обсуждение: pgsql: Avoid creating a RESULT RTE that's marked LATERAL.
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(-)