Optimizer.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) ) fixedDriverStrat = new SortMergeInnerJoinDescriptor(this.keys1, this.keys2); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2, false, false, true)); break; case OPTIMIZER_CHOOSES: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2)); list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2)); list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));
final FieldList keysRight = new FieldList(3, 1); SortMergeInnerJoinDescriptor descr = new SortMergeInnerJoinDescriptor(keysLeft, keysRight); propsRight.setHashPartitioned(keysRight); assertTrue(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); propsRight.setCustomPartitioned(keysRight, part); assertTrue(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); propsRight.setCustomPartitioned(keysRight, part); assertTrue(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); GlobalProperties propsRight = new GlobalProperties(); propsRight.setRangePartitioned(ordering2, dist2); assertTrue(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); GlobalProperties propsRight = new GlobalProperties(); propsRight.setRangePartitioned(ordering2, dist2); assertTrue(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight));
SortMergeInnerJoinDescriptor descr = new SortMergeInnerJoinDescriptor(keysLeft, keysRight); propsRight.setCustomPartitioned(keysRight, part); assertFalse(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); propsRight.setCustomPartitioned(keysRight, part2); assertFalse(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); GlobalProperties propsRight = new GlobalProperties(); propsRight.setRangePartitioned(ordering2, dist2); assertFalse(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); GlobalProperties propsRight = new GlobalProperties(); propsRight.setRangePartitioned(ordering2, dist2); assertFalse(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight)); GlobalProperties propsRight = new GlobalProperties(); propsRight.setRangePartitioned(ordering2, dist4); assertFalse(descr.areCompatible(reqLeft, reqRight, propsLeft, propsRight));
Optimizer.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) ) fixedDriverStrat = new SortMergeInnerJoinDescriptor(this.keys1, this.keys2); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2, false, false, true)); break; case OPTIMIZER_CHOOSES: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2)); list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2)); list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));
Optimizer.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) ) fixedDriverStrat = new SortMergeInnerJoinDescriptor(this.keys1, this.keys2); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2, false, false, true)); break; case OPTIMIZER_CHOOSES: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2)); list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2)); list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));
Optimizer.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) ) fixedDriverStrat = new SortMergeInnerJoinDescriptor(this.keys1, this.keys2); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2, false, false, true)); break; case OPTIMIZER_CHOOSES: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2)); list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2)); list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));
Optimizer.HINT_LOCAL_STRATEGY_MERGE.equals(localStrategy) ) fixedDriverStrat = new SortMergeInnerJoinDescriptor(this.keys1, this.keys2); break; case REPARTITION_SORT_MERGE: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2, false, false, true)); break; case OPTIMIZER_CHOOSES: list.add(new SortMergeInnerJoinDescriptor(this.keys1, this.keys2)); list.add(new HashJoinBuildFirstProperties(this.keys1, this.keys2)); list.add(new HashJoinBuildSecondProperties(this.keys1, this.keys2));