Class PushDownDereferenceThroughProject

  • All Implemented Interfaces:
    Rule<ProjectNode>

    public class PushDownDereferenceThroughProject
    extends Object
    implements Rule<ProjectNode>
    Transforms:
      Project(c := f(a.x), d := g(b))
        Project(a, b)
      
    to:
      Project(c := f(symbol), d := g(b))
        Project(a, b, symbol := a.x)