org.apache.hadoop.hbase.filter
Interface RowFilterInterface
- All Superinterfaces:
- org.apache.hadoop.io.Writable
- All Known Implementing Classes:
- InclusiveStopRowFilter, PageRowFilter, RegExpRowFilter, RowFilterSet, StopRowFilter, WhileMatchRowFilter
public interface RowFilterInterface
- extends org.apache.hadoop.io.Writable
Interface used for row-level filters applied to HRegion.HScanner scan
results during calls to next().
Method Summary |
boolean |
filter(org.apache.hadoop.io.Text rowKey)
Filters on just a row key. |
boolean |
filter(org.apache.hadoop.io.Text rowKey,
org.apache.hadoop.io.Text colKey,
byte[] data)
Filters on row key and/or a column key. |
boolean |
filterAllRemaining()
Determines if the filter has decided that all remaining results should be
filtered (skipped). |
boolean |
filterNotNull(SortedMap<org.apache.hadoop.io.Text,byte[]> columns)
Filters a row if:
1) The given row (@param columns) has a columnKey expected to be null AND
the value associated with that columnKey is non-null. |
boolean |
processAlways()
Returns whether or not the filter should always be processed in any
filtering call. |
void |
reset()
Resets the state of the filter. |
void |
rowProcessed(boolean filtered,
org.apache.hadoop.io.Text key)
Called to let filter know the final decision (to pass or filter) on a
given row. |
void |
validate(org.apache.hadoop.io.Text[] columns)
Validates that this filter applies only to a subset of the given columns. |
Methods inherited from interface org.apache.hadoop.io.Writable |
readFields, write |
reset
void reset()
- Resets the state of the filter. Used prior to the start of a Region scan.
rowProcessed
void rowProcessed(boolean filtered,
org.apache.hadoop.io.Text key)
- Called to let filter know the final decision (to pass or filter) on a
given row. With out HScanner calling this, the filter does not know if a
row passed filtering even if it passed the row itself because other
filters may have failed the row. E.g. when this filter is a member of a
RowFilterSet with an OR operator.
- Parameters:
filtered
- key
- - See Also:
RowFilterSet
processAlways
boolean processAlways()
- Returns whether or not the filter should always be processed in any
filtering call. This precaution is necessary for filters that maintain
state and need to be updated according to their response to filtering
calls (see WhileMatchRowFilter for an example). At times, filters nested
in RowFilterSets may or may not be called because the RowFilterSet
determines a result as fast as possible. Returning true for
processAlways() ensures that the filter will always be called.
- Returns:
- whether or not to always process the filter
filterAllRemaining
boolean filterAllRemaining()
- Determines if the filter has decided that all remaining results should be
filtered (skipped). This is used to prevent the scanner from scanning a
the rest of the HRegion when for sure the filter will exclude all
remaining rows.
- Returns:
- true if the filter intends to filter all remaining rows.
filter
boolean filter(org.apache.hadoop.io.Text rowKey)
- Filters on just a row key.
- Parameters:
rowKey
-
- Returns:
- true if given row key is filtered and row should not be processed.
filter
boolean filter(org.apache.hadoop.io.Text rowKey,
org.apache.hadoop.io.Text colKey,
byte[] data)
- Filters on row key and/or a column key.
- Parameters:
rowKey
- row key to filter on. May be null for no filtering of row key.colKey
- column whose data will be filtereddata
- column value
- Returns:
- true if row filtered and should not be processed.
filterNotNull
boolean filterNotNull(SortedMap<org.apache.hadoop.io.Text,byte[]> columns)
- Filters a row if:
1) The given row (@param columns) has a columnKey expected to be null AND
the value associated with that columnKey is non-null.
2) The filter has a criterion for a particular columnKey, but that
columnKey is not in the given row (@param columns).
Note that filterNotNull does not care whether the values associated with a
columnKey match. Also note that a "null value" associated with a columnKey
is expressed as HConstants.DELETE_BYTES.
- Parameters:
columns
-
- Returns:
- true if null/non-null criteria not met.
validate
void validate(org.apache.hadoop.io.Text[] columns)
- Validates that this filter applies only to a subset of the given columns.
This check is done prior to opening of scanner due to the limitation that
filtering of columns is dependent on the retrieval of those columns within
the HRegion. Criteria on columns that are not part of a scanner's column
list will be ignored. In the case of null value filters, all rows will pass
the filter. This behavior should be 'undefined' for the user and therefore
not permitted.
- Parameters:
columns
-
Copyright © 2008 The Apache Software Foundation