Support parallel aggregation.
Parallel workers can now partially aggregate the data and pass the
transition values back to the leader, which can combine the partial
results to produce the final answer.
David Rowley, based on earlier work by Haribabu Kommi. Reviewed by
Álvaro Herrera, Tomas Vondra, Amit Kapila, James Sewell, and me.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/e06a38965b3bcdaa881e7e06892d4d8ab6c2c980
Modified Files
--------------
src/backend/executor/execQual.c | 8 +
src/backend/nodes/copyfuncs.c | 1 +
src/backend/nodes/equalfuncs.c | 1 +
src/backend/nodes/nodeFuncs.c | 2 +-
src/backend/nodes/outfuncs.c | 1 +
src/backend/nodes/readfuncs.c | 1 +
src/backend/optimizer/path/allpaths.c | 3 +-
src/backend/optimizer/path/costsize.c | 12 +-
src/backend/optimizer/plan/createplan.c | 4 +-
src/backend/optimizer/plan/planner.c | 520 ++++++++++++++++++++++++++++----
src/backend/optimizer/plan/setrefs.c | 251 ++++++++++++++-
src/backend/optimizer/prep/prepunion.c | 4 +-
src/backend/optimizer/util/clauses.c | 79 +++++
src/backend/optimizer/util/pathnode.c | 16 +-
src/backend/optimizer/util/tlist.c | 45 +++
src/backend/parser/parse_func.c | 3 +-
src/include/catalog/catversion.h | 2 +-
src/include/nodes/primnodes.h | 11 +-
src/include/nodes/relation.h | 2 +
src/include/optimizer/clauses.h | 18 ++
src/include/optimizer/cost.h | 2 +-
src/include/optimizer/pathnode.h | 7 +-
src/include/optimizer/tlist.h | 1 +
23 files changed, 911 insertions(+), 83 deletions(-)