org.apache.hadoop.hbase.filter
Class RowFilter

java.lang.Object
  extended by org.apache.hadoop.hbase.filter.CompareFilter
      extended by org.apache.hadoop.hbase.filter.RowFilter
All Implemented Interfaces:
Filter, org.apache.hadoop.io.Writable

public class RowFilter
extends CompareFilter

This filter is used to filter based on the key. It takes an operator (equal, greater, not equal, etc) and a byte [] comparator for the row, and column qualifier portions of a key.

This filter can be wrapped with WhileMatchFilter to add more control.

Multiple filters can be combined using FilterList.

If an already known row range needs to be scanned, use Scan start and stop rows directly rather than a filter.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.hbase.filter.CompareFilter
CompareFilter.CompareOp
 
Nested classes/interfaces inherited from interface org.apache.hadoop.hbase.filter.Filter
Filter.ReturnCode
 
Field Summary
 
Fields inherited from class org.apache.hadoop.hbase.filter.CompareFilter
comparator, compareOp
 
Constructor Summary
RowFilter()
          Writable constructor, do not use.
RowFilter(CompareFilter.CompareOp rowCompareOp, WritableByteArrayComparable rowComparator)
          Constructor.
 
Method Summary
 Filter.ReturnCode filterKeyValue(KeyValue v)
          A way to filter based on the column family, column qualifier and/or the column value.
 boolean filterRow()
          Last chance to veto row based on previous Filter.filterKeyValue(KeyValue) calls.
 boolean filterRowKey(byte[] data, int offset, int length)
          Filters a row based on the row key.
 void reset()
          Reset the state of the filter between rows.
 
Methods inherited from class org.apache.hadoop.hbase.filter.CompareFilter
doCompare, filterAllRemaining, readFields, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RowFilter

public RowFilter()
Writable constructor, do not use.


RowFilter

public RowFilter(CompareFilter.CompareOp rowCompareOp,
                 WritableByteArrayComparable rowComparator)
Constructor.

Parameters:
rowCompareOp - the compare op for row matching
rowComparator - the comparator for row matching
Method Detail

reset

public void reset()
Description copied from interface: Filter
Reset the state of the filter between rows.

Specified by:
reset in interface Filter
Overrides:
reset in class CompareFilter

filterKeyValue

public Filter.ReturnCode filterKeyValue(KeyValue v)
Description copied from interface: Filter
A way to filter based on the column family, column qualifier and/or the column value. Return code is described below. This allows filters to filter only certain number of columns, then terminate without matching ever column. If your filter returns ReturnCode.NEXT_ROW, it should return ReturnCode.NEXT_ROW until Filter.reset() is called just in case the caller calls for the next row.

Specified by:
filterKeyValue in interface Filter
Overrides:
filterKeyValue in class CompareFilter
Parameters:
v - the KeyValue in question
Returns:
code as described below
See Also:
Filter.ReturnCode

filterRowKey

public boolean filterRowKey(byte[] data,
                            int offset,
                            int length)
Description copied from interface: Filter
Filters a row based on the row key. If this returns true, the entire row will be excluded. If false, each KeyValue in the row will be passed to Filter.filterKeyValue(KeyValue) below.

Specified by:
filterRowKey in interface Filter
Overrides:
filterRowKey in class CompareFilter
Parameters:
data - buffer containing row key
offset - offset into buffer where row key starts
length - length of the row key
Returns:
true, remove entire row, false, include the row (maybe).

filterRow

public boolean filterRow()
Description copied from interface: Filter
Last chance to veto row based on previous Filter.filterKeyValue(KeyValue) calls. The filter needs to retain state then return a particular value for this call if they wish to exclude a row if a certain column is missing (for example).

Specified by:
filterRow in interface Filter
Overrides:
filterRow in class CompareFilter
Returns:
true to exclude row, false to include row.


Copyright © 2009 The Apache Software Foundation