Class PlanNodeSearcher

java.lang.Object
io.trino.sql.planner.optimizations.PlanNodeSearcher

public class PlanNodeSearcher extends Object
  • Method Details

    • searchFrom

      public static PlanNodeSearcher searchFrom(PlanNode node)
    • searchFrom

      public static PlanNodeSearcher searchFrom(PlanNode node, Lookup lookup)
      Use it in optimizer Rule only if you truly do not have a better option

      TODO: replace it with a support for plan (physical) properties in rules pattern matching

    • where

      public PlanNodeSearcher where(Predicate<PlanNode> where)
    • recurseOnlyWhen

      public PlanNodeSearcher recurseOnlyWhen(Predicate<PlanNode> skipOnly)
    • findFirst

      public <T extends PlanNode> Optional<T> findFirst()
    • findSingle

      public <T extends PlanNode> Optional<T> findSingle()
    • findAll

      public <T extends PlanNode> List<T> findAll()
      Return a list of matching nodes ordered as in pre-order traversal of the plan tree.
    • findOnlyElement

      public <T extends PlanNode> T findOnlyElement()
    • findOnlyElement

      public <T extends PlanNode> T findOnlyElement(T defaultValue)
    • removeAll

      public PlanNode removeAll()
    • removeFirst

      public PlanNode removeFirst()
    • replaceAll

      public PlanNode replaceAll(PlanNode newPlanNode)
    • replaceFirst

      public PlanNode replaceFirst(PlanNode newPlanNode)
    • matches

      public boolean matches()
    • count

      public int count()