[jira] [Updated] (HIVE-4884) ORC TimestampTreeReader.nextVector() off by a second when time in fractional
[ https://issues.apache.org/jira/browse/HIVE-4884?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gopal V updated HIVE-4884: -- Attachment: HIVE-4884-.patch Adjust milliseconds down when encountering a negative second value, with a fractional second stored as a nanosecond. ORC TimestampTreeReader.nextVector() off by a second when time in fractional Key: HIVE-4884 URL: https://issues.apache.org/jira/browse/HIVE-4884 Project: Hive Issue Type: Sub-task Components: File Formats Affects Versions: vectorization-branch Reporter: Gopal V Assignee: Gopal V Fix For: vectorization-branch Attachments: HIVE-4884-.patch When using negative timestamps, the ORC vectorized Timestampreader does the following {code} result.vector[i] = (result.vector[i] * 100) + nanoVector.vector[i]; {code} This suffers from inaccuracies because the nanoseconds are always positive and the result.vector[i] is in effect {code} seconds = (getTime() / 1000) nanos = (getNanos()) // so -42001 ms is written as // seconds = -42 // nanos = 99900 // (-42001 / 1000) * 1000 == -42000 // + 999 ms (from nanos) // which is -42999 ms {code} This needs to be adjusted down if nanos has been zero adjusted, to result in -42001 as the vector[i] value. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HIVE-4884) ORC TimestampTreeReader.nextVector() off by a second when time in fractional
[ https://issues.apache.org/jira/browse/HIVE-4884?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gopal V updated HIVE-4884: -- Release Note: Adjust milliseconds down when encountering a negative second value with a fractional second stored as nanoseconds. Status: Patch Available (was: In Progress) ORC TimestampTreeReader.nextVector() off by a second when time in fractional Key: HIVE-4884 URL: https://issues.apache.org/jira/browse/HIVE-4884 Project: Hive Issue Type: Sub-task Components: File Formats Affects Versions: vectorization-branch Reporter: Gopal V Assignee: Gopal V Fix For: vectorization-branch Attachments: HIVE-4884-.patch When using negative timestamps, the ORC vectorized Timestampreader does the following {code} result.vector[i] = (result.vector[i] * 100) + nanoVector.vector[i]; {code} This suffers from inaccuracies because the nanoseconds are always positive and the result.vector[i] is in effect {code} seconds = (getTime() / 1000) nanos = (getNanos()) // so -42001 ms is written as // seconds = -42 // nanos = 99900 // (-42001 / 1000) * 1000 == -42000 // + 999 ms (from nanos) // which is -42999 ms {code} This needs to be adjusted down if nanos has been zero adjusted, to result in -42001 as the vector[i] value. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira