[GitHub] orc pull request #220: ORC-306 Correct pre-1970 timestamps that were off by ...

2018-03-02 Thread asfgit
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 ...

2018-02-27 Thread omalley
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 ...

2018-02-27 Thread prasanthj
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 ...

2018-02-27 Thread prasanthj
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 ...

2018-02-26 Thread omalley
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.




---