public String toString() { StringBuilder sb = new StringBuilder("GroupBy ("); if (groupingKeys != null && groupingKeys.length > 0) { sb.append("grouping set=").append(StringUtils.join(groupingKeys)); sb.append(", "); } if (hasAggFunctions()) { sb.append("funcs=").append(StringUtils.join(aggrFunctions)); } sb.append(")"); return sb.toString(); }
public String toString() { StringBuilder sb = new StringBuilder("GroupBy ("); if (groupingKeys != null && groupingKeys.length > 0) { sb.append("grouping set=").append(StringUtils.join(groupingKeys)); sb.append(", "); } if (hasAggFunctions()) { sb.append("funcs=").append(StringUtils.join(aggrFunctions)); } sb.append(")"); return sb.toString(); }
public AggregationExec(final TaskAttemptContext context, GroupbyNode plan, PhysicalExec child) throws IOException { super(context, plan.getInSchema(), plan.getOutSchema(), child); final Column [] keyColumns = plan.getGroupingColumns(); groupingKeyNum = keyColumns.length; if (plan.hasAggFunctions()) { aggFunctions = plan.getAggFunctions(); aggFunctionsNum = aggFunctions.size(); } else { aggFunctions = new ArrayList<>(); aggFunctionsNum = 0; } }
if (hasAggFunctions()) { sb.append(", exprs: (");
if (hasAggFunctions()) { sb.append(", exprs: (");
if (hasAggFunctions()) { sb = new StringBuilder(); sb.append("(");
public AggregationExec(final TaskAttemptContext context, GroupbyNode plan, PhysicalExec child) throws IOException { super(context, plan.getInSchema(), plan.getOutSchema(), child); final Column [] keyColumns = plan.getGroupingColumns(); groupingKeyNum = keyColumns.length; if (plan.hasAggFunctions()) { aggFunctions = plan.getAggFunctions(); aggFunctionsNum = aggFunctions.length; } else { aggFunctions = new AggregationFunctionCallEval[0]; aggFunctionsNum = 0; } }
public HashAggregator(GroupbyNode groupbyNode, Schema schema) throws IOException { hashTable = new TupleMap<>(context.getQueryContext().getInt(SessionVars.AGG_HASH_TABLE_SIZE)); List<Column> groupingKeyColumnList = new ArrayList<>(distinctGroupingKeyColumnSet); Column[] keyColumns = groupbyNode.getGroupingColumns(); for (Column keyColumn : keyColumns) { if (!distinctGroupingKeyColumnSet.contains(keyColumn)) { groupingKeyColumnList.add(keyColumn); } } Column[] groupingKeyColumns = groupingKeyColumnList.toArray(new Column[groupingKeyColumnList.size()]); if (groupbyNode.hasAggFunctions()) { aggFunctions = groupbyNode.getAggFunctions(); aggFunctionsNum = aggFunctions.size(); } else { aggFunctions = new ArrayList<>(); aggFunctionsNum = 0; } for (EvalNode aggFunction : aggFunctions) { aggFunction.bind(context.getEvalContext(), schema); } tupleSize = groupingKeyColumns.length + aggFunctionsNum; aggregatedTuple = new VTuple(groupingKeyColumns.length + aggFunctionsNum); innerKeyProjector = new KeyProjector(inSchema, groupingKeyColumns); }
if (hasAggFunctions()) { sb = new StringBuilder(); sb.append("(");
public HashAggregator(GroupbyNode groupbyNode, Schema schema) throws IOException { hashTable = new TupleMap<>(context.getQueryContext().getInt(SessionVars.AGG_HASH_TABLE_SIZE)); List<Column> groupingKeyColumnList = new ArrayList<>(distinctGroupingKeyColumnSet); Column[] keyColumns = groupbyNode.getGroupingColumns(); Column col; for (int idx = 0; idx < keyColumns.length; idx++) { col = keyColumns[idx]; if (!distinctGroupingKeyColumnSet.contains(col)) { groupingKeyColumnList.add(col); } } Column[] groupingKeyColumns = groupingKeyColumnList.toArray(new Column[groupingKeyColumnList.size()]); if (groupbyNode.hasAggFunctions()) { aggFunctions = groupbyNode.getAggFunctions(); aggFunctionsNum = aggFunctions.length; } else { aggFunctions = new AggregationFunctionCallEval[0]; aggFunctionsNum = 0; } for (EvalNode aggFunction : aggFunctions) { aggFunction.bind(context.getEvalContext(), schema); } tupleSize = groupingKeyColumns.length + aggFunctionsNum; aggregatedTuple = new VTuple(groupingKeyColumns.length + aggFunctionsNum); innerKeyProjector = new KeyProjector(inSchema, groupingKeyColumns); }
private NonDistinctHashAggregator(GroupbyNode groupbyNode) throws IOException { nonDistinctAggrDatas = new TupleMap<>(); if (groupbyNode.hasAggFunctions()) { aggFunctions = groupbyNode.getAggFunctions(); aggFunctionsNum = aggFunctions.size(); } else { aggFunctions = new ArrayList<>(); aggFunctionsNum = 0; } for (AggregationFunctionCallEval eachFunction: aggFunctions) { eachFunction.bind(context.getEvalContext(), inSchema); eachFunction.setFirstPhase(); } outTuple = new VTuple(aggFunctionsNum); dummyTuple = NullTuple.create(aggFunctionsNum); tupleLength = aggFunctionsNum; }
if (eachNode.hasAggFunctions()) { List<AggregationFunctionCallEval> aggrFunctions = eachNode.getAggFunctions(); for (AggregationFunctionCallEval aggrFunction : aggrFunctions) {
if (secondPhaseGroupBy.hasAggFunctions()) { int evalNum = secondPhaseGroupBy.getAggFunctions().size(); List<AggregationFunctionCallEval> secondPhaseEvals = secondPhaseGroupBy.getAggFunctions();
if (eachNode.hasAggFunctions()) { AggregationFunctionCallEval[] aggrFunctions = eachNode.getAggFunctions(); for (int j = 0; j < aggrFunctions.length; j++) {
private NonDistinctHashAggregator(GroupbyNode groupbyNode) throws IOException { nonDistinctAggrDatas = new TupleMap<FunctionContext[]>(); if (groupbyNode.hasAggFunctions()) { aggFunctions = groupbyNode.getAggFunctions(); aggFunctionsNum = aggFunctions.length; } else { aggFunctions = new AggregationFunctionCallEval[0]; aggFunctionsNum = 0; } for (AggregationFunctionCallEval eachFunction: aggFunctions) { eachFunction.bind(context.getEvalContext(), inSchema); eachFunction.setFirstPhase(); } outTuple = new VTuple(aggFunctionsNum); dummyTuple = NullTuple.create(aggFunctionsNum); tupleLength = aggFunctionsNum; }
private PlanProto.LogicalNode.Builder buildGroupby(SerializeContext context, GroupbyNode node) throws TajoException { int [] childIds = registerGetChildIds(context, node); PlanProto.GroupbyNode.Builder groupbyBuilder = PlanProto.GroupbyNode.newBuilder(); groupbyBuilder.setChildSeq(childIds[0]); groupbyBuilder.setDistinct(node.isDistinct()); if (node.groupingKeyNum() > 0) { groupbyBuilder.addAllGroupingKeys( ProtoUtil.<CatalogProtos.ColumnProto>toProtoObjects(node.getGroupingColumns())); } if (node.hasAggFunctions()) { groupbyBuilder.addAllAggFunctions( ProtoUtil.<PlanProto.EvalNodeTree>toProtoObjects(node.getAggFunctions().toArray(new ProtoObject[node.getAggFunctions().size()]))); } if (node.hasTargets()) { groupbyBuilder.addAllTargets(ProtoUtil.<PlanProto.Target>toProtoObjects(node.getTargets().toArray(new ProtoObject[node.getTargets().size()]))); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setGroupby(groupbyBuilder); return nodeBuilder; }
if (secondPhaseGroupBy.hasAggFunctions()) { int evalNum = secondPhaseGroupBy.getAggFunctions().length; AggregationFunctionCallEval [] secondPhaseEvals = secondPhaseGroupBy.getAggFunctions();
private PlanProto.LogicalNode.Builder buildGroupby(SerializeContext context, GroupbyNode node) throws TajoException { int [] childIds = registerGetChildIds(context, node); PlanProto.GroupbyNode.Builder groupbyBuilder = PlanProto.GroupbyNode.newBuilder(); groupbyBuilder.setChildSeq(childIds[0]); groupbyBuilder.setDistinct(node.isDistinct()); if (node.groupingKeyNum() > 0) { groupbyBuilder.addAllGroupingKeys( ProtoUtil.<CatalogProtos.ColumnProto>toProtoObjects(node.getGroupingColumns())); } if (node.hasAggFunctions()) { groupbyBuilder.addAllAggFunctions( ProtoUtil.<PlanProto.EvalNodeTree>toProtoObjects(node.getAggFunctions())); } if (node.hasTargets()) { groupbyBuilder.addAllTargets(ProtoUtil.<PlanProto.Target>toProtoObjects(node.getTargets())); } PlanProto.LogicalNode.Builder nodeBuilder = createNodeBuilder(context, node); nodeBuilder.setGroupby(groupbyBuilder); return nodeBuilder; }
if (groupbyNode.hasAggFunctions()) { verifyIfEvalNodesCanBeEvaluated(projectable, (List<EvalNode>)(List<?>) groupbyNode.getAggFunctions());
if (groupbyNode.hasAggFunctions()) { verifyIfEvalNodesCanBeEvaluated(projectable, groupbyNode.getAggFunctions());