Class AddExchangesBelowPartialAggregationOverGroupIdRuleSet
java.lang.Object
io.trino.sql.planner.iterative.rule.AddExchangesBelowPartialAggregationOverGroupIdRuleSet
Transforms
- Exchange
- [ Projection ]
- Partial Aggregation
- GroupId
to
- Exchange
- [ Projection ]
- Partial Aggregation
- GroupId
- LocalExchange
- RemoteExchange
Rationale: GroupId increases number of rows (number of times equal to number of grouping sets) and then partial aggregation reduces number of rows. However, under certain conditions, exchanging the rows before GroupId (before multiplication) makes partial aggregation more effective, resulting in less data being exchanged afterwards.
-
Constructor Summary
ConstructorsConstructorDescriptionAddExchangesBelowPartialAggregationOverGroupIdRuleSet(PlannerContext plannerContext, IrTypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig) -
Method Summary
-
Constructor Details
-
AddExchangesBelowPartialAggregationOverGroupIdRuleSet
public AddExchangesBelowPartialAggregationOverGroupIdRuleSet(PlannerContext plannerContext, IrTypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig)
-
-
Method Details
-
rules
-