pgsql: Teach create_projection_plan to omit projection where possible. - Mailing list pgsql-committers

From Robert Haas
Subject pgsql: Teach create_projection_plan to omit projection where possible.
Date
Msg-id E1f1dOm-0006WO-3f@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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(-)


pgsql-committers by date:

Previous
From: Bruce Momjian
Date:
Subject: pgsql: C comments: "a" <--> "an" corrections
Next
From: Robert Haas
Date:
Subject: pgsql: Postpone generate_gather_paths for topmost scan/join rel.