pgsql: Teach create_projection_plan to omit projection where possible.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Teach create_projection_plan to omit projection where possible.
Date: 2018-03-29 19:39:48
Message-ID: E1f1dOm-0006WO-3f@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2018-03-29 19:46:18 pgsql: Postpone generate_gather_paths for topmost scan/join rel.
Previous Message David Steele 2018-03-29 19:38:30 Re: pgsql: Add documentation for the JIT feature.