You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Carter Shanklin (JIRA)" <ji...@apache.org> on 2016/01/11 18:09:39 UTC

[jira] [Created] (HIVE-12835) BC dates not properly documented / handled

Carter Shanklin created HIVE-12835:
--------------------------------------

             Summary: BC dates not properly documented / handled
                 Key: HIVE-12835
                 URL: https://issues.apache.org/jira/browse/HIVE-12835
             Project: Hive
          Issue Type: Bug
            Reporter: Carter Shanklin
            Priority: Minor


Minor issue IMO, but since I saw it I'm filing it to document it.

There's something screwy with date types. Documentation says they run from year 0 to year 9999 ("depending on Java support"). Tests I have done are consistent with supporting BC dates, but not identifying the dates as BC dates. Also there is some incorrect boundary handling. This is Hive 1.2.1 and Java 1.7.0_91.

To reproduce, create some table with 1 record and run these.

{code}
hive> select cast('2000-01-01' as date) - interval '2000' year from date_test;
OK
0001-01-01
{code}

So far so good

{code}
Time taken: 0.067 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '2100' year from date_test;
OK
0101-01-01
Time taken: 0.055 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '2200' year from date_test;
OK
0201-01-01
Time taken: 0.153 seconds, Fetched: 1 row(s)
{code}

Consistent with BC dates, but not identified as such.

{code}
hive> select cast('2000-01-01' as date) - interval '9999' year from date_test;
OK
8000-01-01
Time taken: 0.062 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '10000' year from date_test;
OK
8001-01-01
Time taken: 0.056 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '12000' year from date_test;
OK
001-01-01
Time taken: 0.054 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '14000' year from date_test;
OK
001-01-01
Time taken: 0.057 seconds, Fetched: 1 row(s)
hive> select cast('2000-01-01' as date) - interval '50000' year from date_test;
OK
001-01-01
Time taken: 0.06 seconds, Fetched: 1 row(s)
{code}

Everything from here out collapses down to 001-01-01.



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