Package org.apache.calcite.sql2rel
Class DeduplicateCorrelateVariables
- java.lang.Object
-
- org.apache.calcite.rel.RelShuttleImpl
-
- org.apache.calcite.rel.RelHomogeneousShuttle
-
- org.apache.calcite.sql2rel.DeduplicateCorrelateVariables
-
- All Implemented Interfaces:
RelShuttle
public class DeduplicateCorrelateVariables extends RelHomogeneousShuttle
Rewrites relations to ensure the same correlation is referenced by the same correlation variable.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
DeduplicateCorrelateVariables.DeduplicateCorrelateVariablesShuttle
Replaces alternative names of correlation variable to its canonical name.
-
Field Summary
Fields Modifier and Type Field Description private RexShuttle
dedupRex
-
Fields inherited from class org.apache.calcite.rel.RelShuttleImpl
stack
-
-
Constructor Summary
Constructors Modifier Constructor Description private
DeduplicateCorrelateVariables(RexBuilder builder, CorrelationId canonicalId, com.google.common.collect.ImmutableSet<CorrelationId> alternateIds)
Creates a DeduplicateCorrelateVariables.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static RelNode
go(RexBuilder builder, CorrelationId canonicalId, java.lang.Iterable<? extends CorrelationId> alternateIds, RelNode r)
Rewrites a relational expression, replacing alternate correlation variables with a canonical correlation variable.RelNode
visit(RelNode other)
-
Methods inherited from class org.apache.calcite.rel.RelHomogeneousShuttle
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Methods inherited from class org.apache.calcite.rel.RelShuttleImpl
visitChild, visitChildren
-
-
-
-
Field Detail
-
dedupRex
private final RexShuttle dedupRex
-
-
Constructor Detail
-
DeduplicateCorrelateVariables
private DeduplicateCorrelateVariables(RexBuilder builder, CorrelationId canonicalId, com.google.common.collect.ImmutableSet<CorrelationId> alternateIds)
Creates a DeduplicateCorrelateVariables.
-
-
Method Detail
-
go
public static RelNode go(RexBuilder builder, CorrelationId canonicalId, java.lang.Iterable<? extends CorrelationId> alternateIds, RelNode r)
Rewrites a relational expression, replacing alternate correlation variables with a canonical correlation variable.
-
visit
public RelNode visit(RelNode other)
- Specified by:
visit
in interfaceRelShuttle
- Overrides:
visit
in classRelShuttleImpl
-
-