private void buildSelectListEvaluators() throws SemanticException, HiveException { resultExprInfo = new ResultExprInfo(); resultExprInfo.resultExprEvals = new ArrayList<ExprNodeEvaluator>(); resultExprInfo.resultExprNames = new ArrayList<String>(); resultExprInfo.resultExprNodes = new ArrayList<ExprNodeDesc>(); // result ArrayList<ObjectInspector> selectListExprOIs = new ArrayList<ObjectInspector>(); int i = 0; for (WindowExpressionSpec expr : selectSpec) { String selectColName = expr.getAlias(); ASTNode selectColumnNode = expr.getExpression(); ExprNodeDesc selectColumnExprNode = ResultExpressionParser.buildExprNode(selectColumnNode, selectListInputTypeCheckCtx); ExprNodeEvaluator selectColumnExprEval = ExprNodeEvaluatorFactory.get(selectColumnExprNode); ObjectInspector selectColumnOI = null; selectColumnOI = selectColumnExprEval.initialize(selectListInputOI); selectColName = getColumnName(selectColName, selectColumnExprNode, i); resultExprInfo.resultExprEvals.add(selectColumnExprEval); selectListExprOIs.add(selectColumnOI); resultExprInfo.resultExprNodes.add(selectColumnExprNode); resultExprInfo.resultExprNames.add(selectColName); i++; } resultExprInfo.resultOI = ObjectInspectorFactory.getStandardStructObjectInspector( resultExprInfo.resultExprNames, selectListExprOIs); }