Soumyakanti Das created HIVE-27949:
--------------------------------------

             Summary: GenericUDFAddMonths doesn't accept DECIMAL with scale 
zero for num_months
                 Key: HIVE-27949
                 URL: https://issues.apache.org/jira/browse/HIVE-27949
             Project: Hive
          Issue Type: Improvement
          Components: Hive, UDF
    Affects Versions: 4.0.0-beta-1
            Reporter: Soumyakanti Das
            Assignee: Soumyakanti Das


Currently the second argument of add_months UDF only accepts SHORT/BYTE/INT 
types. If we pass a value of type DECIMAL(X, 0), for example, 1.0, it fails 
with:
{code:java}
Caused by: org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException: add_months 
only takes INT/SHORT/BYTE types as 2nd argument, got DECIMAL
    at 
org.apache.hadoop.hive.ql.udf.generic.GenericUDF.obtainIntConverter(GenericUDF.java:361)
    at 
org.apache.hadoop.hive.ql.udf.generic.GenericUDFAddMonths.initialize(GenericUDFAddMonths.java:107)
    at 
org.apache.hadoop.hive.ql.udf.generic.GenericUDF.initializeAndFoldConstants(GenericUDF.java:150)
    at 
org.apache.hadoop.hive.ql.parse.type.HiveFunctionHelper.getReturnType(HiveFunctionHelper.java:138)
    at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:643)
    at 
org.apache.hadoop.hive.ql.parse.type.RexNodeExprFactory.createFuncCallExpr(RexNodeExprFactory.java:97)
    at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.getXpathOrFuncExprNodeDesc(TypeCheckProcFactory.java:1081)
    at 
org.apache.hadoop.hive.ql.parse.type.TypeCheckProcFactory$DefaultExprProcessor.process(TypeCheckProcFactory.java:1471)
    ... 80 more {code}
 

Ideally all of the following queries should work:
{code:java}
select add_months('2016-01-29 10:30:00', 1);
select add_months('2016-01-29 10:30:00', cast(1 as decimal(5, 0)));
select add_months('2016-01-29 10:30:00', 1.0); {code}
while currently only the first one works.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to