public abstract class SemiJoinRule extends RelOptRule
Modifier and Type | Class and Description |
---|---|
static class |
SemiJoinRule.JoinToSemiJoinRule
SemiJoinRule that matches a Join with an empty Aggregate as its right
child.
|
static class |
SemiJoinRule.ProjectToSemiJoinRule
SemiJoinRule that matches a Project on top of a Join with an Aggregate
as its right child.
|
Modifier and Type | Field and Description |
---|---|
private static java.util.function.Predicate<Aggregate> |
IS_EMPTY_AGGREGATE |
static SemiJoinRule |
JOIN |
private static java.util.function.Predicate<Join> |
NOT_GENERATE_NULLS_ON_LEFT |
static SemiJoinRule |
PROJECT |
description, operands, relBuilderFactory
Modifier | Constructor and Description |
---|---|
protected |
SemiJoinRule(java.lang.Class<Join> joinClass,
java.lang.Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
java.lang.String description) |
protected |
SemiJoinRule(java.lang.Class<Project> projectClass,
java.lang.Class<Join> joinClass,
java.lang.Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
java.lang.String description) |
Modifier and Type | Method and Description |
---|---|
void |
onMatch(RelOptRuleCall call)
Receives notification about a rule match.
|
protected void |
perform(RelOptRuleCall call,
Project project,
Join join,
RelNode left,
Aggregate aggregate) |
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
private static final java.util.function.Predicate<Join> NOT_GENERATE_NULLS_ON_LEFT
private static final java.util.function.Predicate<Aggregate> IS_EMPTY_AGGREGATE
public static final SemiJoinRule PROJECT
public static final SemiJoinRule JOIN
protected SemiJoinRule(java.lang.Class<Project> projectClass, java.lang.Class<Join> joinClass, java.lang.Class<Aggregate> aggregateClass, RelBuilderFactory relBuilderFactory, java.lang.String description)
protected SemiJoinRule(java.lang.Class<Join> joinClass, java.lang.Class<Aggregate> aggregateClass, RelBuilderFactory relBuilderFactory, java.lang.String description)
protected void perform(RelOptRuleCall call, Project project, Join join, RelNode left, 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.