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

Denys Kuzmenko updated HIVE-27739:
----------------------------------
    Issue Type: Bug  (was: Improvement)

> Multiple issues with timestamps with timezone - can lead to data inconsistency
> ------------------------------------------------------------------------------
>
>                 Key: HIVE-27739
>                 URL: https://issues.apache.org/jira/browse/HIVE-27739
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 4.0.0-beta-1
>            Reporter: Janos Kovacs
>            Assignee: Zoltán Rátkai
>            Priority: Major
>
> The following issues were found testing timestamps with timezonse:
>  * CREATE TABLE fails with SemanticException when hive.local.time.zone is set 
> to different valid value in the session
>  * Invalid timezone values (e.g. with typo) treated as UTC which can lead to 
> data consistency / loss issues
>  * LOCAL is an invalid timezone value and treated as UTC instead of treating 
> as system's timezone
> The issues are tracked as sub-tasks.
> in general, base tests are:
> {noformat}
> SELECT
>   '\${system:user.timezone}' as os,
>   '\${hiveconf:hive.local.time.zone}' as hive,
>   'TZ'  as branch,
>   tz    as orig,
>   to_utc_timestamp(tz,'\${hiveconf:hive.local.time.zone}') as to_utc, 
>   
> from_utc_timestamp(to_utc_timestamp(tz,'\${hiveconf:hive.local.time.zone}'),'Europe/Budapest')
>   as to_bp,
>   
> from_utc_timestamp(to_utc_timestamp(tz,'\${hiveconf:hive.local.time.zone}'),'America/Los_Angeles')
>  as to_la
> FROM timestamptest;
> "
> {noformat}
>  
> The results are:
> {noformat}
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> |        os        |       hive       | branch  |                  orig       
>            |         to_utc         |         to_bp          |         to_la  
>         |
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | Europe/Budapest  | Europe/Budapest  | TZ      | 2016-01-03 21:26:34.0 
> Europe/Budapest  | 2016-01-03 20:26:34.0  | 2016-01-03 21:26:34.0  | 
> 2016-01-03 12:26:34.0  |
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | Europe/Budapest  | UTC              | TZ      | 2016-01-03 20:26:34.0 UTC   
>            | 2016-01-03 20:26:34.0  | 2016-01-03 21:26:34.0  | 2016-01-03 
> 12:26:34.0  |
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | Europe/Budapest  | LOCAL            | TZ      | 2016-01-03 21:26:34.0 
> Europe/Budapest  | 2016-01-03 21:26:34.0  | 2016-01-03 22:26:34.0  | 
> 2016-01-03 13:26:34.0  | !!!
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | UTC              | Europe/Budapest  | TZ      | 2016-01-03 21:26:34.0 
> Europe/Budapest  | 2016-01-03 20:26:34.0  | 2016-01-03 21:26:34.0  | 
> 2016-01-03 12:26:34.0  |
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | UTC              | UTC              | TZ      | 2016-01-03 20:26:34.0 UTC   
>            | 2016-01-03 20:26:34.0  | 2016-01-03 21:26:34.0  | 2016-01-03 
> 12:26:34.0  |
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> | UTC              | LOCAL            | TZ      | 2016-01-03 20:26:34.0 UTC   
>            | 2016-01-03 20:26:34.0  | 2016-01-03 21:26:34.0  | 2016-01-03 
> 12:26:34.0  | !!!
> +------------------+------------------+---------+----------------------------------------+------------------------+------------------------+------------------------+
> {noformat}
> The problematic cases:
>  * the "Europe/Budapest | LOCAL" case is wrong, LOCAL is treated as UTC 
> instead of system's TZ which makes 1h offset when converted
>  * the "UTC | LOCAL" case is only good because LOCAL is treated as UTC all 
> the time
> Repro code and more details are in each of the subtask tickets



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

Reply via email to