public class RelDecorrelator extends Object implements org.apache.calcite.util.ReflectiveVisitor
Changes: Line 671 ~ Line 681, Line 430 ~ Line 441.
Modifier and Type | Class and Description |
---|---|
static class |
RelDecorrelator.AdjustProjectForCountAggregateRule
Planner rule that adjusts projects when counts are added.
|
static interface |
RelDecorrelator.Config
Base configuration for rules that are non-static in a RelDecorrelator.
|
protected static class |
RelDecorrelator.CorelMap
A map of the locations of
Correlate in a tree of RelNode s. |
static class |
RelDecorrelator.CorelMapBuilder
Builds a
RelDecorrelator.CorelMap . |
static class |
RelDecorrelator.RemoveCorrelationForScalarAggregateRule
Planner rule that removes correlations for scalar aggregates.
|
static class |
RelDecorrelator.RemoveCorrelationForScalarProjectRule
Planner rule that removes correlations for scalar projects.
|
static class |
RelDecorrelator.RemoveSingleAggregateRule
Rule to remove single_value rel.
|
Modifier and Type | Field and Description |
---|---|
protected RelDecorrelator.CorelMap |
cm |
Modifier | Constructor and Description |
---|---|
protected |
RelDecorrelator(RelDecorrelator.CorelMap cm,
org.apache.calcite.plan.Context context,
org.apache.calcite.tools.RelBuilder relBuilder) |
Modifier and Type | Method and Description |
---|---|
protected org.apache.calcite.rel.RelNode |
decorrelate(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,
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.core.Aggregate rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Correlate rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Filter rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Join rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalProject rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalSnapshot rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.logical.LogicalTableFunctionScan rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Project rel) |
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) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
decorrelateRel(org.apache.calcite.rel.core.Values rel) |
org.apache.calcite.sql2rel.RelDecorrelator.Frame |
getInvoke(org.apache.calcite.rel.RelNode r,
org.apache.calcite.rel.RelNode parent) |
protected org.apache.calcite.tools.RelBuilderFactory |
relBuilderFactory() |
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) |
protected RelDecorrelator.CorelMap cm
protected RelDecorrelator(RelDecorrelator.CorelMap cm, org.apache.calcite.plan.Context context, org.apache.calcite.tools.RelBuilder relBuilder)
@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 expressionsCorrelate
instances removedprotected org.apache.calcite.tools.RelBuilderFactory relBuilderFactory()
protected org.apache.calcite.rel.RelNode decorrelate(org.apache.calcite.rel.RelNode root)
public 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, 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)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Values rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Aggregate rel)
public 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)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Project rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalSnapshot rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalTableFunctionScan rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Filter rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Correlate rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel)
public org.apache.calcite.sql2rel.RelDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Join rel)
Copyright © 2014–2021 The Apache Software Foundation. All rights reserved.