public abstract class AbstractJoinExtractFilterRule extends RelOptRule
inner join to a
filter on top of a
cartesian inner join.
One benefit of this transformation is that after it, the join condition
can be combined with conditions and expressions above the join. It also makes
the FennelCartesianJoinRule applicable.
The constructor is parameterized to allow any sub-class of
Join.
description, operands, relBuilderFactory| Modifier | Constructor and Description |
|---|---|
protected |
AbstractJoinExtractFilterRule(RelOptRuleOperand operand,
RelBuilderFactory relBuilderFactory,
String description)
Creates an AbstractJoinExtractFilterRule.
|
| 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, unorderedprotected AbstractJoinExtractFilterRule(RelOptRuleOperand operand, RelBuilderFactory relBuilderFactory, String description)
public 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.