Gopal V created HIVE-4884:
-----------------------------
Summary: 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
When using negative timestamps, the ORC vectorized Timestampreader does the
following
{code}
result.vector[i] = (result.vector[i] * 1000000) + 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 = 999000000
// (-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