Package io.prestosql.sql.planner.plan
Class JoinNode
- java.lang.Object
-
- io.prestosql.sql.planner.plan.PlanNode
-
- io.prestosql.sql.planner.plan.JoinNode
-
@Immutable public class JoinNode extends PlanNode
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JoinNode.DistributionType
static class
JoinNode.EquiJoinClause
static class
JoinNode.Type
-
Constructor Summary
Constructors Constructor Description JoinNode(PlanNodeId id, JoinNode.Type type, PlanNode left, PlanNode right, List<JoinNode.EquiJoinClause> criteria, List<Symbol> leftOutputSymbols, List<Symbol> rightOutputSymbols, Optional<Expression> filter, Optional<Symbol> leftHashSymbol, Optional<Symbol> rightHashSymbol, Optional<JoinNode.DistributionType> distributionType, Optional<Boolean> spillable, Map<DynamicFilterId,Symbol> dynamicFilters, Optional<PlanNodeStatsAndCostSummary> reorderJoinStatsAndCost)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,C>
Raccept(PlanVisitor<R,C> visitor, C context)
JoinNode
flipChildren()
List<JoinNode.EquiJoinClause>
getCriteria()
Optional<JoinNode.DistributionType>
getDistributionType()
Map<DynamicFilterId,Symbol>
getDynamicFilters()
Optional<Expression>
getFilter()
PlanNode
getLeft()
Optional<Symbol>
getLeftHashSymbol()
List<Symbol>
getLeftOutputSymbols()
List<Symbol>
getOutputSymbols()
Optional<PlanNodeStatsAndCostSummary>
getReorderJoinStatsAndCost()
PlanNode
getRight()
Optional<Symbol>
getRightHashSymbol()
List<Symbol>
getRightOutputSymbols()
List<PlanNode>
getSources()
JoinNode.Type
getType()
boolean
isCrossJoin()
Optional<Boolean>
isSpillable()
PlanNode
replaceChildren(List<PlanNode> newChildren)
JoinNode
withDistributionType(JoinNode.DistributionType distributionType)
JoinNode
withReorderJoinStatsAndCost(PlanNodeStatsAndCostSummary statsAndCost)
JoinNode
withSpillable(boolean spillable)
-
-
-
Constructor Detail
-
JoinNode
public JoinNode(PlanNodeId id, JoinNode.Type type, PlanNode left, PlanNode right, List<JoinNode.EquiJoinClause> criteria, List<Symbol> leftOutputSymbols, List<Symbol> rightOutputSymbols, Optional<Expression> filter, Optional<Symbol> leftHashSymbol, Optional<Symbol> rightHashSymbol, Optional<JoinNode.DistributionType> distributionType, Optional<Boolean> spillable, Map<DynamicFilterId,Symbol> dynamicFilters, Optional<PlanNodeStatsAndCostSummary> reorderJoinStatsAndCost)
-
-
Method Detail
-
flipChildren
public JoinNode flipChildren()
-
getType
public JoinNode.Type getType()
-
getLeft
public PlanNode getLeft()
-
getRight
public PlanNode getRight()
-
getCriteria
public List<JoinNode.EquiJoinClause> getCriteria()
-
getFilter
public Optional<Expression> getFilter()
-
getSources
public List<PlanNode> getSources()
- Specified by:
getSources
in classPlanNode
-
getOutputSymbols
public List<Symbol> getOutputSymbols()
- Specified by:
getOutputSymbols
in classPlanNode
-
getDistributionType
public Optional<JoinNode.DistributionType> getDistributionType()
-
getDynamicFilters
public Map<DynamicFilterId,Symbol> getDynamicFilters()
-
getReorderJoinStatsAndCost
public Optional<PlanNodeStatsAndCostSummary> getReorderJoinStatsAndCost()
-
accept
public <R,C> R accept(PlanVisitor<R,C> visitor, C context)
-
replaceChildren
public PlanNode replaceChildren(List<PlanNode> newChildren)
- Specified by:
replaceChildren
in classPlanNode
-
withDistributionType
public JoinNode withDistributionType(JoinNode.DistributionType distributionType)
-
withSpillable
public JoinNode withSpillable(boolean spillable)
-
withReorderJoinStatsAndCost
public JoinNode withReorderJoinStatsAndCost(PlanNodeStatsAndCostSummary statsAndCost)
-
isCrossJoin
public boolean isCrossJoin()
-
-