private static class RelDecorrelator.CorelMap extends Object
LogicalCorrelate
in a tree of RelNodes.
It is used to drive the decorrelation process. Treat it as immutable; rebuild if you modify the tree.
There are three maps:
mapRefRelToCorRef maps a RelNode to the correlated
variables it references;
mapCorToCorRel maps a correlated variable to the
Correlate 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.
| Modifier and Type | Field and Description |
|---|---|
private SortedMap<CorrelationId,RelNode> |
mapCorToCorRel |
private Map<RexFieldAccess,RelDecorrelator.CorRef> |
mapFieldAccessToCorRef |
private com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> |
mapRefRelToCorRef |
| Modifier | Constructor and Description |
|---|---|
private |
CorelMap(com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef,
SortedMap<CorrelationId,RelNode> mapCorToCorRel,
Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(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,
SortedMap<CorrelationId,RelNode> mapCorToCorRel,
Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorVar)
Creates a CorelMap with given contents.
|
String |
toString() |
private final com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef
private final SortedMap<CorrelationId,RelNode> mapCorToCorRel
private final Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef
private CorelMap(com.google.common.collect.Multimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorRef, SortedMap<CorrelationId,RelNode> mapCorToCorRel, Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorRef)
public static RelDecorrelator.CorelMap of(com.google.common.collect.SortedSetMultimap<RelNode,RelDecorrelator.CorRef> mapRefRelToCorVar, SortedMap<CorrelationId,RelNode> mapCorToCorRel, Map<RexFieldAccess,RelDecorrelator.CorRef> mapFieldAccessToCorVar)
public boolean hasCorrelation()
Copyright © 2012–2018 The Apache Software Foundation. All rights reserved.