private void addJoinsWithDifferentDistributions(JoinNode joinNode, List<PlanNodeWithCost> possibleJoinNodes, Context context) { if (!mustPartition(joinNode) && canReplicate(joinNode, context)) { possibleJoinNodes.add(getJoinNodeWithCost(context, joinNode.withDistributionType(REPLICATED))); } if (!mustReplicate(joinNode, context)) { possibleJoinNodes.add(getJoinNodeWithCost(context, joinNode.withDistributionType(PARTITIONED))); } }
private PlanNode getSyntacticOrderJoin(JoinNode joinNode, Context context, JoinDistributionType joinDistributionType) { if (mustPartition(joinNode)) { return joinNode.withDistributionType(PARTITIONED); } if (mustReplicate(joinNode, context)) { return joinNode.withDistributionType(REPLICATED); } if (joinDistributionType.canPartition()) { return joinNode.withDistributionType(PARTITIONED); } return joinNode.withDistributionType(REPLICATED); }