@InterfaceAudience.Private public abstract class UserScanQueryMatcher extends ScanQueryMatcher
We do not consider mvcc here because
StoreFileScanner
and
MemStore.getScanners(long)
will only return a cell
whose mvcc is less than or equal to given read point. For
IsolationLevel.READ_UNCOMMITTED
, we just set the read
point to Long.MAX_VALUE
, i.e. still do not need to consider it.
ScanQueryMatcher.MatchCode
Modifier and Type | Field and Description |
---|---|
protected Filter |
filter |
protected boolean |
hasNullColumn |
protected byte[] |
stopRow |
protected TimeRange |
tr |
columns, currentRow, now, oldestUnexpiredTS, rowComparator, startKey
Modifier | Constructor and Description |
---|---|
protected |
UserScanQueryMatcher(Scan scan,
ScanInfo scanInfo,
ColumnTracker columns,
boolean hasNullColumn,
long oldestUnexpiredTS,
long now) |
Modifier and Type | Method and Description |
---|---|
static UserScanQueryMatcher |
create(Scan scan,
ScanInfo scanInfo,
NavigableSet<byte[]> columns,
long oldestUnexpiredTS,
long now,
RegionCoprocessorHost regionCoprocessorHost) |
Filter |
getFilter() |
Cell |
getNextKeyHint(Cell cell)
Delegate to
Filter.getNextCellHint(Cell) . |
boolean |
hasNullColumnInQuery() |
protected abstract boolean |
isGet() |
boolean |
isUserScan() |
protected ScanQueryMatcher.MatchCode |
matchColumn(Cell cell,
long timestamp,
byte typeByte) |
boolean |
moreRowsMayExistAfter(Cell cell) |
protected abstract boolean |
moreRowsMayExistsAfter(int cmpToStopRow) |
checkDeleted, clearCurrentRow, compareKeyForNextColumn, compareKeyForNextRow, createStartKeyFromRow, currentRow, getKeyForNextColumn, getStartKey, instantiateDeleteTracker, match, preCheck, reset, setToNewRow
protected final boolean hasNullColumn
protected final Filter filter
protected final byte[] stopRow
protected final TimeRange tr
protected UserScanQueryMatcher(Scan scan, ScanInfo scanInfo, ColumnTracker columns, boolean hasNullColumn, long oldestUnexpiredTS, long now)
public boolean hasNullColumnInQuery()
hasNullColumnInQuery
in class ScanQueryMatcher
public boolean isUserScan()
isUserScan
in class ScanQueryMatcher
public Filter getFilter()
getFilter
in class ScanQueryMatcher
public Cell getNextKeyHint(Cell cell) throws IOException
ScanQueryMatcher
Filter.getNextCellHint(Cell)
. If no filter, return null
.getNextKeyHint
in class ScanQueryMatcher
IOException
protected final ScanQueryMatcher.MatchCode matchColumn(Cell cell, long timestamp, byte typeByte) throws IOException
IOException
protected abstract boolean isGet()
protected abstract boolean moreRowsMayExistsAfter(int cmpToStopRow)
public boolean moreRowsMayExistAfter(Cell cell)
moreRowsMayExistAfter
in class ScanQueryMatcher
stopRow
or we are scanning on row only because this Scan is for a Get,
etc.public static UserScanQueryMatcher create(Scan scan, ScanInfo scanInfo, NavigableSet<byte[]> columns, long oldestUnexpiredTS, long now, RegionCoprocessorHost regionCoprocessorHost) throws IOException
IOException
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.