Class PushDownDereferenceThroughFilter

java.lang.Object
io.trino.sql.planner.iterative.rule.PushDownDereferenceThroughFilter
All Implemented Interfaces:
Rule<ProjectNode>

public class PushDownDereferenceThroughFilter extends Object implements Rule<ProjectNode>
Transforms:
  Project(D := f1(A.x), E := f2(B), G := f3(C))
      Filter(A.x.y = 5 AND B.m = 3)
          Source(A, B, C)
  
to:
  Project(D := f1(expr), E := f2(B), G := f3(C))
      Filter(expr.y = 5 AND B.m = 3)
          Project(A, B, C, expr := A.x)
              Source(A, B, C)
 

Pushes down dereference projections in project node assignments and filter node predicate.