public String getShortPlanString() { StringBuilder sb = new StringBuilder(); sb.append(getType().name() + "(" + getPID() + ")").append("("); Column [] groupingColumns = this.groupingKeys; for (int j = 0; j < groupingColumns.length; j++) {
public String getShortPlanString() { StringBuilder sb = new StringBuilder(); sb.append(getType().name() + "(" + getPID() + ")").append("("); Column [] groupingColumns = this.groupingKeys; for (int j = 0; j < groupingColumns.length; j++) {
private void setDistinctAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<SortSpecArray>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<SortSpecProto>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(secondStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setDistinctAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(secondStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setMultiStageAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode, ExecutionBlock thirdStageBlock, DistinctGroupbyNode thirdStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), true, MultipleAggregationStage.FIRST_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), true, MultipleAggregationStage.SECOND_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<SortSpecArray>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<SortSpecProto>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(thirdStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } thirdStageBlock.getEnforcer().enforceDistinctAggregation(thirdStageDistinctNode.getPID(), true, MultipleAggregationStage.THRID_STAGE, DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
private void setMultiStageAggregationEnforcer( ExecutionBlock firstStageBlock, DistinctGroupbyNode firstStageDistinctNode, ExecutionBlock secondStageBlock, DistinctGroupbyNode secondStageDistinctNode, ExecutionBlock thirdStageBlock, DistinctGroupbyNode thirdStageDistinctNode) { firstStageBlock.getEnforcer().enforceDistinctAggregation(firstStageDistinctNode.getPID(), true, MultipleAggregationStage.FIRST_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); secondStageBlock.getEnforcer().enforceDistinctAggregation(secondStageDistinctNode.getPID(), true, MultipleAggregationStage.SECOND_STAGE, DistinctAggregationAlgorithm.HASH_AGGREGATION, null); List<SortSpecArray> sortSpecArrays = new ArrayList<>(); int index = 0; for (GroupbyNode groupbyNode: firstStageDistinctNode.getSubPlans()) { List<SortSpecProto> sortSpecs = new ArrayList<>(); for (Column column: groupbyNode.getGroupingColumns()) { sortSpecs.add(SortSpecProto.newBuilder().setColumn(column.getProto()).build()); } sortSpecArrays.add( SortSpecArray.newBuilder() .setNodeId(thirdStageDistinctNode.getSubPlans().get(index).getPID()) .addAllSortSpecs(sortSpecs).build()); } thirdStageBlock.getEnforcer().enforceDistinctAggregation(thirdStageDistinctNode.getPID(), true, MultipleAggregationStage.THRID_STAGE, DistinctAggregationAlgorithm.SORT_AGGREGATION, sortSpecArrays); }
secondStage.setPlan(secondPhaseGroupby); SortSpec [] sortSpecs = PlannerUtil.columnsToSortSpecs(firstStageGroupingColumns); secondStage.getEnforcer().enforceSortAggregation(secondPhaseGroupby.getPID(), sortSpecs);
secondStage.setPlan(secondPhaseGroupby); SortSpec [] sortSpecs = PlannerUtil.columnsToSortSpecs(firstStageGroupingColumns); secondStage.getEnforcer().enforceSortAggregation(secondPhaseGroupby.getPID(), sortSpecs);
enforcer.enforceHashAggregation(groupByNode.getPID()); TaskAttemptContext ctx = new TaskAttemptContext(new QueryContext(conf), LocalTajoTestingUtility.newTaskAttemptId(masterPlan), enforcer.enforceSortAggregation(groupByNode.getPID(), null); ctx = new TaskAttemptContext(new QueryContext(conf), LocalTajoTestingUtility.newTaskAttemptId(masterPlan),