Class PushDownDereferencesThroughAssignUniqueId

  • All Implemented Interfaces:
    Rule<ProjectNode>

    public class PushDownDereferencesThroughAssignUniqueId
    extends Object
    implements Rule<ProjectNode>
    Transforms:
      Project(C := f1(A.x), D := f2(B))
          AssignUniqueId
              Source(A, B)
      
    to:
      Project(C := f1(symbol), D := f2(B))
          AssignUniqueId
              Project(A, B, symbol := A.x)
                  Source(A, B)