]> granicus.if.org Git - postgresql/commit
Make sequential scans parallel-aware.
authorRobert Haas <rhaas@postgresql.org>
Wed, 11 Nov 2015 13:57:52 +0000 (08:57 -0500)
committerRobert Haas <rhaas@postgresql.org>
Wed, 11 Nov 2015 13:57:52 +0000 (08:57 -0500)
commitf0661c4e8c44c0ec7acd4ea7c82e85b265447398
tree0a31416ab40a9be4ab0f43c6ddd73221eed9dec6
parentf764ecd81b2a8a1e9000d43a73ca5eec8e8008bc
Make sequential scans parallel-aware.

In addition, this path fills in a number of missing bits and pieces in
the parallel infrastructure.  Paths and plans now have a parallel_aware
flag indicating whether whatever parallel-aware logic they have should
be engaged.  It is believed that we will need this flag for a number of
path/plan types, not just sequential scans, which is why the flag is
generic rather than part of the SeqScan structures specifically.
Also, execParallel.c now gives parallel nodes a chance to initialize
their PlanState nodes from the DSM during parallel worker startup.

Amit Kapila, with a fair amount of adjustment by me.  Review of previous
patch versions by Haribabu Kommi and others.
18 files changed:
src/backend/commands/explain.c
src/backend/executor/execAmi.c
src/backend/executor/execParallel.c
src/backend/executor/nodeSeqscan.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/path/costsize.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/util/pathnode.c
src/include/executor/nodeSeqscan.h
src/include/nodes/execnodes.h
src/include/nodes/plannodes.h
src/include/nodes/relation.h
src/include/optimizer/cost.h
src/include/optimizer/pathnode.h