You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ns...@apache.org on 2011/10/11 04:09:11 UTC
svn commit: r1181446 - in /hbase/branches/0.89/src:
main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
Author: nspiegelberg
Date: Tue Oct 11 02:09:11 2011
New Revision: 1181446
URL: http://svn.apache.org/viewvc?rev=1181446&view=rev
Log:
Fix KeyOnlyFilter(true) on the Client Side
Summary:
Because I didn't implement write/readFields for KeyOnlyFilter when I added the
param, client -> server serialization didn't work and the default value of false
was always used
Test Plan:
mvn test -Dtest=TestFromClientSide
DiffCamp Revision: 182333
Reviewed By: aravind
CC: aravind
Revert Plan:
OK
Modified:
hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
Modified: hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java?rev=1181446&r1=1181445&r2=1181446&view=diff
==============================================================================
--- hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java (original)
+++ hbase/branches/0.89/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java Tue Oct 11 02:09:11 2011
@@ -44,7 +44,11 @@ public class KeyOnlyFilter extends Filte
return ReturnCode.INCLUDE;
}
- public void write(DataOutput out) throws IOException {}
+ public void write(DataOutput out) throws IOException {
+ out.writeBoolean(this.lenAsVal);
+ }
- public void readFields(DataInput in) throws IOException {}
+ public void readFields(DataInput in) throws IOException {
+ this.lenAsVal = in.readBoolean();
+ }
}
Modified: hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java?rev=1181446&r1=1181445&r2=1181446&view=diff
==============================================================================
--- hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java (original)
+++ hbase/branches/0.89/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java Tue Oct 11 02:09:11 2011
@@ -54,6 +54,7 @@ import org.apache.hadoop.hbase.filter.Bi
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.FilterList;
+import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
import org.apache.hadoop.hbase.filter.PrefixFilter;
import org.apache.hadoop.hbase.filter.QualifierFilter;
import org.apache.hadoop.hbase.filter.RegexStringComparator;
@@ -505,6 +506,39 @@ public class TestFromClientSide {
scanner.close();
}
+ @Test
+ public void testKeyOnlyFilter() throws Exception {
+ byte [] TABLE = Bytes.toBytes("testKeyOnlyFilter");
+ HTable ht = TEST_UTIL.createTable(TABLE, FAMILY);
+ byte [][] ROWS = makeN(ROW, 10);
+ byte [][] QUALIFIERS = {
+ Bytes.toBytes("col0-<d2v1>-<d3v2>"), Bytes.toBytes("col1-<d2v1>-<d3v2>"),
+ Bytes.toBytes("col2-<d2v1>-<d3v2>"), Bytes.toBytes("col3-<d2v1>-<d3v2>"),
+ Bytes.toBytes("col4-<d2v1>-<d3v2>"), Bytes.toBytes("col5-<d2v1>-<d3v2>"),
+ Bytes.toBytes("col6-<d2v1>-<d3v2>"), Bytes.toBytes("col7-<d2v1>-<d3v2>"),
+ Bytes.toBytes("col8-<d2v1>-<d3v2>"), Bytes.toBytes("col9-<d2v1>-<d3v2>")
+ };
+ for(int i=0;i<10;i++) {
+ Put put = new Put(ROWS[i]);
+ put.add(FAMILY, QUALIFIERS[i], VALUE);
+ ht.put(put);
+ }
+ Scan scan = new Scan();
+ scan.addFamily(FAMILY);
+ Filter filter = new KeyOnlyFilter(true);
+ scan.setFilter(filter);
+ ResultScanner scanner = ht.getScanner(scan);
+ int count = 0;
+ for(Result result : ht.getScanner(scan)) {
+ assertEquals(result.size(), 1);
+ assertEquals(result.raw()[0].getValueLength(), Bytes.SIZEOF_INT);
+ assertEquals(Bytes.toInt(result.raw()[0].getValue()), VALUE.length);
+ count++;
+ }
+ assertEquals(count, 10);
+ scanner.close();
+ }
+
/**
* Test simple table and non-existent row cases.
*/