public List<Cell> get(Get get, boolean withCoprocessor, long nonceGroup, long nonce) throws IOException { List<Cell> results = new ArrayList<>(); long before = EnvironmentEdgeManager.currentTime(); // pre-get CP hook if (withCoprocessor && (coprocessorHost != null)) { if (coprocessorHost.preGet(get, results)) { metricsUpdateForGet(results, before); return results; } } Scan scan = new Scan(get); if (scan.getLoadColumnFamiliesOnDemandValue() == null) { scan.setLoadColumnFamiliesOnDemand(isLoadingCfsOnDemandDefault()); } RegionScanner scanner = null; try { scanner = getScanner(scan, null, nonceGroup, nonce); scanner.next(results); } finally { if (scanner != null) scanner.close(); } // post-get CP hook if (withCoprocessor && (coprocessorHost != null)) { coprocessorHost.postGet(get, results); } metricsUpdateForGet(results, before); return results; }
private void runScanner(Table table, boolean slow) throws Exception { long time = System.nanoTime(); Scan scan = new Scan(); scan.addColumn(cf_essential, col_name); scan.addColumn(cf_joined, col_name); SingleColumnValueFilter filter = new SingleColumnValueFilter( cf_essential, col_name, CompareFilter.CompareOp.EQUAL, flag_yes); filter.setFilterIfMissing(true); scan.setFilter(filter); scan.setLoadColumnFamiliesOnDemand(!slow); ResultScanner result_scanner = table.getScanner(scan); Result res; long rows_count = 0; while ((res = result_scanner.next()) != null) { rows_count++; } double timeSec = (System.nanoTime() - time) / 1000000000.0; result_scanner.close(); LOG.info((slow ? "Slow" : "Joined") + " scanner finished in " + Double.toString(timeSec) + " seconds, got " + Long.toString(rows_count/2) + " rows"); }
scan.setLoadColumnFamiliesOnDemand(true); Filter bogusFilter = new FilterBase() { @Override
CompareOp.NOT_EQUAL, filtered_val); scan.setFilter(filter); scan.setLoadColumnFamiliesOnDemand(true); InternalScanner s = region.getScanner(scan);
scan.setLoadColumnFamiliesOnDemand(region.isLoadingCfsOnDemandDefault());
@Test(expected = DoNotRetryIOException.class) public void testWithReverseScan() throws Exception { try (Connection con = TEST_UTIL.getConnection(); Admin admin = con.getAdmin()) { TableName tableName = TableName.valueOf(name.getMethodName()); TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(tableName) .setColumnFamily(ColumnFamilyDescriptorBuilder.of("cf1")) .setColumnFamily(ColumnFamilyDescriptorBuilder.of("cf2")) .build(); admin.createTable(tableDescriptor); try (Table table = con.getTable(tableName)) { SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("cf1"), Bytes.toBytes("col"), CompareOperator.EQUAL, Bytes.toBytes("val")); filter.setFilterIfMissing(true); // Reverse scan with loading CFs on demand Scan scan = new Scan(); scan.setFilter(filter); scan.setReversed(true); scan.setLoadColumnFamiliesOnDemand(true); try (ResultScanner scanner = table.getScanner(scan)) { // DoNotRetryIOException should occur scanner.next(); } } } } }
public static void setReversed(Scan scan) { scan.setAttribute(BaseScannerRegionObserver.REVERSE_SCAN, PDataType.TRUE_BYTES); scan.setLoadColumnFamiliesOnDemand(false); }
public static void unsetReversed(Scan scan) { scan.setAttribute(BaseScannerRegionObserver.REVERSE_SCAN, PDataType.FALSE_BYTES); scan.setLoadColumnFamiliesOnDemand(true); }
scan.setLoadColumnFamiliesOnDemand(region.isLoadingCfsOnDemandDefault());
scan.setLoadColumnFamiliesOnDemand(proto.getLoadColumnFamiliesOnDemand());
.setIsolationLevel(IsolationLevel.READ_COMMITTED) .setLimit(100) .setLoadColumnFamiliesOnDemand(false) .setMaxResultSize(100) .setMaxResultsPerColumnFamily(1000)
@Override public ScanBuilder setLoadColumnFamiliesOnDemand(boolean value) { scan.setLoadColumnFamiliesOnDemand(value); return this; }
@Override public ScanBuilder setLoadColumnFamiliesOnDemand(boolean value) { scan.setLoadColumnFamiliesOnDemand(value); return this; }
@Override public ScanBuilder setLoadColumnFamiliesOnDemand(boolean value) { scan.setLoadColumnFamiliesOnDemand(value); return this; }
scan.setLoadColumnFamiliesOnDemand(proto.getLoadColumnFamiliesOnDemand());
public QueryCompiler(PhoenixStatement statement, SelectStatement select, ColumnResolver resolver, List<? extends PDatum> targetColumns, ParallelIteratorFactory parallelIteratorFactory, SequenceManager sequenceManager, boolean projectTuples, boolean optimizeSubquery, Map<TableRef, QueryPlan> dataPlans) throws SQLException { this.statement = statement; this.select = select; this.resolver = resolver; this.scan = new Scan(); this.targetColumns = targetColumns; this.parallelIteratorFactory = parallelIteratorFactory; this.sequenceManager = sequenceManager; this.projectTuples = projectTuples; this.noChildParentJoinOptimization = select.getHint().hasHint(Hint.NO_CHILD_PARENT_JOIN_OPTIMIZATION) || select.getHint().hasHint(Hint.USE_PERSISTENT_CACHE); this.usePersistentCache = select.getHint().hasHint(Hint.USE_PERSISTENT_CACHE); ConnectionQueryServices services = statement.getConnection().getQueryServices(); this.costBased = services.getProps().getBoolean(QueryServices.COST_BASED_OPTIMIZER_ENABLED, QueryServicesOptions.DEFAULT_COST_BASED_OPTIMIZER_ENABLED); scan.setLoadColumnFamiliesOnDemand(true); if (select.getHint().hasHint(Hint.NO_CACHE)) { scan.setCacheBlocks(false); } scan.setCaching(statement.getFetchSize()); this.originalScan = ScanUtil.newScan(scan); this.optimizeSubquery = optimizeSubquery; this.dataPlans = dataPlans == null ? Collections.<TableRef, QueryPlan>emptyMap() : dataPlans; }
scan.setLoadColumnFamiliesOnDemand(proto.getLoadColumnFamiliesOnDemand());
.setIsolationLevel(IsolationLevel.READ_COMMITTED) .setLimit(100) .setLoadColumnFamiliesOnDemand(false) .setMaxResultSize(100) .setMaxResultsPerColumnFamily(1000)
scan.setLoadColumnFamiliesOnDemand(proto.getLoadColumnFamiliesOnDemand());