Thread: pgsql: Teach create_projection_plan to omit projection where possible.
Teach create_projection_plan to omit projection where possible. We sometimes insert a ProjectionPath into a plan tree when projection is not strictly required. The existing code already arranges to avoid emitting a Result node when the ProjectionPath's subpath can perform the projection itself, but previously it didn't consider the possibility that the parent node might not actually require the projection to be performed at all. Skipping projection when it's not required can not only avoid Result nodes that aren't needed, but also avoid losing the "physical tlist" optimization unneccessarily. Patch by me, reviewed by Amit Kapila. Discussion: http://postgr.es/m/CA+TgmoakT5gmahbPWGqrR2nAdFOMAOnOXYoWHRdVfGWs34t6_A@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/d7c19e62a8e0a634eb6b29f8f1111d944e57081f Modified Files -------------- src/backend/optimizer/plan/createplan.c | 98 +++++++++++++++++++++++++-------- 1 file changed, 75 insertions(+), 23 deletions(-)