public SliceQuery getQuery(RelationCategory resultType, boolean querySystemTypes) { Preconditions.checkNotNull(resultType); StaticBuffer[] bound = getBounds(resultType, querySystemTypes); return new SliceQuery(bound[0], bound[1]); }
@Override public SliceQuery updateLimit(int newLimit) { return new SliceQuery(sliceStart, sliceEnd).setLimit(newLimit); }
public static SliceQuery getQuery(int startCol, int endCol) { return new SliceQuery(BufferUtil.getIntBuffer(startCol),BufferUtil.getIntBuffer(endCol)); }
public static KeyIterator getKeys(KeyColumnValueStore store, StoreFeatures features, int keyLength, int sliceLength, StoreTransaction txh) throws BackendException { return getKeys(store,new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(sliceLength)).setLimit(1), features,keyLength,txh); }
@Test public void testGetSlices() throws Exception { if (!manager.getFeatures().hasMultiQuery()) return; populateDBWith100Keys(); tx.commit(); tx = startTx(); final List<StaticBuffer> keys = new ArrayList<>(100); for (int i = 1; i <= 100; i++) { keys.add(KeyColumnValueStoreUtil.longToByteBuffer(i)); } StaticBuffer start = KeyColumnValueStoreUtil.stringToByteBuffer("a"); StaticBuffer end = KeyColumnValueStoreUtil.stringToByteBuffer("d"); Map<StaticBuffer,EntryList> results = store.getSlice(keys, new SliceQuery(start, end), tx); Assert.assertEquals(100, results.size()); for (List<Entry> entries : results.values()) { Assert.assertEquals(3, entries.size()); } }
SliceQuery sq = new SliceQuery(startCol, endCol); SliceQuery sq = new SliceQuery(startCol, endCol);
@Test @Category({UnorderedKeyStoreTests.class}) public void testGetKeysWithSliceQuery() throws Exception { if (!manager.getFeatures().hasUnorderedScan()) { log.warn("Can't test key-unordered features on incompatible store. " + "This warning could indicate reduced test coverage and " + "a broken JUnit configuration. Skipping test {}.", name.getMethodName()); return; } populateDBWith100Keys(); tx.commit(); tx = startTx(); KeyIterator keyIterator = store.getKeys( new SliceQuery(new ReadArrayBuffer("b".getBytes()), new ReadArrayBuffer("c".getBytes())), tx); examineGetKeysResults(keyIterator, 0, 100); }
StaticBuffer start = StaticArrayBuffer.of(Hex.hexToBytes(queryTokens[0])); StaticBuffer end = StaticArrayBuffer.of(Hex.hexToBytes(queryTokens[1])); SliceQuery query = new SliceQuery(start, end); int limit = Integer.valueOf(queryTokens[2]); if (0 <= limit) {
StaticBuffer end = KeyColumnValueStoreUtil.stringToByteBuffer("d"); EntryList results = storeWithTTL.getSlice(new KeySliceQuery(key, new SliceQuery(start, end)), tx); Assert.assertEquals(3, results.size()); tx = startTx(); results = storeWithTTL.getSlice(new KeySliceQuery(key, new SliceQuery(start, end)), tx); Assert.assertEquals(0, results.size()); // should be empty if TTL was applied properly
ImmutableList.of(new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)))); ScanMetrics result1 = runner.run(new SimpleScanJob(), conf1, SimpleScanJob.class.getName() + "#ROOT_NS"); assertEquals(keys,result1.getCustom(SimpleScanJob.KEY_COUNT)); Configuration conf2 = getJobConf(ImmutableList.of(new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)).setLimit(5))); ScanMetrics result2 = runner.run(new SimpleScanJob(), conf2, SimpleScanJob.class.getName() + "#ROOT_NS"); assertEquals(keys,result2.getCustom(SimpleScanJob.KEY_COUNT)); assertEquals(keys*5,result2.getCustom(SimpleScanJob.TOTAL_COUNT)); Configuration conf3 = getJobConf(ImmutableList.of(new SliceQuery(KeyValueStoreUtil.getBuffer(0), KeyValueStoreUtil.getBuffer(5)))); ScanMetrics result3 = runner.run(new SimpleScanJob(), conf3, SimpleScanJob.class.getName() + "#ROOT_NS"); assertEquals(keys,result3.getCustom(SimpleScanJob.KEY_COUNT)); new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)).setLimit(1), new SliceQuery(KeyValueStoreUtil.getBuffer(0), KeyValueStoreUtil.getBuffer(5)))); ScanMetrics result4 = runner.run(new SimpleScanJob(), conf4, SimpleScanJob.class.getName() + "#ROOT_NS"); assertEquals(keys,result4.getCustom(SimpleScanJob.KEY_COUNT)); new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)).setLimit(1), new SliceQuery(KeyValueStoreUtil.getBuffer(2), KeyValueStoreUtil.getBuffer(4)), new SliceQuery(KeyValueStoreUtil.getBuffer(6), KeyValueStoreUtil.getBuffer(8)), new SliceQuery(KeyValueStoreUtil.getBuffer(10), KeyValueStoreUtil.getBuffer(20)).setLimit(4))); ImmutableList.of(new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)).setLimit(5)), 2L); ScanMetrics result6 = runner.run(new SimpleScanJob(), conf6, SimpleScanJob.class.getName() + "#ROOT_NS"); assertEquals(keys/2,result6.getCustom(SimpleScanJob.KEY_COUNT)); new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128)).setLimit(1), new SliceQuery(KeyValueStoreUtil.getBuffer(2), KeyValueStoreUtil.getBuffer(4)),
public void testDataSequential() throws Exception { loadData(200000,2); close(); KeyColumnValueStoreManager manager = openStorageManager(); KeyColumnValueStore store = manager.openDatabase(Backend.EDGESTORE_NAME); SliceQuery query = new SliceQuery(BufferUtil.zeroBuffer(8),BufferUtil.oneBuffer(8)); query.setLimit(2); Stopwatch watch = Stopwatch.createStarted(); StoreTransaction txh = manager.beginTransaction(StandardBaseTransactionConfig.of(TimestampProviders.MILLI)); KeyIterator iterator = store.getKeys(query,txh); int numV = 0; while(iterator.hasNext()) { iterator.next(); RecordIterator<Entry> entries = iterator.getEntries(); assertEquals(2, Iterators.size(entries)); numV++; } iterator.close(); txh.commit(); System.out.println("Time taken: " + watch.elapsed(TimeUnit.MILLISECONDS)); System.out.println("Num Vertices: " + numV); store.close(); manager.close(); }
@Override public List<SliceQuery> getQueries() { if (isGlobalGraphIndex()) { //Everything return ImmutableList.of(new SliceQuery(BufferUtil.zeroBuffer(1), BufferUtil.oneBuffer(128))); } else { RelationTypeIndexWrapper wrapper = (RelationTypeIndexWrapper)index; InternalRelationType wrappedType = wrapper.getWrappedType(); Direction direction=null; for (Direction dir : Direction.values()) if (wrappedType.isUnidirected(dir)) direction=dir; assert direction!=null; StandardJanusGraphTx tx = (StandardJanusGraphTx)graph.get().buildTransaction().readOnly().start(); try { QueryContainer qc = new QueryContainer(tx); qc.addQuery().type(wrappedType).direction(direction).relations(); return qc.getSliceQueries(); } finally { tx.rollback(); } } }
final SliceQuery columnSlice = new SliceQuery(BufferUtil.zeroBuffer(8), BufferUtil.oneBuffer(8)).setLimit(1);
return new SliceQuery(sliceStart, sliceEnd);