[
https://issues.apache.org/jira/browse/HBASE-19826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ankit Singhal updated HBASE-19826:
----------------------------------
Description:
We can provide an option (something like seePastDeleteMarkers) in a scan to let
the user see the versions behind the delete marker even if keepDeletedCells is
set to false in the descriptor.
With the previous version, we workaround the same in preStoreScannerOpen hook.
For reference PHOENIX-4277
{code}
@Override
public KeyValueScanner preStoreScannerOpen(final
ObserverContext<RegionCoprocessorEnvironment> c,
final Store store, final Scan scan, final NavigableSet<byte[]>
targetCols,
final KeyValueScanner s) throws IOException {
if (scan.isRaw() ||
ScanInfoUtil.isKeepDeletedCells(store.getScanInfo()) ||
scan.getTimeRange().getMax() == HConstants.LATEST_TIMESTAMP ||
TransactionUtil.isTransactionalTimestamp(scan.getTimeRange().getMax())) {
return s;
}
ScanInfo scanInfo =
ScanInfoUtil.cloneScanInfoWithKeepDeletedCells(store.getScanInfo());
return new StoreScanner(store, scanInfo, scan, targetCols,
c.getEnvironment().getRegion().getReadpoint(scan.getIsolationLevel()));
}
{code}
Another way is to provide a way to set KEEP_DELETED_CELLS to true in
ScanOptions of preStoreScannerOpen.
was:
We can provide an option (something like seePastDeleteMarkers) in a scan to let
the user see the versions behind the delete marker even if keepDeletedCells is
set to false in the descriptor.
With the previous version, we workaround the same in pre
{code}
@Override
public KeyValueScanner preStoreScannerOpen(final
ObserverContext<RegionCoprocessorEnvironment> c,
final Store store, final Scan scan, final NavigableSet<byte[]>
targetCols,
final KeyValueScanner s) throws IOException {
if (scan.isRaw() ||
ScanInfoUtil.isKeepDeletedCells(store.getScanInfo()) ||
scan.getTimeRange().getMax() == HConstants.LATEST_TIMESTAMP ||
TransactionUtil.isTransactionalTimestamp(scan.getTimeRange().getMax())) {
return s;
}
ScanInfo scanInfo =
ScanInfoUtil.cloneScanInfoWithKeepDeletedCells(store.getScanInfo());
return new StoreScanner(store, scanInfo, scan, targetCols,
c.getEnvironment().getRegion().getReadpoint(scan.getIsolationLevel()));
}
{code}
> Provide a option to see rows behind a delete in a time range queries
> --------------------------------------------------------------------
>
> Key: HBASE-19826
> URL: https://issues.apache.org/jira/browse/HBASE-19826
> Project: HBase
> Issue Type: Bug
> Reporter: Ankit Singhal
> Assignee: Ankit Singhal
> Priority: Major
> Fix For: 2.0.0-beta-2
>
>
> We can provide an option (something like seePastDeleteMarkers) in a scan to
> let the user see the versions behind the delete marker even if
> keepDeletedCells is set to false in the descriptor.
> With the previous version, we workaround the same in preStoreScannerOpen
> hook. For reference PHOENIX-4277
> {code}
> @Override
> public KeyValueScanner preStoreScannerOpen(final
> ObserverContext<RegionCoprocessorEnvironment> c,
> final Store store, final Scan scan, final NavigableSet<byte[]>
> targetCols,
> final KeyValueScanner s) throws IOException {
>
> if (scan.isRaw() ||
> ScanInfoUtil.isKeepDeletedCells(store.getScanInfo()) ||
> scan.getTimeRange().getMax() == HConstants.LATEST_TIMESTAMP ||
> TransactionUtil.isTransactionalTimestamp(scan.getTimeRange().getMax())) {
> return s;
> }
>
> ScanInfo scanInfo =
> ScanInfoUtil.cloneScanInfoWithKeepDeletedCells(store.getScanInfo());
> return new StoreScanner(store, scanInfo, scan, targetCols,
>
> c.getEnvironment().getRegion().getReadpoint(scan.getIsolationLevel()));
> }
> {code}
> Another way is to provide a way to set KEEP_DELETED_CELLS to true in
> ScanOptions of preStoreScannerOpen.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)