return grp;
}
@Override
public PlanString getPlanString() {
PlanString planStr = new PlanString(this);
StringBuilder sb = new StringBuilder();
sb.append("(");
Column [] groupingColumns = this.groupingColumns;
for (int j = 0; j < groupingColumns.length; j++) {
sb.append(groupingColumns[j].getSimpleName());
if(j < groupingColumns.length - 1) {
sb.append(",");
}
}
sb.append(")");
planStr.appendTitle(sb.toString());
// there can be no aggregation functions
if (hasAggFunctions()) {
sb = new StringBuilder();
sb.append("(");
for (int j = 0; j < aggrFunctions.length; j++) {
sb.append(aggrFunctions[j]);
if(j < aggrFunctions.length - 1) {
sb.append(",");
}
}
sb.append(")");
planStr.appendExplain("exprs: ").appendExplain(sb.toString());
}
sb = new StringBuilder("target list: ");
for (int i = 0; i < targets.length; i++) {
sb.append(targets[i]);
if( i < targets.length - 1) {
sb.append(", ");
}
}
planStr.addExplan(sb.toString());
planStr.addDetail("out schema:").appendDetail(getOutSchema().toString());
planStr.addDetail("in schema:").appendDetail(getInSchema().toString());
return planStr;
}