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 com.google.common.base.Predicate<Aggregate> |
IS_EMPTY_AGGREGATE |
private static com.google.common.base.Predicate<Join> |
IS_LEFT_OR_INNER |
static SemiJoinRule |
JOIN |
static SemiJoinRule |
PROJECT |
description, operands, relBuilderFactory| Modifier | Constructor and Description |
|---|---|
protected |
SemiJoinRule(Class<Join> joinClass,
Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
String description) |
protected |
SemiJoinRule(Class<Project> projectClass,
Class<Join> joinClass,
Class<Aggregate> aggregateClass,
RelBuilderFactory relBuilderFactory,
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, equals, equals, getOperand, getOperands, getOutConvention, getOutTrait, hashCode, matches, none, operand, operand, operand, operand, operand, some, toString, unorderedprivate static final com.google.common.base.Predicate<Join> IS_LEFT_OR_INNER
private static final com.google.common.base.Predicate<Aggregate> IS_EMPTY_AGGREGATE
public static final SemiJoinRule PROJECT
public static final SemiJoinRule JOIN
protected SemiJoinRule(Class<Project> projectClass, Class<Join> joinClass, Class<Aggregate> aggregateClass, RelBuilderFactory relBuilderFactory, String description)
protected void perform(RelOptRuleCall call, Project project, Join join, RelNode left, Aggregate aggregate)
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.