[ 
https://issues.apache.org/jira/browse/HIVE-22476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Slim Bouguerra updated HIVE-22476:
----------------------------------
    Attachment: HIVE-22476.9.patch

> 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
>            Priority: Major
>         Attachments: HIVE-22476.2.patch, HIVE-22476.3.patch, 
> HIVE-22476.5.patch, HIVE-22476.6.patch, HIVE-22476.7.patch, 
> HIVE-22476.7.patch, HIVE-22476.8.patch, HIVE-22476.8.patch, 
> HIVE-22476.8.patch, HIVE-22476.9.patch
>
>
> 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