[ https://issues.apache.org/jira/browse/HIVE-2956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269818#comment-13269818 ]
Phabricator commented on HIVE-2956: ----------------------------------- kevinwilfong has commented on the revision "HIVE-2956 [jira] [hive] Provide error message when using UDAF in the place of UDF instead of throwing NPE". I'm sorry, you're right, I misread the error message, partly because I misunderstood the problem your patch was trying to solve. I would argue that Hive should support this syntax, if not now, then eventually. It is supported by MySQL for instance. However, until this is supported, a proper error message is preferable to an NPE. The problem appears to be a combination of applying distinct and a UDAF to the same column. It seems to me that a better error message would be something that indicates that. It is not the location of sum(key) that is causing the problem, but the fact that distinct key is also in the select clause. If you could also add a "yet" in there to suggest that this will be supported in the future, that would also be good. REVISION DETAIL https://reviews.facebook.net/D2823 > [hive] Provide error message when using UDAF in the place of UDF instead of > throwing NPE > ---------------------------------------------------------------------------------------- > > Key: HIVE-2956 > URL: https://issues.apache.org/jira/browse/HIVE-2956 > Project: Hive > Issue Type: Improvement > Reporter: Navis > Assignee: Navis > Priority: Trivial > Attachments: HIVE-2956.D2823.1.patch, HIVE-2956.D2823.2.patch > > > For example, > {code} > hive> select distinct deptno, sum(deptno) from emp; > FAILED: Hive Internal Error: java.lang.NullPointerException(null) > java.lang.NullPointerException > at > org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc.newInstance(ExprNodeGenericFuncDesc.java:214) > at > org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:767) > at > org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:888) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:89) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:88) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:125) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:102) > at > org.apache.hadoop.hive.ql.parse.TypeCheckProcFactory.genExprNode(TypeCheckProcFactory.java:165) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:7755) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genExprNodeDesc(SemanticAnalyzer.java:7713) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanMapGroupByOperator(SemanticAnalyzer.java:2793) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genGroupByPlanMapAggr1MR(SemanticAnalyzer.java:3651) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:6125) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6762) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:7531) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:250) > {code} > Trivial.. but people always reports this confused by esoteric custom function > names. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira