[jira] [Commented] (ORC-346) Bug in TimestampColumnReader (or Writer)

2018-04-23 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/ORC-346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16448617#comment-16448617
 ] 

ASF GitHub Bot commented on ORC-346:


Github user rip-nsk commented on the issue:

https://github.com/apache/orc/pull/253
  
I'm not sure that it is correct fix, IMO, TimestampColumnReader should not 
do this:
if (secsBuffer[i] < 0 && nanoBuffer[i] != 0) {
  secsBuffer[i] -= 1;
}
but it seems necessary to match the java reader.


> Bug in TimestampColumnReader (or Writer)
> 
>
> Key: ORC-346
> URL: https://issues.apache.org/jira/browse/ORC-346
> Project: ORC
>  Issue Type: Bug
>  Components: C++
>Reporter: rip.nsk
>Priority: Blocker
>
> 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:#33}which likely leads to read wrong seconds value for PRE_1970 
> dates{color}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (ORC-346) Bug in TimestampColumnReader (or Writer)

2018-04-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/ORC-346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16444664#comment-16444664
 ] 

ASF GitHub Bot commented on ORC-346:


GitHub user rip-nsk opened a pull request:

https://github.com/apache/orc/pull/253

ORC-346: [C++] Add one second when writing negative Timestamp's with non 
zero nanos …

…to match the reader code.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/rip-nsk/orc ORC-346

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/orc/pull/253.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 #253


commit 0507d1f970c613fd7b12ee814fb9e040bfa30d24
Author: rip-nsk 
Date:   2018-04-19T19:22:09Z

Add one second when writing negative Timestamp's with non zero nanos to 
match the reader code.




> Bug in TimestampColumnReader (or Writer)
> 
>
> 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:#33}which likely leads to read wrong seconds value for PRE_1970 
> dates{color}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (ORC-346) Bug in TimestampColumnReader

2018-04-19 Thread rip.nsk (JIRA)

[ 
https://issues.apache.org/jira/browse/ORC-346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1685#comment-1685
 ] 

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 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(currTime) - static_cast(i * 60);
 tsBatch->data[i] = times[i];
 tsBatch->nanoseconds[i] = static_cast(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:#33}which likely leads to read wrong seconds value for PRE_1970 
> dates{color}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)