Thread: pgsql: Support parallel aggregation.

pgsql: Support parallel aggregation.

From
Robert Haas
Date:
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(-)