private List<OperatorDescriptorDual> createFullOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_FIRST: list.add(new HashFullOuterJoinBuildFirstDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_SECOND: list.add(new HashFullOuterJoinBuildSecondDescriptor(this.keys1, this.keys2)); break; case BROADCAST_HASH_FIRST: case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for full outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "FullOuterJoin ("+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 = "FullOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createFullOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_FIRST: list.add(new HashFullOuterJoinBuildFirstDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_SECOND: list.add(new HashFullOuterJoinBuildSecondDescriptor(this.keys1, this.keys2)); break; case BROADCAST_HASH_FIRST: case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for full outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "FullOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createFullOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_FIRST: list.add(new HashFullOuterJoinBuildFirstDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_SECOND: list.add(new HashFullOuterJoinBuildSecondDescriptor(this.keys1, this.keys2)); break; case BROADCAST_HASH_FIRST: case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for full outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "FullOuterJoin("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createFullOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_FIRST: list.add(new HashFullOuterJoinBuildFirstDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_SECOND: list.add(new HashFullOuterJoinBuildSecondDescriptor(this.keys1, this.keys2)); break; case BROADCAST_HASH_FIRST: case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for full outer join"); } return list; }
@Override public DualInputPlanNode instantiate(Channel in1, Channel in2, TwoInputNode node) { String nodeName = "FullOuterJoin ("+node.getOperator().getName()+")"; return new DualInputPlanNode(node, nodeName, in1, in2, getStrategy(), this.keys1, this.keys2); }
private List<OperatorDescriptorDual> createFullOuterJoinDescriptors(JoinHint hint) { List<OperatorDescriptorDual> list = new ArrayList<>(); switch (hint) { case OPTIMIZER_CHOOSES: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeFullOuterJoinDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_FIRST: list.add(new HashFullOuterJoinBuildFirstDescriptor(this.keys1, this.keys2)); break; case REPARTITION_HASH_SECOND: list.add(new HashFullOuterJoinBuildSecondDescriptor(this.keys1, this.keys2)); break; case BROADCAST_HASH_FIRST: case BROADCAST_HASH_SECOND: default: throw new CompilerException("Invalid join hint: " + hint + " for full outer join"); } return list; }