pgsql: Speed up planner's scanning for parallel-query hazards. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Speed up planner's scanning for parallel-query hazards.
Date
Msg-id E1bao8i-0000WP-0j@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Speed up planner's scanning for parallel-query hazards.

We need to scan the whole parse tree for parallel-unsafe functions.
If there are none, we'll later need to determine whether particular
subtrees contain any parallel-restricted functions.  The previous coding
retained no knowledge from the first scan, even though this is very
wasteful in the common case where the query contains only parallel-safe
functions.  We can bypass all of the later scans by remembering that fact.
This provides a small but measurable speed improvement when the case
applies, and shouldn't cost anything when it doesn't.

Patch by me, reviewed by Robert Haas

Discussion: <3740.1471538387@sss.pgh.pa.us>

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/da1c91631e3577ea5818f855ebb5bd206d559006

Modified Files
--------------
src/backend/nodes/outfuncs.c          |   1 +
src/backend/optimizer/path/allpaths.c |  30 ++-------
src/backend/optimizer/plan/planmain.c |   9 ++-
src/backend/optimizer/plan/planner.c  |  43 ++++++++-----
src/backend/optimizer/util/clauses.c  | 115 +++++++++++++++++++++++++---------
src/backend/optimizer/util/pathnode.c |   6 +-
src/backend/optimizer/util/relnode.c  |   4 +-
src/include/nodes/relation.h          |   2 +
src/include/optimizer/clauses.h       |   3 +-
9 files changed, 133 insertions(+), 80 deletions(-)


pgsql-committers by date:

Previous
From: Alvaro Herrera
Date:
Subject: pgsql: reorderbuffer: preserve errno while reporting error
Next
From: Tom Lane
Date:
Subject: pgsql: Guard against parallel-restricted functions in VALUES expression