Class PlanNodeSearcher
- java.lang.Object
-
- io.trino.sql.planner.optimizations.PlanNodeSearcher
-
public class PlanNodeSearcher extends Object
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcount()<T extends PlanNode>
List<T>findAll()Return a list of matching nodes ordered as in pre-order traversal of the plan tree.<T extends PlanNode>
Optional<T>findFirst()<T extends PlanNode>
TfindOnlyElement()<T extends PlanNode>
TfindOnlyElement(T defaultValue)<T extends PlanNode>
Optional<T>findSingle()booleanmatches()PlanNodeSearcherrecurseOnlyWhen(Predicate<PlanNode> skipOnly)PlanNoderemoveAll()PlanNoderemoveFirst()PlanNodereplaceAll(PlanNode newPlanNode)PlanNodereplaceFirst(PlanNode newPlanNode)static PlanNodeSearchersearchFrom(PlanNode node)static PlanNodeSearchersearchFrom(PlanNode node, Lookup lookup)Use it in optimizerRuleonly if you truly do not have a better optionPlanNodeSearcherwhere(Predicate<PlanNode> where)
-
-
-
Method Detail
-
searchFrom
public static PlanNodeSearcher searchFrom(PlanNode node)
-
searchFrom
public static PlanNodeSearcher searchFrom(PlanNode node, Lookup lookup)
Use it in optimizerRuleonly if you truly do not have a better optionTODO: 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)
-
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()
-
matches
public boolean matches()
-
count
public int count()
-
-