private List<OperatorDescriptorDual> createRightOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, true)); list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, true)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, false)); break; case REPARTITION_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, false)); break; case REPARTITION_HASH_SECOND: list.add(new HashRightOuterJoinBuildSecondDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for right outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "RightOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "RightOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createRightOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, true)); list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, true)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, false)); break; case REPARTITION_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, false)); break; case REPARTITION_HASH_SECOND: list.add(new HashRightOuterJoinBuildSecondDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for right outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "RightOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createRightOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, true)); list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, true)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, false)); break; case REPARTITION_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, false)); break; case REPARTITION_HASH_SECOND: list.add(new HashRightOuterJoinBuildSecondDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for right outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "RightOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createRightOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, true)); list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, true)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, false)); break; case REPARTITION_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, false)); break; case REPARTITION_HASH_SECOND: list.add(new HashRightOuterJoinBuildSecondDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for right outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "RightOuterJoin("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createRightOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, true)); list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, true)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeRightOuterJoinDescriptor(this.keys1, this.keys2, false)); break; case REPARTITION_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_FIRST: list.add(new HashRightOuterJoinBuildFirstDescriptor(this.keys1, this.keys2, true, false)); break; case REPARTITION_HASH_SECOND: list.add(new HashRightOuterJoinBuildSecondDescriptor(this.keys1, this.keys2, false, true)); break; case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for right outer join"); } return list; }