You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2015/05/30 00:55:02 UTC

hive git commit: HIVE-10871 : LLAP: bug in split processing in IO elevator causes duplicate rows (Sergey Shelukhin)

Repository: hive
Updated Branches:
  refs/heads/llap fcc0c4d90 -> be0c51685


HIVE-10871 : LLAP: bug in split processing in IO elevator causes duplicate rows (Sergey Shelukhin)


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

Branch: refs/heads/llap
Commit: be0c516856bf4d4241cb97039499116b0a2cfa11
Parents: fcc0c4d
Author: Sergey Shelukhin <se...@apache.org>
Authored: Fri May 29 15:16:56 2015 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Fri May 29 15:16:56 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java    | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/be0c5168/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
index d76316a..6d2a38e 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
@@ -655,7 +655,11 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
     int stripeIx = 0;
     for (StripeInformation stripe : stripes) {
       long stripeStart = stripe.getOffset();
-      if (offset > stripeStart) continue;
+      if (offset > stripeStart) {
+        // We assume splits will never start in the middle of the stripe.
+        ++stripeIx;
+        continue;
+      }
       if (stripeIxFrom == -1) {
         if (DebugUtils.isTraceOrcEnabled()) {
           LlapIoImpl.LOG.info("Including stripes from " + stripeIx
@@ -664,11 +668,11 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
         stripeIxFrom = stripeIx;
       }
       if (stripeStart >= maxOffset) {
+        stripeIxTo = stripeIx;
         if (DebugUtils.isTraceOrcEnabled()) {
           LlapIoImpl.LOG.info("Including stripes until " + stripeIxTo + " (" + stripeStart
               + " >= " + maxOffset + "); " + (stripeIxTo - stripeIxFrom) + " stripes");
         }
-        stripeIxTo = stripeIx;
         break;
       }
       ++stripeIx;