@Test public void testMergeJoinOptimizationWithDistinct() throws Exception { this.joinType = JoinType.JOIN_INNER; int rows = 50; List[] data = new List[rows]; for(int i=0; i<rows; i++) { data[i] = new ArrayList(); Integer value = new Integer((i*17) % 47); data[i].add(value); } this.leftTuples = data; this.rightTuples = new List[] { Arrays.asList(4), Arrays.asList(7), Arrays.asList(2), Arrays.asList(6), Arrays.asList(1), Arrays.asList(8), }; expected = new List[] { Arrays.asList(new Object[] { 4, 4 }), Arrays.asList(new Object[] { 8, 8 }), Arrays.asList(new Object[] { 7, 7 }), Arrays.asList(new Object[] { 2, 2 }), Arrays.asList(new Object[] { 6, 6 }), Arrays.asList(new Object[] { 1, 1 }), }; helpCreateJoin(); this.joinStrategy = new EnhancedSortMergeJoinStrategy(SortOption.SORT, SortOption.SORT); this.join.setJoinStrategy(joinStrategy); helpTestJoinDirect(expected, 40, 1); }
public void setJoinStrategy(JoinStrategy joinStrategy) { this.joinStrategy = joinStrategy; }
JoinNode extends SubqueryAwareRelationalNode { public void setJoinStrategy(JoinStrategy joinStrategy) { this.joinStrategy = joinStrategy; } }
JoinNode extends SubqueryAwareRelationalNode { public void setJoinStrategy(JoinStrategy joinStrategy) { this.joinStrategy = joinStrategy; } JoinNode(int nodeID); }
JoinNode extends SubqueryAwareRelationalNode { public void setJoinStrategy(JoinStrategy joinStrategy) { this.joinStrategy = joinStrategy; } JoinNode(int nodeID); void setJoinType(JoinType type); JoinStrategy getJoinStrategy(); void setJoinStrategy(JoinStrategy joinStrategy); void setJoinExpressions(List leftExpressions, List rightExpressions); boolean isLeftDistinct(); void setLeftDistinct(boolean leftDistinct); boolean isRightDistinct(); void setRightDistinct(boolean rightDistinct); void setJoinCriteria(Criteria joinCriteria); @Override void initialize(CommandContext context, BufferManager bufferManager,
            ProcessorDataManager dataMgr); void open(); void openInternal(); Object clone(); TupleBatch nextBatchDirect(); PlanNode getDescriptionProperties(); boolean isDependent(); void setDependentValueSource(String dependentValueSource); String getDependentValueSourceName(); void closeDirect(); @Override void reset(); JoinType getJoinType(); Criteria getJoinCriteria(); List getLeftExpressions(); List getRightExpressions(); DependentValueSource getDependentValueSource(); @Override Collection<? extends LanguageObject> getObjects(); }
JoinNode extends SubqueryAwareRelationalNode { public void setJoinStrategy(JoinStrategy joinStrategy) { this.joinStrategy = joinStrategy; } JoinNode(int nodeID); void setJoinType(JoinType type); JoinStrategy getJoinStrategy(); void setJoinStrategy(JoinStrategy joinStrategy); void setJoinExpressions(List leftExpressions, List rightExpressions); boolean isLeftDistinct(); void setLeftDistinct(boolean leftDistinct); boolean isRightDistinct(); void setRightDistinct(boolean rightDistinct); void setJoinCriteria(Criteria joinCriteria); @Override void initialize(CommandContext context, BufferManager bufferManager,
            ProcessorDataManager dataMgr); void open(); void openInternal(); Object clone(); TupleBatch nextBatchDirect(); PlanNode getDescriptionProperties(); boolean isDependent(); void setDependentValueSource(String dependentValueSource); String getDependentValueSourceName(); void closeDirect(); @Override void reset(); JoinType getJoinType(); Criteria getJoinCriteria(); List getLeftExpressions(); List getRightExpressions(); DependentValueSource getDependentValueSource(); @Override Collection<? extends LanguageObject> getObjects();  }