|
|
-
aggName in SemanticAnalyzer.getGenericUDAFEvaluatorYin Huai 2012-09-14, 21:06
Hello All,
The method of org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getGenericUDAFEvaluator(String, ArrayList<ExprNodeDesc>, ASTNode, boolean, boolean) is called from three methods, which are 1) org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanGroupByOperator(QBParseInfo, String, Operator, Mode, Map<String, GenericUDAFEvaluator>); 2) org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanGroupByOperator1(QBParseInfo, String, Operator, Mode, Map<String, GenericUDAFEvaluator>, boolean) ; and 3) org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanMapGroupByOperator(QB, String, Operator, Mode, Map<String, GenericUDAFEvaluator>). However, in these three methods, aggName is generated in a in consistent way. In first two methods, aggName is generated from String aggName value.getChild(0).getText();, but in the third method, it is generated from String aggName = unescapeIdentifier(value.getChild(0).getText());. If you use test query create_view.q in TestCliDriver and set hive.map.aggr=false;, this test will fail. Seems a bug for me. If you guys think it is a bug, I can create a issue and submit a patch to fix that. Thanks, Yin |