public class CalcSplitRule extends RelOptRule
Calc
to a Project
and Filter.
Not enabled by default, as it works against the usual flow, which is to
convert Project and Filter to Calc. But useful for
specific tasks, such as optimizing before calling an
Interpreter.
| Modifier and Type | Field and Description |
|---|---|
static CalcSplitRule |
INSTANCE |
description, operands, relBuilderFactory| Constructor and Description |
|---|
CalcSplitRule(RelBuilderFactory relBuilderFactory)
Creates a CalcSplitRule.
|
| Modifier and Type | Method and Description |
|---|---|
void |
onMatch(RelOptRuleCall call)
Receives notification about a rule match.
|
any, convert, convert, convertList, convertOperand, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, some, toString, unorderedpublic static final CalcSplitRule INSTANCE
public CalcSplitRule(RelBuilderFactory relBuilderFactory)
relBuilderFactory - Builder for relational expressionspublic void onMatch(RelOptRuleCall call)
RelOptRulecall.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 RelOptRulecall - Rule callRelOptRule.matches(RelOptRuleCall)Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.