Prevent bogus pullup of constant-valued functions returning composite.
Tom Lane <tgl@sss.pgh.pa.us>
Prevent bogus pullup of constant-valued functions returning composite. Fix an oversight in commit 7266d0997: as it stood, the code failed when a function-in-FROM returns composite and can be simplified to a composite constant. For the moment, just test for composite result and abandon pullup if we see one. To make it actually work, we'd have to decompose the composite constant into per-column constants; which is surely do-able, but I'm not convinced it's worth the code space. Per report from Raúl Marín Rodríguez. Discussion: https://postgr.es/m/CAM6_UM4isP+buRA5sWodO_MUEgutms-KDfnkwGmryc5DGj9XuQ@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/optimizer/prep/prepjointree.c | modified | +18 −0 |
| src/test/regress/expected/join.out | modified | +37 −0 |
| src/test/regress/sql/join.sql | modified | +19 −0 |
Discussion
- Optimze usage of immutable functions as relation 29 messages · 2018-05-04 → 2019-09-24