Repository: hive
Updated Branches:
  refs/heads/master ba0217ff1 -> 6d890faf2


HIVE-18488 : LLAP ORC readers are missing some null checks (Sergey Shelukhin, 
reviewed by Prasanth Jayachandran)


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

Branch: refs/heads/master
Commit: 6d890faf22fd1ede3658a5eed097476eab3c67e9
Parents: ba0217f
Author: sergey <ser...@apache.org>
Authored: Fri Jan 19 13:56:01 2018 -0800
Committer: sergey <ser...@apache.org>
Committed: Fri Jan 19 13:56:01 2018 -0800

----------------------------------------------------------------------
 .../hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java       | 2 ++
 .../hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java  | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6d890faf/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 16f3fdb..9d33656 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
@@ -233,6 +233,7 @@ public class OrcEncodedDataConsumer
     PositionProvider[] pps = createPositionProviders(columnReaders, batchKey, 
stripeMetadata);
     if (pps == null) return;
     for (int i = 0; i < columnReaders.length; i++) {
+      if (columnReaders[i] == null) continue;
       // TODO: we could/should trace seek destinations; pps needs a "peek" 
method
       columnReaders[i].seek(pps);
     }
@@ -246,6 +247,7 @@ public class OrcEncodedDataConsumer
     if (pps == null) return;
     for (int i = 0; i < columnReaders.length; i++) {
       TreeReader reader = columnReaders[i];
+      if (reader == null) continue;
       // Note: we assume this never happens for SerDe reader - the batch would 
never have vectors.
       // That is always true now; but it wasn't some day, the below would 
throw in getColumnData.
       ((SettableTreeReader) reader).setBuffers(batch, sameStripe);

http://git-wip-us.apache.org/repos/asf/hive/blob/6d890faf/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java
index a3a8f1a..1e7708e 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedTreeReaderFactory.java
@@ -2740,7 +2740,9 @@ public class EncodedTreeReaderFactory extends 
TreeReaderFactory {
       }
       if (fields != null) {
         for (TreeReader child : fields) {
-          ((SettableTreeReader) child).setBuffers(batch, sameStripe);
+          if (child != null) {
+            ((SettableTreeReader) child).setBuffers(batch, sameStripe);
+          }
         }
       }
     }

Reply via email to