HIVE-17702 : incorrect isRepeating handling in decimal reader in ORC (Sergey 
Shelukhin, reviewed by Gopal Vijayaraghavan)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/6ef65f49
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/6ef65f49
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/6ef65f49

Branch: refs/heads/hive-14535
Commit: 6ef65f49d151d3c7e672e69fcb832fe4d87295ca
Parents: 8c50fd7
Author: sergey <[email protected]>
Authored: Mon Oct 9 12:51:33 2017 -0700
Committer: sergey <[email protected]>
Committed: Mon Oct 9 12:51:33 2017 -0700

----------------------------------------------------------------------
 .../hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java    | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6ef65f49/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
----------------------------------------------------------------------
diff --git 
a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
 
b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
index d048a57..a77ccc1 100644
--- 
a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
+++ 
b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
@@ -157,8 +157,11 @@ public class OrcEncodedDataConsumer
             cvb.cols[idx] = 
createColumn(schema.getChildren().get(columnMapping[idx]), batchSize);
           }
           trace.logTreeReaderNextVector(idx);
-          cvb.cols[idx].ensureSize(batchSize, false);
-          reader.nextVector(cvb.cols[idx], null, batchSize);
+          ColumnVector cv = cvb.cols[idx];
+          cv.noNulls = true;
+          cv.reset(); // Reset to work around some poor assumptions in ORC.
+          cv.ensureSize(batchSize, false);
+          reader.nextVector(cv, null, batchSize);
         }
 
         // we are done reading a batch, send it to consumer for processing

Reply via email to