Class PushDownDereferencesThroughLimit

  • All Implemented Interfaces:
    Rule<ProjectNode>

    public class PushDownDereferencesThroughLimit
    extends Object
    implements Rule<ProjectNode>
    Transforms:
      Project(D := f1(A.x), E := f2(B.x), G := f3(C))
          Limit(5, tiesResolvingScheme = [B])
              Source(A, B, C)
      
    to:
      Project(D := f1(symbol), E := f2(B.x), G := f3(C))
          Limit(5, tiesResolvingScheme = [B])
              Project(symbol := A.x, A, B, C)
                  Source(A, B, C)