List<String> outputColumnNames = new ArrayList<String>();
StringBuilder orderString = new StringBuilder();
ArrayList<PartitionExpression> partColList = spec.getQueryPartitionSpec().getExpressions();
for (PartitionExpression partCol : partColList) {
ExprNodeDesc partExpr = genExprNodeDesc(partCol.getExpression(), inputRR);
partCols.add(partExpr);
orderCols.add(partExpr);
orderString.append('+');
}
ArrayList<OrderExpression> orderColList = spec.getQueryOrderSpec() == null ?
new ArrayList<PTFInvocationSpec.OrderExpression>() :
spec.getQueryOrderSpec().getExpressions();
for (int i = 0; i < orderColList.size(); i++) {
OrderExpression orderCol = orderColList.get(i);
org.apache.hadoop.hive.ql.parse.PTFInvocationSpec.Order order = orderCol.getOrder();
if (order.name().equals("ASC")) {
orderString.append('+');
} else {
orderString.append('-');
}
ExprNodeDesc orderExpr = genExprNodeDesc(orderCol.getExpression(), inputRR);
orderCols.add(orderExpr);
}
ArrayList<ColumnInfo> colInfoList = inputRR.getColumnInfos();
RowResolver rsNewRR = new RowResolver();
int pos = 0;
for (ColumnInfo colInfo : colInfoList) {
ExprNodeDesc valueColExpr = new ExprNodeColumnDesc(colInfo.getType(), colInfo
.getInternalName(), colInfo.getTabAlias(), colInfo
.getIsVirtualCol());
valueCols.add(valueColExpr);
colExprMap.put(colInfo.getInternalName(), valueColExpr);
String outColName = SemanticAnalyzer.getColumnInternalName(pos++);