Rahul created HIVE-12729:
----------------------------

             Summary: In Hive 1.2 - current_date() comparison results in Error 
Unsupported conversion from type: interval_day_time 
                 Key: HIVE-12729
                 URL: https://issues.apache.org/jira/browse/HIVE-12729
             Project: Hive
          Issue Type: Bug
          Components: Hive
    Affects Versions: 1.2.0
            Reporter: Rahul


I am using current_date() in my query where clause along with table column of 
type date for comparison using artihmatic operator "-" (minus) and "<" / ">" 
operators - for example:

SELECT DISTINCT customerid FROM Customer_date WHERE 
   ((Customer_date.my_date_mmdyyyy - CURRENT_DATE()) >= 7) 

It results in error as:
====================================================
ERROR : Vertex failed, vertexName=Map 1, 
vertexId=vertex_1449057948397_0330_1_00, diagnostics=[Task failed, 
taskId=task_1449057948397_0330_1_00_000000, diagnostics=[TaskAttempt 0 failed, 
info=[Error: Failure while running task:java.lang.RuntimeException: 
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: 
Hive Runtime Error while processing row 
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
 00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
        at 
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:171)
        at 
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:137)
        at 
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:344)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:179)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:171)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:171)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:167)
        at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: 
org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while 
processing row 
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
 00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
        at 
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:91)
        at 
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:68)
        at 
org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:310)
        at 
org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:148)
        ... 14 more
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error 
while processing row 
{"customerid":1,"my_date_mmdyyyy":"1982-01-01","my_date_ddmmyy":"1982-01-01","my_date_ddmmyyyy":"1982-01-01","my_date_mdyyyy":"1982-01-01","my_date_mdyyyyhh":"1982-01-01
 00:00:00","my_date_mdyyyyhh24":"1982-01-01 00:00:00"}
        at 
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:545)
        at 
org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:83)
        ... 17 more
Caused by: java.lang.RuntimeException: Hive 2 Internal error: unsupported 
conversion from type: interval_day_time
        at 
org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.getDouble(PrimitiveObjectInspectorUtils.java:779)
        at 
org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter$DoubleConverter.convert(PrimitiveObjectInspectorConverter.java:240)



=====================================================


As a alternative I can use query as:
   SELECT DISTINCT customerid FROM Customer_date WHERE 
   (current_date() - my_date_mmdyyyy ) = interval '0 0:0:0' day to second

I cant use this query all the time with interval type attached for the 
comparison. Is there any way original query can be fixed to serve the results 
without specifying Interval:

Original query:
SELECT DISTINCT customerid FROM Customer_date WHERE 
   ((Customer_date.my_date_mmdyyyy - CURRENT_DATE()) >= 7) 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to