public class AggregateProjectMergeRule extends RelOptRule
Aggregateon top of a
Projectand if possible aggregate through the project or removes the project.
This is only possible when the grouping expressions and arguments to the aggregate functions are field references (i.e. not expressions).
In some cases, this rule has the effect of trimming: the aggregate will use fewer columns than the project did.
|Modifier and Type||Field and Description|
|Constructor and Description|
|Modifier and Type||Method and Description|
Receives notification about a rule match.
any, convert, convert, convertList, convertOperand, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, operandJ, operandJ, some, toString, unordered
public static final AggregateProjectMergeRule INSTANCE
public void onMatch(RelOptRuleCall call)
call.relsholds the set of relational expressions which match the operands to the rule;
call.relsis the root expression.
Typically a rule would check that the nodes are valid matches, creates
a new expression, then calls back
RelOptRuleCall.transformTo(org.apache.calcite.rel.RelNode, java.util.Map<org.apache.calcite.rel.RelNode, org.apache.calcite.rel.RelNode>) to
register the expression.
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.