@InterfaceAudience.Private public class ScanQueryMatcher extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ScanQueryMatcher.MatchCode
match(org.apache.hadoop.hbase.Cell) return codes. |
Modifier and Type | Field and Description |
---|---|
protected long |
maxReadPointToTrackVersions
readPoint over which the KVs are unconditionally included
|
Constructor and Description |
---|
ScanQueryMatcher(Scan scan,
ScanInfo scanInfo,
NavigableSet<byte[]> columns,
long readPointToUse,
long earliestPutTs,
long oldestUnexpiredTS,
long now,
byte[] dropDeletesFromRow,
byte[] dropDeletesToRow,
RegionCoprocessorHost regionCoprocessorHost)
Construct a QueryMatcher for a scan that drop deletes from a limited range of rows.
|
ScanQueryMatcher(Scan scan,
ScanInfo scanInfo,
NavigableSet<byte[]> columns,
ScanType scanType,
long readPointToUse,
long earliestPutTs,
long oldestUnexpiredTS,
long now,
RegionCoprocessorHost regionCoprocessorHost)
Construct a QueryMatcher for a scan
|
Modifier and Type | Method and Description |
---|---|
int |
compareKeyForNextColumn(Cell nextIndexed,
Cell kv) |
int |
compareKeyForNextRow(Cell nextIndexed,
Cell kv) |
Cell |
getKeyForNextColumn(Cell kv) |
Cell |
getKeyForNextRow(Cell kv) |
Cell |
getNextKeyHint(Cell kv) |
Cell |
getStartKey() |
boolean |
hasNullColumnInQuery() |
ScanQueryMatcher.MatchCode |
match(Cell cell)
Determines if the caller should do one of several things:
- seek/skip to the next row (MatchCode.SEEK_NEXT_ROW)
- seek/skip to the next column (MatchCode.SEEK_NEXT_COL)
- include the current KeyValue (MatchCode.INCLUDE)
- ignore the current KeyValue (MatchCode.SKIP)
- got to the next row (MatchCode.DONE)
|
boolean |
moreRowsMayExistAfter(Cell kv) |
void |
reset() |
void |
setRow(byte[] row,
int offset,
short length)
Set current row
|
protected long maxReadPointToTrackVersions
public ScanQueryMatcher(Scan scan, ScanInfo scanInfo, NavigableSet<byte[]> columns, ScanType scanType, long readPointToUse, long earliestPutTs, long oldestUnexpiredTS, long now, RegionCoprocessorHost regionCoprocessorHost) throws IOException
scan
- scanInfo
- The store's immutable scan infocolumns
- scanType
- Type of the scanearliestPutTs
- Earliest put seen in any of the store files.oldestUnexpiredTS
- the oldest timestamp we are interested in,
based on TTLregionCoprocessorHost
- IOException
public ScanQueryMatcher(Scan scan, ScanInfo scanInfo, NavigableSet<byte[]> columns, long readPointToUse, long earliestPutTs, long oldestUnexpiredTS, long now, byte[] dropDeletesFromRow, byte[] dropDeletesToRow, RegionCoprocessorHost regionCoprocessorHost) throws IOException
scan
- scanInfo
- The store's immutable scan infocolumns
- earliestPutTs
- Earliest put seen in any of the store files.oldestUnexpiredTS
- the oldest timestamp we are interested in, based on TTLnow
- the current server timedropDeletesFromRow
- The inclusive left bound of the range; can be EMPTY_START_ROW.dropDeletesToRow
- The exclusive right bound of the range; can be EMPTY_END_ROW.regionCoprocessorHost
- IOException
public boolean hasNullColumnInQuery()
public ScanQueryMatcher.MatchCode match(Cell cell) throws IOException
cell
- KeyValue to checkIOException
- in case there is an internal consistency problem
caused by a data corruption.public boolean moreRowsMayExistAfter(Cell kv)
public void setRow(byte[] row, int offset, short length)
row
- public void reset()
public Cell getStartKey()
public Cell getNextKeyHint(Cell kv) throws IOException
IOException
public int compareKeyForNextRow(Cell nextIndexed, Cell kv)
nextIndexed
- the key of the next entry in the block index (if any)kv
- The Cell we're using to calculate the seek keypublic int compareKeyForNextColumn(Cell nextIndexed, Cell kv)
nextIndexed
- the key of the next entry in the block index (if any)kv
- The Cell we're using to calculate the seek key