mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
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.
This commit is contained in:
@@ -74,7 +74,8 @@ extern MaterialPath *create_material_path(RelOptInfo *rel, Path *subpath);
|
||||
extern UniquePath *create_unique_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
Path *subpath, SpecialJoinInfo *sjinfo);
|
||||
extern GatherPath *create_gather_path(PlannerInfo *root,
|
||||
RelOptInfo *rel, Path *subpath, Relids required_outer);
|
||||
RelOptInfo *rel, Path *subpath, PathTarget *target,
|
||||
Relids required_outer, double *rows);
|
||||
extern SubqueryScanPath *create_subqueryscan_path(PlannerInfo *root,
|
||||
RelOptInfo *rel, Path *subpath,
|
||||
List *pathkeys, Relids required_outer);
|
||||
@@ -168,7 +169,9 @@ extern AggPath *create_agg_path(PlannerInfo *root,
|
||||
List *groupClause,
|
||||
List *qual,
|
||||
const AggClauseCosts *aggcosts,
|
||||
double numGroups);
|
||||
double numGroups,
|
||||
bool combineStates,
|
||||
bool finalizeAggs);
|
||||
extern GroupingSetsPath *create_groupingsets_path(PlannerInfo *root,
|
||||
RelOptInfo *rel,
|
||||
Path *subpath,
|
||||
|
||||
Reference in New Issue
Block a user