@InterfaceAudience.Public public class PageFilter extends FilterBase
Note that this filter cannot guarantee that the number of results returned to a client are <= page size. This is because the filter is applied separately on different region servers. It does however optimize the scan of individual HRegions by making sure that the page size is never exceeded locally.
Filter.ReturnCode
Modifier and Type | Field and Description |
---|---|
private long |
pageSize |
private int |
rowsAccepted |
Constructor and Description |
---|
PageFilter(long pageSize)
Constructor that takes a maximum page size.
|
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
areSerializedFieldsEqual(Filter o)
Returns true if and only if the fields of the filter that are serialized are equal to the
corresponding fields in other.
|
static Filter |
createFilterFromArguments(ArrayList<byte[]> filterArguments) |
boolean |
equals(Object obj) |
boolean |
filterAllRemaining()
Filters that never filter all remaining can inherit this implementation that never stops the
filter early.
|
Filter.ReturnCode |
filterCell(Cell ignored)
A way to filter based on the column family, column qualifier and/or the column value.
|
boolean |
filterRow()
Filters that never filter by rows based on previously gathered state from
Filter.filterCell(Cell) can inherit this implementation that never filters a row. |
boolean |
filterRowKey(Cell cell)
Filters a row based on the row key.
|
long |
getPageSize() |
boolean |
hasFilterRow()
Filters that never filter by modifying the returned List of Cells can inherit this
implementation that does nothing.
|
int |
hashCode() |
static PageFilter |
parseFrom(byte[] pbBytes)
Parse a serialized representation of
PageFilter |
byte[] |
toByteArray()
Returns The filter serialized using pb
|
String |
toString()
Return filter's info for debugging and logging purpose.
|
filterRowCells, getNextCellHint, isFamilyEssential, reset, transformCell
isReversed, setReversed
private long pageSize
private int rowsAccepted
public PageFilter(long pageSize)
pageSize
- Maximum result size.public long getPageSize()
public boolean filterRowKey(Cell cell) throws IOException
Filter
Filter.filterCell(Cell)
below. If
Filter.filterAllRemaining()
returns true, then Filter.filterRowKey(Cell)
should also return
true. Concrete implementers can signal a failure condition in their code by throwing an
IOException
.filterRowKey
in class FilterBase
cell
- The first cell coming in the new rowIOException
- in case an I/O or an filter specific failure needs to be signaled.public Filter.ReturnCode filterCell(Cell ignored) throws IOException
Filter
ReturnCode.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
.filterCell
in class Filter
ignored
- the Cell in questionIOException
- in case an I/O or an filter specific failure needs to be signaled.Filter.ReturnCode
public boolean filterAllRemaining()
FilterBase
IOException
.filterAllRemaining
in class FilterBase
public boolean filterRow()
FilterBase
Filter.filterCell(Cell)
can inherit this implementation that never filters a row.
Last chance to veto row based on previous Filter.filterCell(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 FilterBase
public boolean hasFilterRow()
FilterBase
hasFilterRow
in class FilterBase
public static Filter createFilterFromArguments(ArrayList<byte[]> filterArguments)
public byte[] toByteArray()
toByteArray
in class FilterBase
public static PageFilter parseFrom(byte[] pbBytes) throws DeserializationException
PageFilter
pbBytes
- A pb serialized PageFilter
instancePageFilter
made from bytes
DeserializationException
- if an error occurredtoByteArray()
boolean areSerializedFieldsEqual(Filter o)
areSerializedFieldsEqual
in class FilterBase
public String toString()
FilterBase
toString
in class FilterBase
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.