public class AggregateRemoveRule extends RelOptRule
Aggregate
if it computes no aggregate functions
(that is, it is implementing SELECT DISTINCT
),
or all the aggregate functions are splittable,
and the underlying relational expression is already distinct.Modifier and Type | Field and Description |
---|---|
static AggregateRemoveRule |
INSTANCE |
description, operands, relBuilderFactory
Constructor and Description |
---|
AggregateRemoveRule(java.lang.Class<? extends Aggregate> aggregateClass)
Deprecated.
|
AggregateRemoveRule(java.lang.Class<? extends Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory)
Creates an AggregateRemoveRule.
|
Modifier and Type | Method and Description |
---|---|
private static boolean |
isAggregateSupported(Aggregate aggregate) |
void |
onMatch(RelOptRuleCall call)
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 AggregateRemoveRule INSTANCE
@Deprecated public AggregateRemoveRule(java.lang.Class<? extends Aggregate> aggregateClass)
public AggregateRemoveRule(java.lang.Class<? extends Aggregate> aggregateClass, RelBuilderFactory relBuilderFactory)
private static boolean isAggregateSupported(Aggregate aggregate)
public void onMatch(RelOptRuleCall call)
RelOptRule
call.rels
holds the set of relational
expressions which match the operands to the rule;
call.rels[0]
is 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.
onMatch
in class RelOptRule
call
- Rule callRelOptRule.matches(RelOptRuleCall)
Copyright © 2012–2019 The Apache Software Foundation. All rights reserved.