@Value.Enclosing public class JoinDeriveIsNotNullFilterRule extends RelRule<JoinDeriveIsNotNullFilterRule.Config> implements TransformationRule
Join and creates
Filters with those predicates as new inputs of the join.
Since the Null value can never match in the inner join and it can lead to skewness due to
too many Null values, a not-null filter can be created and pushed down into the input of join.
Similar to CoreRules.FILTER_INTO_JOIN, it would try to create filters and push them into
the inputs of the join to filter data as much as possible before join.| Modifier and Type | Class and Description |
|---|---|
static interface |
JoinDeriveIsNotNullFilterRule.Config
Rule configuration.
|
RelRule.Done, RelRule.MatchHandler<R extends RelOptRule>, RelRule.OperandBuilder, RelRule.OperandDetailBuilder<R extends RelNode>, RelRule.OperandTransformRelOptRule.ConverterRelOptRuleOperanddescription, operands, relBuilderFactory| Constructor and Description |
|---|
JoinDeriveIsNotNullFilterRule(JoinDeriveIsNotNullFilterRule.Config config) |
| Modifier and Type | Method and Description |
|---|---|
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, unorderedpublic JoinDeriveIsNotNullFilterRule(JoinDeriveIsNotNullFilterRule.Config config)
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>, org.apache.calcite.plan.RelHintsPropagator) to
register the expression.
onMatch in class RelOptRulecall - Rule callRelOptRule.matches(RelOptRuleCall)Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.