private List<PSchema> buildSchemas(List<byte[]> keys, Region region, long clientTimeStamp, ImmutableBytesPtr cacheKey) throws IOException, SQLException { List<KeyRange> keyRanges = Lists.newArrayListWithExpectedSize(keys.size()); for (byte[] key : keys) { byte[] stopKey = ByteUtil.concat(key, QueryConstants.SEPARATOR_BYTE_ARRAY); ByteUtil.nextKey(stopKey, stopKey.length); keyRanges.add(PVarbinary.INSTANCE.getKeyRange(key, true, stopKey, false)); } Scan scan = new Scan(); scan.setTimeRange(MIN_TABLE_TIMESTAMP, clientTimeStamp); ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr, PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PSchema> schemas = new ArrayList<PSchema>(); PSchema schema = null; try (RegionScanner scanner = region.getScanner(scan)) { for (int i = 0; i < keys.size(); i++) { schema = null; schema = getSchema(scanner, clientTimeStamp); if (schema == null) { return null; } metaDataCache.put(cacheKey, schema); schemas.add(schema); } return schemas; } }
ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr,PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PFunction> functions = new ArrayList<PFunction>();
SkipScanFilter filter = scanRanges.getSkipScanFilter(); if (isRollback) { filter = new SkipScanFilter(filter,true);
private static void assertIntersect(ScanRanges ranges, String lowerRange, String upperRange, String... expectedPoints) { List<KeyRange> expectedKeys = points(expectedPoints); Collections.sort(expectedKeys,KeyRange.COMPARATOR); Scan scan = new Scan(); scan.setFilter(ranges.getSkipScanFilter()); byte[] startKey = lowerRange == null ? KeyRange.UNBOUND : PVarchar.INSTANCE.toBytes(lowerRange); byte[] stopKey = upperRange == null ? KeyRange.UNBOUND : PVarchar.INSTANCE.toBytes(upperRange); Scan newScan = ranges.intersectScan(scan, startKey, stopKey, 0, true); if (expectedPoints.length == 0) { assertNull(newScan); } else { assertNotNull(newScan); SkipScanFilter filter = (SkipScanFilter)newScan.getFilter(); assertEquals(expectedKeys, filter.getSlots().get(0)); } }
ScanUtil.andFilterAtBeginning(scan, scanRanges.getSkipScanFilter());
private List<PSchema> buildSchemas(List<byte[]> keys, Region region, long clientTimeStamp, ImmutableBytesPtr cacheKey) throws IOException, SQLException { List<KeyRange> keyRanges = Lists.newArrayListWithExpectedSize(keys.size()); for (byte[] key : keys) { byte[] stopKey = ByteUtil.concat(key, QueryConstants.SEPARATOR_BYTE_ARRAY); ByteUtil.nextKey(stopKey, stopKey.length); keyRanges.add(PVarbinary.INSTANCE.getKeyRange(key, true, stopKey, false)); } Scan scan = new Scan(); scan.setTimeRange(MIN_TABLE_TIMESTAMP, clientTimeStamp); ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr, PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PSchema> schemas = new ArrayList<PSchema>(); PSchema schema = null; try (RegionScanner scanner = region.getScanner(scan)) { for (int i = 0; i < keys.size(); i++) { schema = null; schema = getSchema(scanner, clientTimeStamp); if (schema == null) { return null; } metaDataCache.put(cacheKey, schema); schemas.add(schema); } return schemas; } }
private List<PSchema> buildSchemas(List<byte[]> keys, Region region, long clientTimeStamp, ImmutableBytesPtr cacheKey) throws IOException, SQLException { List<KeyRange> keyRanges = Lists.newArrayListWithExpectedSize(keys.size()); for (byte[] key : keys) { byte[] stopKey = ByteUtil.concat(key, QueryConstants.SEPARATOR_BYTE_ARRAY); ByteUtil.nextKey(stopKey, stopKey.length); keyRanges.add(PVarbinary.INSTANCE.getKeyRange(key, true, stopKey, false)); } Scan scan = new Scan(); scan.setTimeRange(MIN_TABLE_TIMESTAMP, clientTimeStamp); ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr, PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PSchema> schemas = new ArrayList<PSchema>(); PSchema schema = null; try (RegionScanner scanner = region.getScanner(scan)) { for (int i = 0; i < keys.size(); i++) { schema = null; schema = getSchema(scanner, clientTimeStamp); if (schema == null) { return null; } metaDataCache.put(cacheKey, schema); schemas.add(schema); } return schemas; } }
ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr,PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PFunction> functions = new ArrayList<PFunction>();
ScanRanges scanRanges = ScanRanges.createPointLookup(keyRanges); scanRanges.initializeScan(scan); scan.setFilter(scanRanges.getSkipScanFilter()); Cache<ImmutableBytesPtr,PMetaDataEntity> metaDataCache = GlobalCache.getInstance(this.env).getMetaDataCache(); List<PFunction> functions = new ArrayList<PFunction>();
SkipScanFilter filter = scanRanges.getSkipScanFilter(); if (isRollback) { filter = new SkipScanFilter(filter,true);
SkipScanFilter filter = scanRanges.getSkipScanFilter(); if (isRollback) { filter = new SkipScanFilter(filter,true);
ScanUtil.andFilterAtBeginning(scan, scanRanges.getSkipScanFilter());
ScanUtil.andFilterAtBeginning(scan, scanRanges.getSkipScanFilter());