Class JoinGraph
- java.lang.Object
-
- io.trino.sql.planner.optimizations.joins.JoinGraph
-
public class JoinGraph extends Object
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 Modifier and Type Class Description static classJoinGraph.Edge
-
Constructor Summary
Constructors Constructor Description JoinGraph(PlanNode node)JoinGraph(List<PlanNode> nodes, com.google.common.collect.Multimap<PlanNodeId,JoinGraph.Edge> edges, PlanNodeId rootId, List<Expression> filters, boolean containsCrossJoin)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static JoinGraphbuildFrom(Metadata metadata, PlanNode plan, Lookup lookup, PlanNodeIdAllocator planNodeIdAllocator, Session session, TypeAnalyzer typeAnalyzer, TypeProvider types)BuildsJoinGraphcontainingplannode.Collection<JoinGraph.Edge>getEdges(PlanNode node)List<Expression>getFilters()PlanNodegetNode(int index)List<PlanNode>getNodes()PlanNodeIdgetRootId()booleanisContainsCrossJoin()booleanisEmpty()intsize()StringtoString()JoinGraphwithFilter(Expression expression)
-
-
-
Constructor Detail
-
JoinGraph
public JoinGraph(PlanNode node)
-
JoinGraph
public JoinGraph(List<PlanNode> nodes, com.google.common.collect.Multimap<PlanNodeId,JoinGraph.Edge> edges, PlanNodeId rootId, List<Expression> filters, boolean containsCrossJoin)
-
-
Method Detail
-
buildFrom
public static JoinGraph buildFrom(Metadata metadata, PlanNode plan, Lookup lookup, PlanNodeIdAllocator planNodeIdAllocator, Session session, TypeAnalyzer typeAnalyzer, TypeProvider types)
BuildsJoinGraphcontainingplannode.
-
withFilter
public JoinGraph withFilter(Expression expression)
-
getFilters
public List<Expression> getFilters()
-
getRootId
public PlanNodeId getRootId()
-
isEmpty
public boolean isEmpty()
-
size
public int size()
-
getNode
public PlanNode getNode(int index)
-
getEdges
public Collection<JoinGraph.Edge> getEdges(PlanNode node)
-
isContainsCrossJoin
public boolean isContainsCrossJoin()
-
-