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

Jonas Shaw updated HIVE-26465:
------------------------------
    Description: 
In direct query and write data into table situation, datediff get diffrent 
result. The write into table situation get wrong result. when set 
hive.vectorized.execution.enabled to flase,we can get all result right.

Here is steps:

> select version();

{+}-------------------------------------------------{-}{-}{+}-+
|                      _c0                        |
|3.1.2 rc073e71ef43699b7aa68cad7c69a2e8f487089fd  |

{+}--------------------------------------------------{+}–+

 

> set hive.vectorized.execution.enabled;

{+}----------------------------------------{-}{-}{+}-+
|                  set                  |
|hive.vectorized.execution.enabled=true  |

{+}-----------------------------------------{+}–+

 

> create table if not exists bi_tmp.test_datediff
as
SELECT
'2017-07-31 23:54:20.06' as verify_time;

 

>SELECT 
    verify_time, 
    datediff(cast('2022-08-10' as date), verify_time)
from bi_tmp.test_datediff;

{+}------------------------{-}{-}{+}-----{-}++{-}-
|      verify_time      | _c1  |
|2017-07-31 23:54:20.06  |1836  |

{+}------------------------{-}{-}{+}------{+}–{+}

 

>create table if not exists bi_tmp.test_datediff_res
as
SELECT 
    verify_time, 
    datediff(cast('2022-08-10' as date), verify_time)
from bi_tmp.test_datediff;

 

>select * from bi_tmp.test_datediff_res;

{+}-------------------------------{-}{-}{+}----------------------{-}++{-}-
|test_datediff_res.verify_time  |test_datediff_res._c1  |
|2017-07-31 23:54:20.06        |1837                  |

{+}-------------------------------{-}{-}{+}----------------------{-}++{-}-

 

 

  was:
In direct query and write data into table situation, datediff get diffrent 
result. The write into table situation get wrong result. when set 
hive.vectorized.execution.enabled to flase,we can get all result right.

Here is steps:

> select version();

+--------------------------------------------------+--+
|                       _c0                        |
+--------------------------------------------------+--+
| 3.1.2 rc073e71ef43699b7aa68cad7c69a2e8f487089fd  |
+--------------------------------------------------+–+

> set hive.vectorized.execution.enabled;

+-----------------------------------------+--+
|                   set                   |
+-----------------------------------------+--+
| hive.vectorized.execution.enabled=true  |
+-----------------------------------------+–+

 

> create table if not exists bi_tmp.test_datediff
as
SELECT
'2017-07-31 23:54:20.06' as verify_time;

 

>SELECT 
    verify_time, 
    datediff(cast('2022-08-10' as date), verify_time)
from bi_tmp.test_datediff;

+-------------------------+-------+--+
|       verify_time       |  _c1  |
+-------------------------+-------+--+
| 2017-07-31 23:54:20.06  | 1836  |
+-------------------------+-------+–+

 

>create table if not exists bi_tmp.test_datediff_res
as
SELECT 
    verify_time, 
    datediff(cast('2022-08-10' as date), verify_time)
from bi_tmp.test_datediff;

 

>select * from bi_tmp.test_datediff_res;

+--------------------------------+------------------------+--+
| test_datediff_res.verify_time  | test_datediff_res._c1  |
+--------------------------------+------------------------+--+
| 2017-07-31 23:54:20.06         | 1837                   |
+--------------------------------+------------------------+--+

 

 


> datediff wrong result cause by vectorized execution
> ---------------------------------------------------
>
>                 Key: HIVE-26465
>                 URL: https://issues.apache.org/jira/browse/HIVE-26465
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>    Affects Versions: 3.1.2
>            Reporter: Jonas Shaw
>            Priority: Critical
>
> In direct query and write data into table situation, datediff get diffrent 
> result. The write into table situation get wrong result. when set 
> hive.vectorized.execution.enabled to flase,we can get all result right.
> Here is steps:
> > select version();
> {+}-------------------------------------------------{-}{-}{+}-+
> |                      _c0                        |
> |3.1.2 rc073e71ef43699b7aa68cad7c69a2e8f487089fd  |
> {+}--------------------------------------------------{+}–+
>  
> > set hive.vectorized.execution.enabled;
> {+}----------------------------------------{-}{-}{+}-+
> |                  set                  |
> |hive.vectorized.execution.enabled=true  |
> {+}-----------------------------------------{+}–+
>  
> > create table if not exists bi_tmp.test_datediff
> as
> SELECT
> '2017-07-31 23:54:20.06' as verify_time;
>  
> >SELECT 
>     verify_time, 
>     datediff(cast('2022-08-10' as date), verify_time)
> from bi_tmp.test_datediff;
> {+}------------------------{-}{-}{+}-----{-}++{-}-
> |      verify_time      | _c1  |
> |2017-07-31 23:54:20.06  |1836  |
> {+}------------------------{-}{-}{+}------{+}–{+}
>  
> >create table if not exists bi_tmp.test_datediff_res
> as
> SELECT 
>     verify_time, 
>     datediff(cast('2022-08-10' as date), verify_time)
> from bi_tmp.test_datediff;
>  
> >select * from bi_tmp.test_datediff_res;
> {+}-------------------------------{-}{-}{+}----------------------{-}++{-}-
> |test_datediff_res.verify_time  |test_datediff_res._c1  |
> |2017-07-31 23:54:20.06        |1837                  |
> {+}-------------------------------{-}{-}{+}----------------------{-}++{-}-
>  
>  



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

Reply via email to