Package org.apache.calcite.sql2rel
Class RelDecorrelator.CorelMap
- java.lang.Object
-
- org.apache.calcite.sql2rel.RelDecorrelator.CorelMap
-
- Enclosing class:
- RelDecorrelator
private static class RelDecorrelator.CorelMap extends java.lang.Object
A map of the locations ofLogicalCorrelate
in a tree ofRelNode
s.It is used to drive the decorrelation process. Treat it as immutable; rebuild if you modify the tree.
There are three maps:
mapRefRelToCorRef
maps aRelNode
to the correlated variables it references;mapCorToCorRel
maps a correlated variable to theCorrelate
providing it;mapFieldAccessToCorRef
maps a rex field access to the corVar it represents. Because typeFlattener does not clone or modify a correlated field access this map does not need to be updated.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.SortedMap<CorrelationId,RelNode>
mapCorToCorRel
private java.util.Map<RexFieldAccess,RelDecorrelator.CorRef>
mapFieldAccessToCorRef
private com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef>
mapRefRelToCorRef
-
Constructor Summary
Constructors Modifier Constructor Description private
CorelMap(com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef, java.util.SortedMap<CorrelationId,RelNode> mapCorToCorRel, java.util.Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
boolean
hasCorrelation()
Returns whether there are any correlating variables in this statement.int
hashCode()
static RelDecorrelator.CorelMap
of(com.google.common.collect.SortedSetMultimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorVar, java.util.SortedMap<CorrelationId,RelNode> mapCorToCorRel, java.util.Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorVar)
Creates a CorelMap with given contents.java.lang.String
toString()
-
-
-
Field Detail
-
mapRefRelToCorRef
private final com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef
-
mapCorToCorRel
private final java.util.SortedMap<CorrelationId,RelNode> mapCorToCorRel
-
mapFieldAccessToCorRef
private final java.util.Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef
-
-
Constructor Detail
-
CorelMap
private CorelMap(com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef, java.util.SortedMap<CorrelationId,RelNode> mapCorToCorRel, java.util.Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef)
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
of
public static RelDecorrelator.CorelMap of(com.google.common.collect.SortedSetMultimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorVar, java.util.SortedMap<CorrelationId,RelNode> mapCorToCorRel, java.util.Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorVar)
Creates a CorelMap with given contents.
-
hasCorrelation
public boolean hasCorrelation()
Returns whether there are any correlating variables in this statement.- Returns:
- whether there are any correlating variables
-
-