Class SubQueryDecorrelator.SubQueryRelDecorrelator
- All Implemented Interfaces:
org.apache.calcite.util.ReflectiveVisitor
- Enclosing class:
- SubQueryDecorrelator
`public` is for reflection. We use ReflectiveVisitor instead of RelShuttle because RelShuttle returns RelNode.
-
Method Summary
Modifier and TypeMethodDescriptionorg.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.core.Sort rel) Rewrite Sort.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.core.Values rel) Rewrites aValues.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel) Rewrites aLogicalAggregate.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel) org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel) Rewrite LogicalFilter.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel) Rewrite LogicalJoin.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.logical.LogicalProject rel) Rewrite LogicalProject.org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.FramedecorrelateRel(org.apache.calcite.rel.RelNode rel) Fallback if none of the otherdecorrelateRelmethods match.
-
Method Details
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalProject rel) Rewrite LogicalProject.Rewrite logic: Pass along any correlated variables coming from the input.
- Parameters:
rel- the project rel to rewrite
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalFilter rel) Rewrite LogicalFilter.Rewrite logic: 1. If a Filter references a correlated field in its filter condition, rewrite the Filter references only non-correlated fields, and the condition references correlated fields will be push to it's output. 2. If Filter does not reference correlated variables, simply rewrite the filter condition using new input.
- Parameters:
rel- the filter rel to rewrite
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalAggregate rel) Rewrites aLogicalAggregate.Rewrite logic: 1. Permute the group by keys to the front. 2. If the input of an aggregate produces correlated variables, add them to the group list. 3. Change aggCalls to reference the new project.
- Parameters:
rel- Aggregate to rewrite
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalJoin rel) Rewrite LogicalJoin.Rewrite logic: 1. rewrite join condition. 2. map output positions and produce corVars if any.
- Parameters:
rel- Join
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Sort rel) Rewrite Sort.Rewrite logic: change the collations field to reference the new input.
- Parameters:
rel- Sort to be rewritten
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.core.Values rel) Rewrites aValues.- Parameters:
rel- Values to be rewritten
-
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.logical.LogicalCorrelate rel) -
decorrelateRel
public org.apache.flink.table.planner.plan.rules.logical.SubQueryDecorrelator.Frame decorrelateRel(org.apache.calcite.rel.RelNode rel) Fallback if none of the otherdecorrelateRelmethods match.
-