@Override public boolean seekToLastRow() throws IOException { return delegate.seekToLastRow(); }
@Override protected void seekScanners(List<? extends KeyValueScanner> scanners, Cell seekKey, boolean isLazy, boolean isParallelSeek) throws IOException { // Seek all scanners to the start of the Row (or if the exact matching row // key does not exist, then to the start of the previous matching Row). if (CellUtil.matchingRows(seekKey, HConstants.EMPTY_START_ROW)) { for (KeyValueScanner scanner : scanners) { scanner.seekToLastRow(); } } else { for (KeyValueScanner scanner : scanners) { scanner.backwardSeek(seekKey); } } }
private List<KeyValueScanner> getScanners(MemStore memstore, HStoreFile sf1, HStoreFile sf2, byte[] startRow, boolean doSeek, int readPoint) throws IOException { List<StoreFileScanner> fileScanners = StoreFileScanner.getScannersForStoreFiles( Lists.newArrayList(sf1, sf2), false, true, false, false, readPoint); List<KeyValueScanner> memScanners = memstore.getScanners(readPoint); List<KeyValueScanner> scanners = new ArrayList<>(fileScanners.size() + 1); scanners.addAll(fileScanners); scanners.addAll(memScanners); if (doSeek) { if (Bytes.equals(HConstants.EMPTY_START_ROW, startRow)) { for (KeyValueScanner scanner : scanners) { scanner.seekToLastRow(); } } else { KeyValue startKey = KeyValueUtil.createFirstOnRow(startRow); for (KeyValueScanner scanner : scanners) { scanner.backwardSeek(startKey); } } } return scanners; }
boolean res = false; for (KeyValueScanner scanner : scanners) { res |= scanner.seekToLastRow();
assertTrue(scanner.seekToLastRow()); assertEquals(makeKV(ROWSIZE - 1, 0), scanner.peek());
@Override public boolean seekToLastRow() throws IOException { return delegate.seekToLastRow(); }
@Override protected void seekScanners(List<? extends KeyValueScanner> scanners, Cell seekKey, boolean isLazy, boolean isParallelSeek) throws IOException { // Seek all scanners to the start of the Row (or if the exact matching row // key does not exist, then to the start of the previous matching Row). if (CellUtil.matchingRow(seekKey, HConstants.EMPTY_START_ROW)) { for (KeyValueScanner scanner : scanners) { scanner.seekToLastRow(); } } else { for (KeyValueScanner scanner : scanners) { scanner.backwardSeek(seekKey); } } }
private List<KeyValueScanner> getScanners(MemStore memstore, HStoreFile sf1, HStoreFile sf2, byte[] startRow, boolean doSeek, int readPoint) throws IOException { List<StoreFileScanner> fileScanners = StoreFileScanner.getScannersForStoreFiles( Lists.newArrayList(sf1, sf2), false, true, false, false, readPoint); List<KeyValueScanner> memScanners = memstore.getScanners(readPoint); List<KeyValueScanner> scanners = new ArrayList<>(fileScanners.size() + 1); scanners.addAll(fileScanners); scanners.addAll(memScanners); if (doSeek) { if (Bytes.equals(HConstants.EMPTY_START_ROW, startRow)) { for (KeyValueScanner scanner : scanners) { scanner.seekToLastRow(); } } else { KeyValue startKey = KeyValueUtil.createFirstOnRow(startRow); for (KeyValueScanner scanner : scanners) { scanner.backwardSeek(startKey); } } } return scanners; }
boolean res = false; for (KeyValueScanner scanner : scanners) { res |= scanner.seekToLastRow();
assertTrue(scanner.seekToLastRow()); assertEquals(makeKV(ROWSIZE - 1, 0), scanner.peek());