You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Sergey Zadoroshnyak (JIRA)" <ji...@apache.org> on 2016/06/06 13:35:21 UTC
[jira] [Commented] (HIVE-13951) GenericUDFArray should constant
fold at compile time
[ 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)