public class RelDecorrelator extends Object implements org.apache.calcite.util.ReflectiveVisitor
TODO:
CorelMap
constructor parameter with a RelNode
currentRel
immutable (would require a fresh
RelDecorrelator for each node being decorrelated)CorelMap
immutableModifier and Type | Method and Description |
---|---|
protected org.apache.calcite.rex.RexNode |
decorrelateExpr(org.apache.calcite.rel.RelNode currentRel,
Map<org.apache.calcite.rel.RelNode,org.apache.calcite.sql2rel.RelDecorrelator.Frame> map,
org.apache.calcite.sql2rel.RelDecorrelator.CorelMap cm,
org.apache.calcite.rex.RexNode exp) |
static org.apache.calcite.rel.RelNode |
decorrelateQuery(org.apache.calcite.rel.RelNode rootRel)
Deprecated.
|
static org.apache.calcite.rel.RelNode |
decorrelateQuery(org.apache.calcite.rel.RelNode rootRel,
org.apache.calcite.tools.RelBuilder relBuilder)
Decorrelates a query.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel)
Rewrites a
LogicalAggregate . |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel)
Rewrite Correlate into a left outer join.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel)
Rewrite LogicalFilter.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel)
Rewrite LogicalJoin.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalProject rel)
Rewrite LogicalProject.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalSnapshot rel)
Rewrite LogicalSnapshot.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.RelNode rel)
Fallback if none of the other
decorrelateRel methods match. |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Sort rel)
Rewrite Sort.
|
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Values rel)
Rewrites a
Values . |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
getInvoke(org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.RelNode parent) |
protected org.apache.calcite.rex.RexNode |
removeCorrelationExpr(org.apache.calcite.rex.RexNode exp,
boolean projectPulledAboveLeftCorrelator) |
protected org.apache.calcite.rex.RexNode |
removeCorrelationExpr(org.apache.calcite.rex.RexNode exp,
boolean projectPulledAboveLeftCorrelator,
org.apache.calcite.rex.RexInputRef nullIndicator) |
protected org.apache.calcite.rex.RexNode |
removeCorrelationExpr(org.apache.calcite.rex.RexNode exp,
boolean projectPulledAboveLeftCorrelator,
Set<Integer> isCount) |
org.apache.calcite.rel.RelNode |
removeCorrelationViaRule(org.apache.calcite.rel.RelNode root) |
@Deprecated public static org.apache.calcite.rel.RelNode decorrelateQuery(org.apache.calcite.rel.RelNode rootRel)
public static org.apache.calcite.rel.RelNode decorrelateQuery(org.apache.calcite.rel.RelNode rootRel, org.apache.calcite.tools.RelBuilder relBuilder)
This is the main entry point to RelDecorrelator
.
rootRel
- Root node of the queryrelBuilder
- Builder for relational expressionsLogicalCorrelate
instances removedpublic org.apache.calcite.rel.RelNode removeCorrelationViaRule(org.apache.calcite.rel.RelNode root)
protected org.apache.calcite.rex.RexNode decorrelateExpr(org.apache.calcite.rel.RelNode currentRel, Map<org.apache.calcite.rel.RelNode,org.apache.calcite.sql2rel.RelDecorrelator.Frame> map, org.apache.calcite.sql2rel.RelDecorrelator.CorelMap cm, org.apache.calcite.rex.RexNode exp)
protected org.apache.calcite.rex.RexNode removeCorrelationExpr(org.apache.calcite.rex.RexNode exp, boolean projectPulledAboveLeftCorrelator)
protected org.apache.calcite.rex.RexNode removeCorrelationExpr(org.apache.calcite.rex.RexNode exp, boolean projectPulledAboveLeftCorrelator, org.apache.calcite.rex.RexInputRef nullIndicator)
protected org.apache.calcite.rex.RexNode removeCorrelationExpr(org.apache.calcite.rex.RexNode exp, boolean projectPulledAboveLeftCorrelator, Set<Integer> isCount)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.RelNode rel)
decorrelateRel
methods match.public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Sort rel)
rel
- Sort to be rewrittenpublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Values rel)
Values
.rel
- Values to be rewrittenpublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel)
LogicalAggregate
.rel
- Aggregate to rewritepublic org.apache.calcite.sql2rel.RelDecorrelator.Frame getInvoke(org.apache.calcite.rel.RelNode r, org.apache.calcite.rel.RelNode parent)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalProject rel)
rel
- the project rel to rewritepublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalSnapshot rel)
rel
- the snapshot rel to rewritepublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel)
rel
- the filter rel to rewritepublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel)
rel
- Correlatorpublic org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel)
rel
- JoinCopyright © 2014–2020 The Apache Software Foundation. All rights reserved.