You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by en...@apache.org on 2015/04/18 06:55:04 UTC
hbase git commit: HBASE-13491 Issue in
FuzzyRowFilter#getNextForFuzzyRule (Anoop Sam John)
Repository: hbase
Updated Branches:
refs/heads/master 66e55ff38 -> 92e922e11
HBASE-13491 Issue in FuzzyRowFilter#getNextForFuzzyRule (Anoop Sam John)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/92e922e1
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/92e922e1
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/92e922e1
Branch: refs/heads/master
Commit: 92e922e11ddfb3b4604e5f7095ecec5c296563ee
Parents: 66e55ff
Author: Enis Soztutar <en...@apache.org>
Authored: Fri Apr 17 21:54:41 2015 -0700
Committer: Enis Soztutar <en...@apache.org>
Committed: Fri Apr 17 21:54:41 2015 -0700
----------------------------------------------------------------------
.../java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java | 5 +++--
.../org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java | 6 +++++-
2 files changed, 8 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/92e922e1/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
index 9b99b71..bb5edf4 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/filter/FuzzyRowFilter.java
@@ -337,7 +337,8 @@ public class FuzzyRowFilter extends FilterBase {
* @return greater byte array than given (row) which satisfies the fuzzy rule if it exists,
* null otherwise
*/
- private static byte[] getNextForFuzzyRule(boolean reverse, byte[] row, int offset, int length,
+ @VisibleForTesting
+ static byte[] getNextForFuzzyRule(boolean reverse, byte[] row, int offset, int length,
byte[] fuzzyKeyBytes, byte[] fuzzyKeyMeta) {
// To find out the next "smallest" byte array that satisfies fuzzy rule and "greater" than
// the given one we do the following:
@@ -362,7 +363,7 @@ public class FuzzyRowFilter extends FilterBase {
for (int i = 0; i < result.length; i++) {
if (i >= fuzzyKeyMeta.length || fuzzyKeyMeta[i] == 1) {
result[i] = row[offset + i];
- if (!order.isMax(row[i])) {
+ if (!order.isMax(row[offset + i])) {
// this is "non-fixed" position and is not at max value, hence we can increase it
toInc = i;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/92e922e1/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java
index 3ec1351..f21fba5 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/filter/TestFuzzyRowFilter.java
@@ -17,6 +17,8 @@
*/
package org.apache.hadoop.hbase.filter;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.KeyValueUtil;
import org.apache.hadoop.hbase.testclassification.FilterTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
import org.apache.hadoop.hbase.util.Bytes;
@@ -401,7 +403,9 @@ public class TestFuzzyRowFilter {
private static void assertNext(boolean reverse, byte[] fuzzyRow, byte[] mask, byte[] current,
byte[] expected) {
- byte[] nextForFuzzyRule = FuzzyRowFilter.getNextForFuzzyRule(reverse, current, fuzzyRow, mask);
+ KeyValue kv = KeyValueUtil.createFirstOnRow(current);
+ byte[] nextForFuzzyRule = FuzzyRowFilter.getNextForFuzzyRule(reverse, kv.getRowArray(),
+ kv.getRowOffset(), kv.getRowLength(), fuzzyRow, mask);
Assert.assertEquals(Bytes.toStringBinary(expected), Bytes.toStringBinary(nextForFuzzyRule));
}
}