@InterfaceAudience.Public @InterfaceStability.Stable public final class FilterList extends Filter
Filter that represents an ordered List of Filters
which will be evaluated with a specified boolean operator FilterList.Operator.MUST_PASS_ALL
(AND) or FilterList.Operator.MUST_PASS_ONE (OR).
Since you can use Filter Lists as children of Filter Lists, you can create a
hierarchy of filters to be evaluated.
FilterList.Operator.MUST_PASS_ALL evaluates lazily: evaluation stops as soon as one filter does
not include the KeyValue.
FilterList.Operator.MUST_PASS_ONE evaluates non-lazily: all filters are always evaluated.
FilterList.Operator.MUST_PASS_ALL.| Modifier and Type | Class and Description |
|---|---|
static class |
FilterList.Operator
set operator
|
Filter.ReturnCode| Constructor and Description |
|---|
FilterList(Filter... rowFilters)
Constructor that takes a var arg number of
Filters. |
FilterList(FilterList.Operator operator)
Constructor that takes an operator.
|
FilterList(FilterList.Operator operator,
Filter... rowFilters)
Constructor that takes a var arg number of
Filters and an operator. |
FilterList(FilterList.Operator operator,
List<Filter> rowFilters)
Constructor that takes a set of
Filters and an operator. |
FilterList(List<Filter> rowFilters)
Constructor that takes a set of
Filters. |
| Modifier and Type | Method and Description |
|---|---|
void |
addFilter(Filter filter)
Add a filter.
|
boolean |
filterAllRemaining()
If this returns true, the scan will terminate.
|
Filter.ReturnCode |
filterKeyValue(Cell 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(Cell) calls. |
void |
filterRowCells(List<Cell> cells)
Filters that never filter by modifying the returned List of Cells can
inherit this implementation that does nothing.
|
boolean |
filterRowKey(byte[] rowKey,
int offset,
int length)
Filters a row based on the row key.
|
List<Filter> |
getFilters()
Get the filters.
|
Cell |
getNextCellHint(Cell currentKV)
If the filter returns the match code SEEK_NEXT_USING_HINT, then it should also tell which is
the next key it must seek to.
|
org.apache.hadoop.hbase.KeyValue |
getNextKeyHint(org.apache.hadoop.hbase.KeyValue currentKV)
Deprecated.
|
FilterList.Operator |
getOperator()
Get the operator.
|
boolean |
hasFilterRow()
Primarily used to check for conflicts with scans(such as scans that do not read a full row at a
time).
|
boolean |
isFamilyEssential(byte[] name)
Check that given column family is essential for filter to check row.
|
static FilterList |
parseFrom(byte[] pbBytes) |
void |
reset()
Reset the state of the filter between rows.
|
void |
setReversed(boolean reversed)
alter the reversed scan flag
|
byte[] |
toByteArray()
TODO: JAVADOC
Concrete implementers can signal a failure condition in their code by throwing an
IOException. |
String |
toString() |
protected String |
toString(int maxFilters) |
org.apache.hadoop.hbase.KeyValue |
transform(org.apache.hadoop.hbase.KeyValue v)
Deprecated.
|
Cell |
transformCell(Cell v)
Give the filter a chance to transform the passed KeyValue.
|
isReversedpublic FilterList(List<Filter> rowFilters)
Filters. The default operator
MUST_PASS_ALL is assumed.rowFilters - list of filterspublic FilterList(Filter... rowFilters)
Filters. The fefault operator
MUST_PASS_ALL is assumed.rowFilters - public FilterList(FilterList.Operator operator)
operator - Operator to process filter set with.public FilterList(FilterList.Operator operator, List<Filter> rowFilters)
Filters and an operator.operator - Operator to process filter set with.rowFilters - Set of row filters.public FilterList(FilterList.Operator operator, Filter... rowFilters)
Filters and an operator.operator - Operator to process filter set with.rowFilters - Filters to usepublic FilterList.Operator getOperator()
public void addFilter(Filter filter)
filter - another filterpublic void reset()
throws IOException
FilterIOException.reset in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterRowKey(byte[] rowKey,
int offset,
int length)
throws IOException
FilterFilter.filterKeyValue(Cell) below.
Concrete implementers can signal a failure condition in their code by throwing an
IOException.filterRowKey in class FilterrowKey - buffer containing row keyoffset - offset into buffer where row key startslength - length of the row keyIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean filterAllRemaining()
throws IOException
FilterIOException.filterAllRemaining in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public Cell transformCell(Cell v) throws IOException
FiltertransformCell in class Filterv - the KeyValue in questionIOException - in case an I/O or an filter specific failure needs to be signaled.The transformed KeyValue is what is eventually returned to the client. Most filters will
return the passed KeyValue unchanged.,
for an example of a
transformation.
Concrete implementers can signal a failure condition in their code by throwing an
{@link IOException}.@Deprecated public org.apache.hadoop.hbase.KeyValue transform(org.apache.hadoop.hbase.KeyValue v) throws IOException
transformCell(Cell).
When removing this, its body should be placed in transformCell.
This is for transition from 0.94 -> 0.96transform in class FilterIOExceptionpublic Filter.ReturnCode filterKeyValue(Cell v) throws IOException
FilterReturnCode.NEXT_ROW, it should return
ReturnCode.NEXT_ROW until Filter.reset() is called just in case the caller calls
for the next row.
Concrete implementers can signal a failure condition in their code by throwing an
IOException.filterKeyValue in class Filterv - the Cell in questionIOException - in case an I/O or an filter specific failure needs to be signaled.Filter.ReturnCodepublic void filterRowCells(List<Cell> cells) throws IOException
IOException.filterRowCells in class Filtercells - the list of Cells to be filteredIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean hasFilterRow()
FilterhasFilterRow in class Filterpublic boolean filterRow()
throws IOException
FilterFilter.filterKeyValue(Cell) 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).
Concrete implementers can signal a failure condition in their code by throwing an
IOException.filterRow in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public byte[] toByteArray()
throws IOException
FilterIOException.toByteArray in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public static FilterList parseFrom(byte[] pbBytes) throws org.apache.hadoop.hbase.exceptions.DeserializationException
pbBytes - A pb serialized FilterList instanceFilterList made from bytesorg.apache.hadoop.hbase.exceptions.DeserializationExceptiontoByteArray()@Deprecated public org.apache.hadoop.hbase.KeyValue getNextKeyHint(org.apache.hadoop.hbase.KeyValue currentKV) throws IOException
getNextKeyHint in class FilterIOException - Function is Deprecated. Use Filter.getNextCellHint(Cell) instead.public Cell getNextCellHint(Cell currentKV) throws IOException
FilterIOException.getNextCellHint in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public boolean isFamilyEssential(byte[] name)
throws IOException
FilterIOException.isFamilyEssential in class FilterIOException - in case an I/O or an filter specific failure needs to be signaled.public void setReversed(boolean reversed)
FiltersetReversed in class Filterreversed - flagprotected String toString(int maxFilters)
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.