protected UserScanQueryMatcher(Scan scan, ScanInfo scanInfo, ColumnTracker columns, boolean hasNullColumn, long oldestUnexpiredTS, long now) { super(createStartKey(scan, scanInfo), scanInfo, columns, oldestUnexpiredTS, now); this.hasNullColumn = hasNullColumn; this.filter = scan.getFilter(); if (this.filter != null) { this.versionsAfterFilter = scan.isRaw() ? scan.getMaxVersions() : Math.min(scan.getMaxVersions(), scanInfo.getMaxVersions()); } else { this.versionsAfterFilter = 0; } this.stopRow = scan.getStopRow(); TimeRange timeRange = scan.getColumnFamilyTimeRange().get(scanInfo.getFamily()); if (timeRange == null) { this.tr = scan.getTimeRange(); } else { this.tr = timeRange; } }
public ResultScanner getScanner(Scan scan) throws IOException { final List<Result> ret = new ArrayList<Result>(); byte[] st = scan.getStartRow(); byte[] sp = scan.getStopRow(); Filter filter = scan.getFilter();
@Test public void testScan() throws Exception { Scan desScan = ProtobufUtil.toScan(scanProto); assertTrue(Bytes.equals(scan.getStartRow(), desScan.getStartRow())); assertTrue(Bytes.equals(scan.getStopRow(), desScan.getStopRow())); assertEquals(scan.getCacheBlocks(), desScan.getCacheBlocks()); Set<byte[]> set = null; scanProto = ProtobufUtil.toScan(scan); desScan = ProtobufUtil.toScan(scanProto); Filter f = desScan.getFilter(); assertTrue(f instanceof PrefixFilter);
@Test public void testNullInScanKey() throws Exception { // Select columns in PK String query = "select val from ptsdb where inst is null and host='a'"; List<Object> binds = Collections.emptyList(); Scan scan = compileQuery(query, binds); // Projects column family with not null column assertNull(scan.getFilter()); assertEquals(1,scan.getFamilyMap().keySet().size()); assertArrayEquals(Bytes.toBytes(SchemaUtil.normalizeIdentifier(QueryConstants.DEFAULT_COLUMN_FAMILY)), scan.getFamilyMap().keySet().iterator().next()); }
@Test public void testExportScan() throws Exception { int version = 100; assertEquals(startTime, scan.getTimeRange().getMin()); assertEquals(endTime, scan.getTimeRange().getMax()); assertEquals(true, (scan.getFilter() instanceof PrefixFilter)); assertEquals(0, Bytes.compareTo(((PrefixFilter) scan.getFilter()).getPrefix(), Bytes.toBytesBinary(prefix))); String[] argsWithLabels = { "-D " + ExportUtils.EXPORT_VISIBILITY_LABELS + "=" + label_0 + "," + label_1, assertEquals(startTime, scanWithLabels.getTimeRange().getMin()); assertEquals(endTime, scanWithLabels.getTimeRange().getMax()); assertEquals(true, (scanWithLabels.getFilter() instanceof PrefixFilter)); assertEquals(0, Bytes.compareTo(((PrefixFilter) scanWithLabels.getFilter()).getPrefix(), Bytes.toBytesBinary(prefix))); assertEquals(2, scanWithLabels.getAuthorizations().getLabels().size()); assertEquals(label_0, scanWithLabels.getAuthorizations().getLabels().get(0));
public static void assertEmptyScanKey(Scan scan) { assertNull(scan.getFilter()); assertArrayEquals(ByteUtil.EMPTY_BYTE_ARRAY, scan.getStartRow()); assertArrayEquals(ByteUtil.EMPTY_BYTE_ARRAY, scan.getStopRow()); assertEquals(null,scan.getFilter()); }
@Test public void testGetToScan() throws Exception { Get get = new Get(Bytes.toBytes(1)); assertEquals(get.getCacheBlocks(), scan.getCacheBlocks()); assertEquals(get.getConsistency(), scan.getConsistency()); assertEquals(get.getFilter(), scan.getFilter()); assertEquals(get.getId(), scan.getId()); assertEquals(get.getIsolationLevel(), scan.getIsolationLevel());
public static TScan scanFromHBase(Scan in) throws IOException { TScan out = new TScan(); out.setStartRow(in.getStartRow()); out.setStopRow(in.getStopRow()); out.setCaching(in.getCaching()); out.setMaxVersions(in.getMaxVersions()); if (in.getFilter() != null) { try { out.setFilterBytes(in.getFilter().toByteArray()); } catch (IOException ioE) { throw new RuntimeException(ioE);
this.maxResultSize = scan.getMaxResultSize(); if (scan.hasFilter()) { this.filter = new FilterWrapper(scan.getFilter()); } else { this.filter = null; this.stopRow = scan.getStopRow(); this.includeStopRow = scan.includeStopRow();
public static void assertEmptyScanKey(Scan scan) { assertNull(scan.getFilter()); assertArrayEquals(ByteUtil.EMPTY_BYTE_ARRAY, scan.getStartRow()); assertArrayEquals(ByteUtil.EMPTY_BYTE_ARRAY, scan.getStopRow()); assertEquals(null,scan.getFilter()); }
startRow = scan.getStartRow(); includeStartRow = scan.includeStartRow(); stopRow = scan.getStopRow(); includeStopRow = scan.includeStopRow(); maxVersions = scan.getMaxVersions(); maxResultSize = scan.getMaxResultSize(); cacheBlocks = scan.getCacheBlocks(); filter = scan.getFilter(); // clone? loadColumnFamiliesOnDemand = scan.getLoadColumnFamiliesOnDemandValue(); consistency = scan.getConsistency();
@Test public void testSubstrSetScanKey() throws Exception { String query = "SELECT inst FROM ptsdb WHERE substr(inst, 0, 3) = 'abc'"; List<Object> binds = Collections.emptyList(); Scan scan = compileQuery(query, binds); assertArrayEquals(Bytes.toBytes("abc"), scan.getStartRow()); assertArrayEquals(ByteUtil.nextKey(Bytes.toBytes("abc")), scan.getStopRow()); assertTrue(scan.getFilter() == null); // Extracted. }
model.setStartRow(scan.getStartRow()); model.setEndRow(scan.getStopRow()); Map<byte [], NavigableSet<byte []>> families = scan.getFamilyMap(); if (families != null) { model.setMaxVersions(maxVersions); Filter filter = scan.getFilter(); if (filter != null) { model.setFilter(stringifyFilter(filter));
@Test public void testRTrimSetScanKey() throws Exception { String query = "SELECT inst FROM ptsdb WHERE rtrim(inst) = 'abc'"; List<Object> binds = Collections.emptyList(); Scan scan = compileQuery(query, binds); assertArrayEquals(Bytes.toBytes("abc"), scan.getStartRow()); assertArrayEquals(ByteUtil.nextKey(Bytes.toBytes("abc ")), scan.getStopRow()); assertNotNull(scan.getFilter()); }
byte[] startRow = scan.getStartRow(); if (startRow != null && startRow.length > 0) { scanBuilder.setStartRow(ByteStringer.wrap(startRow)); byte[] stopRow = scan.getStopRow(); if (stopRow != null && stopRow.length > 0) { scanBuilder.setStopRow(ByteStringer.wrap(stopRow)); scanBuilder.setFilter(ProtobufUtil.toFilter(scan.getFilter()));
@Test public void testMultipleNonEqualitiesPkColumn() throws SQLException { String tenantId = "000000000000001"; String keyPrefix = "002"; String query = "select * from atable where organization_id >= '" + tenantId + "' AND substr(entity_id,1,3) > '" + keyPrefix + "'"; Scan scan = new Scan(); List<Object> binds = Collections.emptyList(); compileStatement(query, scan, binds); assertNotNull(scan.getFilter()); assertArrayEquals(PDataType.VARCHAR.toBytes(tenantId), scan.getStartRow()); assertArrayEquals(HConstants.EMPTY_END_ROW, scan.getStopRow()); }
byte[] startRow = scan.getStartRow(); if (startRow != null && startRow.length > 0) { scanBuilder.setStartRow(UnsafeByteOperations.unsafeWrap(startRow)); byte[] stopRow = scan.getStopRow(); if (stopRow != null && stopRow.length > 0) { scanBuilder.setStopRow(UnsafeByteOperations.unsafeWrap(stopRow)); scanBuilder.setFilter(ProtobufUtil.toFilter(scan.getFilter()));
@Test public void testScanCopyConstructor() throws Exception { Scan scan = new Scan(); assertEquals(scan.getFamilies()[0], scanCopy.getFamilies()[0]); assertEquals(scan.getFamilyMap(), scanCopy.getFamilyMap()); assertEquals(scan.getFilter(), scanCopy.getFilter()); assertEquals(scan.getId(), scanCopy.getId()); assertEquals(scan.getIsolationLevel(), scanCopy.getIsolationLevel()); assertEquals(scan.getReplicaId(), scanCopy.getReplicaId()); assertEquals(scan.getRowOffsetPerColumnFamily(), scanCopy.getRowOffsetPerColumnFamily()); assertEquals(scan.getStartRow(), scanCopy.getStartRow()); assertEquals(scan.getStopRow(), scanCopy.getStopRow()); assertEquals(scan.getTimeRange(), scanCopy.getTimeRange());
@Test public void testSubstrSetScanKey() throws Exception { String query = "SELECT inst FROM ptsdb WHERE substr(inst, 0, 3) = 'abc'"; List<Object> binds = Collections.emptyList(); Scan scan = compileQuery(query, binds); assertArrayEquals(ByteUtil.concat(Bytes.toBytes("abc")), scan.getStartRow()); assertArrayEquals(ByteUtil.concat(Bytes.toBytes("abd"),QueryConstants.SEPARATOR_BYTE_ARRAY), scan.getStopRow()); assertTrue(scan.getFilter() == null); // Extracted. }
public static void assertDegenerate(Scan scan) { assertNull(scan.getFilter()); assertArrayEquals(KeyRange.EMPTY_RANGE.getLowerRange(), scan.getStartRow()); assertArrayEquals(KeyRange.EMPTY_RANGE.getLowerRange(), scan.getStopRow()); assertEquals(null,scan.getFilter()); }