You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by la...@apache.org on 2019/05/28 18:13:14 UTC

[phoenix] branch 4.x-HBase-1.5 updated: PHOENIX-5304 LocalIndexSplitMergeIT fails with HBase 1.5.x.

This is an automated email from the ASF dual-hosted git repository.

larsh pushed a commit to branch 4.x-HBase-1.5
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/4.x-HBase-1.5 by this push:
     new 892fa91  PHOENIX-5304 LocalIndexSplitMergeIT fails with HBase 1.5.x.
892fa91 is described below

commit 892fa9117205ddf9584704c0833c936a08295158
Author: Lars Hofhansl <la...@apache.org>
AuthorDate: Tue May 28 11:13:00 2019 -0700

    PHOENIX-5304 LocalIndexSplitMergeIT fails with HBase 1.5.x.
---
 .../hbase/regionserver/LocalIndexStoreFileScanner.java  | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexStoreFileScanner.java b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexStoreFileScanner.java
index 19c868d..df279d7 100644
--- a/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexStoreFileScanner.java
+++ b/phoenix-core/src/main/java/org/apache/hadoop/hbase/regionserver/LocalIndexStoreFileScanner.java
@@ -125,7 +125,7 @@ public class LocalIndexStoreFileScanner extends StoreFileScanner{
             if (getComparator().compare(kv.getBuffer(), kv.getKeyOffset(), kv.getKeyLength(), fk, 0, fk.length) <= 0) {
                 return super.seekToPreviousRow(key);
             }
-            KeyValue replacedKey = getKeyPresentInHFiles(kv.getBuffer());
+            KeyValue replacedKey = getKeyPresentInHFiles(kv);
             boolean seekToPreviousRow = super.seekToPreviousRow(replacedKey);
             while(super.peek()!=null && !isSatisfiedMidKeyCondition(super.peek())) {
                 seekToPreviousRow = super.seekToPreviousRow(super.peek());
@@ -194,22 +194,21 @@ public class LocalIndexStoreFileScanner extends StoreFileScanner{
      * @param key
      *
      */
-    private KeyValue getKeyPresentInHFiles(byte[] key) {
-        KeyValue keyValue = new KeyValue(key);
+    private KeyValue getKeyPresentInHFiles(Cell keyValue) {
         int rowLength = keyValue.getRowLength();
         int rowOffset = keyValue.getRowOffset();
 
         short length = (short) (rowLength - reader.getSplitRow().length + reader.getOffset());
         byte[] replacedKey =
-                new byte[length + key.length - (rowOffset + rowLength) + ROW_LENGTH_SIZE];
+                new byte[length + keyValue.getRowArray().length - (rowOffset + rowLength) + ROW_LENGTH_SIZE];
         System.arraycopy(Bytes.toBytes(length), 0, replacedKey, 0, ROW_LENGTH_SIZE);
         System.arraycopy(reader.getRegionStartKeyInHFile(), 0, replacedKey, ROW_LENGTH_SIZE, reader.getOffset());
         System.arraycopy(keyValue.getRowArray(), keyValue.getRowOffset() + reader.getSplitRow().length,
             replacedKey, reader.getOffset() + ROW_LENGTH_SIZE, rowLength
                     - reader.getSplitRow().length);
-        System.arraycopy(key, rowOffset + rowLength, replacedKey,
-            reader.getOffset() + keyValue.getRowLength() - reader.getSplitRow().length
-                    + ROW_LENGTH_SIZE, key.length - (rowOffset + rowLength));
+        System.arraycopy(keyValue.getRowArray(), rowOffset + rowLength, replacedKey,
+            reader.getOffset() + rowLength - reader.getSplitRow().length
+                    + ROW_LENGTH_SIZE, keyValue.getRowArray().length - (rowOffset + rowLength));
         return new KeyValue.KeyOnlyKeyValue(replacedKey);
     }
     
@@ -230,7 +229,7 @@ public class LocalIndexStoreFileScanner extends StoreFileScanner{
                 }
                 return seekOrReseekToProperKey(isSeek, keyToSeek);
             }
-            keyToSeek = getKeyPresentInHFiles(kv.getBuffer());
+            keyToSeek = getKeyPresentInHFiles(kv);
             return seekOrReseekToProperKey(isSeek, keyToSeek);
         } else {
             if (getComparator().compare(kv.getBuffer(), kv.getKeyOffset(), kv.getKeyLength(), reader.getSplitkey(), 0, reader.getSplitkey().length) >= 0) {
@@ -238,7 +237,7 @@ public class LocalIndexStoreFileScanner extends StoreFileScanner{
                 return false;
             }
             if(!isSeek && reader.getRegionInfo().getStartKey().length == 0 && reader.getSplitRow().length > reader.getRegionStartKeyInHFile().length) {
-                keyToSeek = getKeyPresentInHFiles(kv.getBuffer());
+                keyToSeek = getKeyPresentInHFiles(kv);
             }
         }
         return seekOrReseekToProperKey(isSeek, keyToSeek);