public class RelDecorrelator extends Object implements ReflectiveVisitor
TODO:
CorelMap constructor parameter with a RelNode
currentRel immutable (would require a fresh
RelDecorrelator for each node being decorrelated)CorelMap immutable| Modifier and Type | Method and Description |
|---|---|
protected RexNode |
decorrelateExpr(RexNode exp) |
static RelNode |
decorrelateQuery(RelNode rootRel)
Decorrelates a query.
|
void |
decorrelateRel(LogicalAggregate rel)
Rewrites a
LogicalAggregate. |
void |
decorrelateRel(LogicalCorrelate rel)
Rewrite Correlator into a left outer join.
|
void |
decorrelateRel(LogicalFilter rel)
Rewrite LogicalFilter.
|
void |
decorrelateRel(LogicalJoin rel)
Rewrite LogicalJoin.
|
void |
decorrelateRel(LogicalProject rel)
Rewrite LogicalProject.
|
void |
decorrelateRel(Sort rel)
Rewrite Sort.
|
void |
decorrelateRelGeneric(RelNode rel) |
protected RexNode |
removeCorrelationExpr(RexNode exp,
boolean projectPulledAboveLeftCorrelator) |
protected RexNode |
removeCorrelationExpr(RexNode exp,
boolean projectPulledAboveLeftCorrelator,
RexInputRef nullIndicator) |
protected RexNode |
removeCorrelationExpr(RexNode exp,
boolean projectPulledAboveLeftCorrelator,
Set<Integer> isCount) |
RelNode |
removeCorrelationViaRule(RelNode root) |
public static RelNode decorrelateQuery(RelNode rootRel)
This is the main entry point to RelDecorrelator.
rootRel - Root node of the queryLogicalCorrelate instances removedprotected RexNode removeCorrelationExpr(RexNode exp, boolean projectPulledAboveLeftCorrelator)
protected RexNode removeCorrelationExpr(RexNode exp, boolean projectPulledAboveLeftCorrelator, RexInputRef nullIndicator)
protected RexNode removeCorrelationExpr(RexNode exp, boolean projectPulledAboveLeftCorrelator, Set<Integer> isCount)
public void decorrelateRelGeneric(RelNode rel)
public void decorrelateRel(Sort rel)
rel - Sort to be rewrittenpublic void decorrelateRel(LogicalAggregate rel)
LogicalAggregate.rel - Aggregate to rewritepublic void decorrelateRel(LogicalProject rel)
rel - the project rel to rewritepublic void decorrelateRel(LogicalFilter rel)
rel - the filter rel to rewritepublic void decorrelateRel(LogicalCorrelate rel)
rel - Correlatorpublic void decorrelateRel(LogicalJoin rel)
rel - LogicalJoinCopyright © 2012–2015 The Apache Software Foundation. All rights reserved.