Class JoinGraph
java.lang.Object
io.trino.sql.planner.optimizations.joins.JoinGraph
JoinGraph represents sequence of Joins, where nodes in the graph
are PlanNodes that are being joined and edges are all equality join
conditions between pair of nodes.
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionJoinGraph(List<PlanNode> nodes, com.google.common.collect.Multimap<PlanNodeId, JoinGraph.Edge> edges, PlanNodeId rootId, List<Expression> filters, boolean containsCrossJoin) -
Method Summary
Modifier and TypeMethodDescriptionstatic JoinGraphbuildFrom(PlannerContext plannerContext, PlanNode plan, Lookup lookup, PlanNodeIdAllocator planNodeIdAllocator, Session session, IrTypeAnalyzer typeAnalyzer, TypeProvider types) BuildsJoinGraphcontainingplannode.getNode(int index) getNodes()booleanbooleanisEmpty()intsize()toString()withFilter(Expression expression)
-
Constructor Details
-
JoinGraph
-
JoinGraph
public JoinGraph(List<PlanNode> nodes, com.google.common.collect.Multimap<PlanNodeId, JoinGraph.Edge> edges, PlanNodeId rootId, List<Expression> filters, boolean containsCrossJoin)
-
-
Method Details
-
buildFrom
public static JoinGraph buildFrom(PlannerContext plannerContext, PlanNode plan, Lookup lookup, PlanNodeIdAllocator planNodeIdAllocator, Session session, IrTypeAnalyzer typeAnalyzer, TypeProvider types) BuildsJoinGraphcontainingplannode. -
withFilter
-
getFilters
-
getRootId
-
isEmpty
public boolean isEmpty() -
size
public int size() -
getNode
-
getNodes
-
getEdges
-
isContainsCrossJoin
public boolean isContainsCrossJoin() -
toString
-