You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2012/10/04 02:40:11 UTC
svn commit: r1393854 - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
test/java/org/apache/hadoop/hbase/client/TestFakeKeyInFilter.java
test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
Author: larsh
Date: Thu Oct 4 00:40:11 2012
New Revision: 1393854
URL: http://svn.apache.org/viewvc?rev=1393854&view=rev
Log:
HBASE-6912 Filters are not properly applied in certain cases (revert HBASE-6562)
Removed:
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFakeKeyInFilter.java
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1393854&r1=1393853&r2=1393854&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Thu Oct 4 00:40:11 2012
@@ -3467,8 +3467,7 @@ public class HRegion implements HeapSize
rpcCall.throwExceptionIfCallerDisconnected();
}
- KeyValue kv = this.storeHeap.peek();
- byte [] currentRow = kv == null ? null : kv.getRow();
+ byte [] currentRow = peekRow();
if (isStopRow(currentRow)) {
if (filter != null && filter.hasFilterRow()) {
filter.filterRow(results);
@@ -3478,7 +3477,7 @@ public class HRegion implements HeapSize
}
return false;
- } else if (kv != null && !kv.isInternal() && filterRowKey(currentRow)) {
+ } else if (filterRowKey(currentRow)) {
nextRow(currentRow);
} else {
byte [] nextRow;
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java?rev=1393854&r1=1393853&r2=1393854&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java Thu Oct 4 00:40:11 2012
@@ -4788,6 +4788,33 @@ public class TestFromClientSide {
regionsList = table.getRegionsInRange(startKey, endKey);
assertEquals(1, regionsList.size());
}
+
+ @Test
+ public void testJira6912() throws Exception {
+ byte [] TABLE = Bytes.toBytes("testJira6912");
+ HTable foo = TEST_UTIL.createTable(TABLE, new byte[][] {FAMILY}, 10);
+
+ List<Put> puts = new ArrayList<Put>();
+ for (int i=0;i !=100; i++){
+ Put put = new Put(Bytes.toBytes(i));
+ put.add(FAMILY, FAMILY, Bytes.toBytes(i));
+ puts.add(put);
+ }
+ foo.put(puts);
+ // If i comment this out it works
+ TEST_UTIL.flush();
+
+ Scan scan = new Scan();
+ scan.setStartRow(Bytes.toBytes(1));
+ scan.setStopRow(Bytes.toBytes(3));
+ scan.addColumn(FAMILY, FAMILY);
+ scan.setFilter(new RowFilter(CompareFilter.CompareOp.NOT_EQUAL, new BinaryComparator(Bytes.toBytes(1))));
+
+ ResultScanner scanner = foo.getScanner(scan);
+ Result[] bar = scanner.next(100);
+ assertEquals(1, bar.length);
+ }
+
@org.junit.Rule
public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();