hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Szita (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-12192) Hive should carry out timestamp computations in UTC
Date Mon, 25 Jun 2018 10:03:00 GMT

    [ https://issues.apache.org/jira/browse/HIVE-12192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16522103#comment-16522103
] 

Adam Szita commented on HIVE-12192:
-----------------------------------

Looks like there was a rename in the patch file:

{{diff --git a/serde/src/test/org/apache/hadoop/hive/serde2/io/TestDateWritable.java b/serde/src/test/org/apache/hadoop/hive/serde2/io/TestDateWritableV2.java}}

which is absent in your commit [https://github.com/apache/hive/commit/b8fda81c44dd5950c09f277672691025af2369b0,] although
the class name change inside the file is present in the commit hence the build error:
{code:java}
[ERROR] /data/hiveptest/working/apache-github-source-source/serde/src/test/org/apache/hadoop/hive/serde2/io/TestTimestampWritable.java:[46,8]
class TestTimestampWritableV2 is public, should be declared in a file named TestTimestampWritableV2.java
[ERROR] /data/hiveptest/working/apache-github-source-source/serde/src/test/org/apache/hadoop/hive/serde2/io/TestDateWritable.java:[48,8]
class TestDateWritableV2 is public, should be declared in a file named TestDateWritableV2.java{code}

> Hive should carry out timestamp computations in UTC
> ---------------------------------------------------
>
>                 Key: HIVE-12192
>                 URL: https://issues.apache.org/jira/browse/HIVE-12192
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Hive
>            Reporter: Ryan Blue
>            Assignee: Jesus Camacho Rodriguez
>            Priority: Blocker
>              Labels: timestamp
>             Fix For: 3.1.0
>
>         Attachments: HIVE-12192.01.patch, HIVE-12192.02.patch, HIVE-12192.03.patch, HIVE-12192.04.patch,
HIVE-12192.05.patch, HIVE-12192.06.patch, HIVE-12192.07.patch, HIVE-12192.08.patch, HIVE-12192.09.patch,
HIVE-12192.10.patch, HIVE-12192.11.patch, HIVE-12192.12.patch, HIVE-12192.13.patch, HIVE-12192.14.patch,
HIVE-12192.15.patch, HIVE-12192.16.patch, HIVE-12192.17.patch, HIVE-12192.18.patch, HIVE-12192.19.patch,
HIVE-12192.20.patch, HIVE-12192.21.patch, HIVE-12192.22.patch, HIVE-12192.23.patch, HIVE-12192.24.patch,
HIVE-12192.25.patch, HIVE-12192.patch
>
>
> Hive currently uses the "local" time of a java.sql.Timestamp to represent the SQL data
type TIMESTAMP WITHOUT TIME ZONE. The purpose is to be able to use {{Timestamp#getYear()}}
and similar methods to implement SQL functions like {{year}}.
> When the SQL session's time zone is a DST zone, such as America/Los_Angeles that alternates
between PST and PDT, there are times that cannot be represented because the effective zone
skips them.
> {code}
> hive> select TIMESTAMP '2015-03-08 02:10:00.101';
> 2015-03-08 03:10:00.101
> {code}
> Using UTC instead of the SQL session time zone as the underlying zone for a java.sql.Timestamp
avoids this bug, while still returning correct values for {{getYear}} etc. Using UTC as the
convenience representation (timestamp without time zone has no real zone) would make timestamp
calculations more consistent and avoid similar problems in the future.
> Notably, this would break the {{unix_timestamp}} UDF that specifies the result is with
respect to ["the default timezone and default locale"|https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions].
That function would need to be updated to use the {{System.getProperty("user.timezone")}}
zone.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message