/** * @param scan the scan specification * @throws Exception */ public static ScannerModel fromScan(Scan scan) throws Exception { ScannerModel model = new ScannerModel(); model.setStartRow(scan.getStartRow()); model.setEndRow(scan.getStopRow()); Map<byte[], NavigableSet<byte[]>> families = scan.getFamilyMap(); if (families != null) { for (Map.Entry<byte[], NavigableSet<byte[]>> entry : families.entrySet()) { if (entry.getValue() != null) { for (byte[] qualifier : entry.getValue()) { model.addColumn(Bytes.add(entry.getKey(), COLUMN_DIVIDER, qualifier)); } } else { model.addColumn(entry.getKey()); } } } model.setStartTime(scan.getTimeRange().getMin()); model.setEndTime(scan.getTimeRange().getMax()); int caching = scan.getCaching(); if (caching > 0) { model.setBatch(caching); } int maxVersions = scan.getMaxVersions(); if (maxVersions > 0) { model.setMaxVersions(maxVersions); } Filter filter = scan.getFilter(); if (filter != null) { model.setFilter(stringifyFilter(filter)); } return model; }
public synchronized ResultScanner getScanner( final TransactionState transactionState, final Scan scan) throws IOException { if (LOG.isTraceEnabled()) LOG.trace("Enter TransactionalTable.getScanner"); if (scan.getCaching() <= 0) { scan.setCaching(getScannerCaching()); } Long value = (long) 0; TransactionalScanner scanner = new TransactionalScanner(this, transactionState, scan, value); return scanner; }
public TransactionalScanner( final TransactionalTable ttable, final TransactionState ts, final Scan scan, final Long scannerID) { super(); this.scan = scan; this.scannerID = scannerID; this.ts = ts; this.ttable = ttable; this.nbRows = scan.getCaching(); if (nbRows <= 0) nbRows = 100; try { nextScanner(false); } catch (IOException e) { LOG.error("nextScanner error"); } }