Class AddExchangesBelowPartialAggregationOverGroupIdRuleSet
- java.lang.Object
-
- io.trino.sql.planner.iterative.rule.AddExchangesBelowPartialAggregationOverGroupIdRuleSet
-
public class AddExchangesBelowPartialAggregationOverGroupIdRuleSet extends Object
Transforms- Exchange - [ Projection ] - Partial Aggregation - GroupIdto- Exchange - [ Projection ] - Partial Aggregation - GroupId - LocalExchange - RemoteExchangeRationale: 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
Constructors Constructor Description AddExchangesBelowPartialAggregationOverGroupIdRuleSet(PlannerContext plannerContext, TypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig)
-
-
-
Constructor Detail
-
AddExchangesBelowPartialAggregationOverGroupIdRuleSet
public AddExchangesBelowPartialAggregationOverGroupIdRuleSet(PlannerContext plannerContext, TypeAnalyzer typeAnalyzer, TaskCountEstimator taskCountEstimator, TaskManagerConfig taskManagerConfig)
-
-