@InterfaceAudience.Private public abstract class UserScanQueryMatcher extends ScanQueryMatcher
We do not consider mvcc here because
StoreFileScanner and
SegmentScanner 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| 限定符和类型 | 字段和说明 |
|---|---|
protected Filter |
filter |
protected boolean |
hasNullColumn |
protected byte[] |
stopRow |
protected TimeRange |
tr |
columns, currentRow, now, oldestUnexpiredTS, rowComparator, startKey| 限定符 | 构造器和说明 |
|---|---|
protected |
UserScanQueryMatcher(Scan scan,
ScanInfo scanInfo,
ColumnTracker columns,
boolean hasNullColumn,
long oldestUnexpiredTS,
long now) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
beforeShipped()
The action that needs to be performed before
Shipper.shipped() is performed |
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, getTrackers, match, preCheck, reset, setToNewRowprotected 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 在类中 ScanQueryMatcherpublic boolean isUserScan()
isUserScan 在类中 ScanQueryMatcherpublic Filter getFilter()
getFilter 在类中 ScanQueryMatcherpublic Cell getNextKeyHint(Cell cell) throws IOException
ScanQueryMatcherFilter.getNextCellHint(Cell). If no filter, return null.getNextKeyHint 在类中 ScanQueryMatcherIOExceptionpublic void beforeShipped()
throws IOException
ShipperListenerShipper.shipped() is performedbeforeShipped 在接口中 ShipperListenerbeforeShipped 在类中 ScanQueryMatcherIOExceptionprotected final ScanQueryMatcher.MatchCode matchColumn(Cell cell, long timestamp, byte typeByte) throws IOException
IOExceptionprotected abstract boolean isGet()
protected abstract boolean moreRowsMayExistsAfter(int cmpToStopRow)
public boolean moreRowsMayExistAfter(Cell cell)
moreRowsMayExistAfter 在类中 ScanQueryMatcherstopRow 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
IOExceptionCopyright © 2007–2019 The Apache Software Foundation. All rights reserved.