[ 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)