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