Avoid creating a RESULT RTE that's marked LATERAL.
Tom Lane <tgl@sss.pgh.pa.us>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/prep/prepjointree.c | modified | +4 −1 |
| src/test/regress/expected/join.out | modified | +8 −0 |
| src/test/regress/sql/join.sql | modified | +3 −0 |
Discussion
- BUG #17097: FailedAssertion at initsplan.c 6 messages · 2021-07-09