Class RelDecorrelator.CorelMap

  • Enclosing class:
    RelDecorrelator

    private static class RelDecorrelator.CorelMap
    extends java.lang.Object
    A map of the locations of 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:

    1. mapRefRelToCorRef maps a RelNode to the correlated variables it references;
    2. mapCorToCorRel maps a correlated variable to the Correlate providing it;
    3. 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.