[ https://issues.apache.org/jira/browse/HBASE-19826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16350362#comment-16350362 ]
Ankit Singhal commented on HBASE-19826: --------------------------------------- We need Scan object to check whether it's a time range query or not. {code} @Override public void preStoreScannerOpen(ObserverContext<RegionCoprocessorEnvironment> ctx, Store store, ScanOptions options) throws IOException { //Set KEEP_DELETED_CELLS for time range non-raw scan if (scan.isRaw() || scan.getTimeRange().getMax() == HConstants.LATEST_TIMESTAMP) { return; } options.setKeepDeletedCells(KeepDeletedCells.TRUE); } {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: Improvement > Reporter: Ankit Singhal > Assignee: Ankit Singhal > Priority: Major > Fix For: 2.0.0 > > > 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)