hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Dere (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-9792) Support interval type in expressions/predicates
Date Thu, 26 Feb 2015 02:16:04 GMT

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

Jason Dere updated HIVE-9792:
-----------------------------
    Attachment: HIVE-9792.1.patch

Attaching initial patch.

This adds 2 separate interval types:
- year-month interval, which represents a date difference in years and months. Internally
represented as an offset of months.
- day-time interval, which represents a date difference in days/hours/minutes/seconds/nanoseconds.
1 day = 24 hours = 1440 minutes = 86400 seconds. Internally represented as an offset of seconds
(long) and nanoseconds (int).

I've tried using the Oracle's [Datetime and Interval Arithmetic|http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006312]
rules with regard to timestamp arithmetic, where the timestamp arithmetic is done in UTC time.
 This results in similar behavior to below depending on the default time zone in Hive:
{noformat}
SQL> select timestamp '1999-09-15 00:00:00 America/Los_Angeles' - timestamp '1999-12-15
00:00:00 America/Los_Angeles' from dual;

TIMESTAMP'1999-09-1500:00:00AMERICA/LOS_ANGELES'-TIMESTAMP'1999-12-1500:00:
---------------------------------------------------------------------------
-000000091 01:00:00.000000000

SQL> select timestamp '1999-09-15 00:00:00 UTC' - timestamp '1999-12-15 00:00:00 UTC' from
dual;

TIMESTAMP'1999-09-1500:00:00UTC'-TIMESTAMP'1999-12-1500:00:00UTC'
---------------------------------------------------------------------------
-000000091 00:00:00.000000000
{noformat}

Unlike Oracle, however, date '2001-01-31' + interval '1' month returns date '2001-02-28',
whereas this causes an error in Oracle.


> Support interval type in expressions/predicates 
> ------------------------------------------------
>
>                 Key: HIVE-9792
>                 URL: https://issues.apache.org/jira/browse/HIVE-9792
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Types
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>         Attachments: HIVE-9792.1.patch
>
>
> Provide partial support for the interval year-month/interval day-time types in Hive.
Intervals will be usable in expressions/predicates/joins:
> {noformat}
>   select birthdate + interval '30-0' year to month as thirtieth_birthday
>   from table
>   where (current_timestamp - ts1 < interval '3 0:0:0' day to second)
> {noformat}
> This stops short of adding making the interval types usable as a storable column type.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message