Slim Bouguerra created HIVE-22476:
-------------------------------------

             Summary: Hive datediff function provided inconsistent results when 
hive.fetch.task.conversion is set to none
                 Key: HIVE-22476
                 URL: https://issues.apache.org/jira/browse/HIVE-22476
             Project: Hive
          Issue Type: Bug
            Reporter: Slim Bouguerra
            Assignee: Slim Bouguerra


The actual issue stems to the different date parser used by various part of the 
engine.
Fetch task uses udfdatediff via {code} 
org.apache.hadoop.hive.ql.udf.generic.GenericUDFToDate{code} while the 
vectorized llap execution uses {code}VectorUDFDateDiffScalarCol{code}.

This fix is meant to be not very intrusive and will add more support to the 
GenericUDFToDate by enhancing the parser.
For the longer term will be better to use one parser for all the operators.

Thanks [~Rajkumar Singh] for the repro example
{code} 
create external table testdatediff(datetimecol string) stored as orc;
insert into testdatediff values ('2019-09-09T10:45:49+02:00'),('2019-07-24');
select datetimecol from testdatediff where datediff(cast(current_timestamp as 
string), datetimecol)<183;

set hive.ferch.task.conversion=none;
select datetimecol from testdatediff where datediff(cast(current_timestamp as 
string), datetimecol)<183;
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to