[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...
Github user asfgit closed the pull request at: https://github.com/apache/orc/pull/220 ---
[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...
Github user omalley commented on a diff in the pull request: https://github.com/apache/orc/pull/220#discussion_r171132343 --- Diff: java/core/src/java/org/apache/orc/impl/TreeReaderFactory.java --- @@ -49,6 +50,15 @@ * Factory for creating ORC tree readers. */ public class TreeReaderFactory { + // The current JDK has a bug where values of the form: + // -MM-DD HH:MM:SS.000X is off by a second for dates before 1970. + public static final boolean TIMESTAMP_BUG; + static { +Timestamp ts1 = Timestamp.valueOf("1969-12-25 12:34:56.0001"); +Timestamp ts2 = Timestamp.valueOf("1969-12-25 12:34:56.0011"); +// Compare the seconds, which should be the same. +TIMESTAMP_BUG = ts1.getTime()/1000 != ts2.getTime()/1000; --- End diff -- getTime() returns the milliseconds after 1970-01-01 00:00:00. So getTime()/1000 should return the seconds, which should be the same. ---
[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...
Github user prasanthj commented on a diff in the pull request: https://github.com/apache/orc/pull/220#discussion_r171117980 --- Diff: java/core/src/java/org/apache/orc/impl/TreeReaderFactory.java --- @@ -49,6 +50,15 @@ * Factory for creating ORC tree readers. */ public class TreeReaderFactory { + // The current JDK has a bug where values of the form: + // -MM-DD HH:MM:SS.000X is off by a second for dates before 1970. + public static final boolean TIMESTAMP_BUG; + static { +Timestamp ts1 = Timestamp.valueOf("1969-12-25 12:34:56.0001"); +Timestamp ts2 = Timestamp.valueOf("1969-12-25 12:34:56.0011"); +// Compare the seconds, which should be the same. +TIMESTAMP_BUG = ts1.getTime()/1000 != ts2.getTime()/1000; --- End diff -- I think in this case getSeconds() would return the same but millis would have changed as ts2 added a whole new millisecond to the time. isn't it? ---
[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...
Github user prasanthj commented on a diff in the pull request: https://github.com/apache/orc/pull/220#discussion_r171072157 --- Diff: java/core/src/java/org/apache/orc/impl/TreeReaderFactory.java --- @@ -49,6 +50,15 @@ * Factory for creating ORC tree readers. */ public class TreeReaderFactory { + // The current JDK has a bug where values of the form: + // -MM-DD HH:MM:SS.000X is off by a second for dates before 1970. --- End diff -- Can you please link the BUG # for future reference (can be done on commit)? Also can we run the tests against JDK version with the bug on travis CI to trigger TIMSTAMP_BUG == true code path? The logic for adjusting millis look good to me. ---
[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...
GitHub user omalley opened a pull request: https://github.com/apache/orc/pull/220 ORC-306 Correct pre-1970 timestamps that were off by one second. You can merge this pull request into a Git repository by running: $ git pull https://github.com/omalley/orc orc-306 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/orc/pull/220.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #220 commit 1f38e1d58fe012dcf850ff1c0ba5d887ca0e21e4 Author: Owen O'Malley Date: 2018-02-26T23:27:52Z ORC-306 Correct pre-1970 timestamps that were off by one second. ---