[ https://issues.apache.org/jira/browse/HIVE-13951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15316492#comment-15316492 ]
Sergey Zadoroshnyak commented on HIVE-13951: -------------------------------------------- [~xuefuz] [~gopalv] [~hsubramaniyan] Could you please take a look? > GenericUDFArray should constant fold at compile time > ---------------------------------------------------- > > Key: HIVE-13951 > URL: https://issues.apache.org/jira/browse/HIVE-13951 > Project: Hive > Issue Type: Bug > Components: UDF > Affects Versions: 1.3.0, 2.1.0 > Reporter: Sergey Zadoroshnyak > > 1. Hive constant propagation optimizer is enabled. > hive.optimize.constant.propagation=true; > 2. Hive query: > select array('Total','Total') from some_table; > ERROR: org.apache.hadoop.hive.ql.optimizer.ConstantPropagateProcFactory > (ConstantPropagateProcFactory.java:evaluateFunction(939)) - Unable to > evaluate org.apache.hadoop.hive.ql.udf.generic.GenericUDFArray@3d26c423. > Return value unrecoginizable. > Details: > During compilation of query, hive checks if any subexpression of a specified > expression can be evaluated to be constant and replaces such subexpression > with the constant. > If the expression is a deterministic UDF and all the subexpressions are > constants, the value will be calculated immediately during compilation time > (not runtime) > So array is a deterministic UDF, 'Total' is string constant. So Hive tries > to replace result of evaluation UDF with the constant. > But looks like, that Hive only supports primitives and struct objects. > So, array is not supported yet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)