[ https://issues.apache.org/jira/browse/ORC-346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16444485#comment-16444485 ]
rip.nsk commented on ORC-346: ----------------------------- TEST(Writer, writeTimestamp) failed with the following change: diff --git a/c++/test/TestWriter.cc b/c++/test/TestWriter.cc index c61d184..40d9243 100644 --- a/c++/test/TestWriter.cc +++ b/c++/test/TestWriter.cc @@ -570,7 +570,7 @@ namespace orc { std::vector<std::time_t> times(rowCount); for (uint64_t i = 0; i < rowCount; ++i) { - time_t currTime = std::time(nullptr); + time_t currTime = -14210715; // 1969-07-20 12:34:45 times[i] = static_cast<int64_t>(currTime) - static_cast<int64_t >(i * 60); tsBatch->data[i] = times[i]; tsBatch->nanoseconds[i] = static_cast<int64_t>(i * 1000); > Bug in TimestampColumnReader > ---------------------------- > > Key: ORC-346 > URL: https://issues.apache.org/jira/browse/ORC-346 > Project: ORC > Issue Type: Bug > Components: C++ > Reporter: rip.nsk > Priority: Critical > > void TimestampColumnReader::next(ColumnVectorBatch& rowBatch, uint64_t > numValues, char *notNull) > has the following code: > c++\src\ColumnReader.cc:338 > int64_t writerTime = secsBuffer[i] + epochOffset; > secsBuffer[i] = writerTimezone.convertToUTC(writerTime); > {color:#f79232}if (secsBuffer[i] < 0 && nanoBuffer[i] != 0) {{color} > {color:#f79232} secsBuffer[i] -= 1;{color} > {color:#f79232} }{color} > {color:#333333}which likely leads to read wrong seconds value for PRE_1970 > dates{color} -- This message was sent by Atlassian JIRA (v7.6.3#76005)