@Test public void testKeysOnlyPredicate() { RangeSlicesQuery<String, String, Long> rangeSlicesQuery = HFactory.createRangeSlicesQuery(keyspace, se, se, le); QueryResult<OrderedRows<String, String, Long>> result = rangeSlicesQuery.setColumnFamily(cf).setKeys("", "").setReturnKeysOnly().execute(); OrderedRows<String, String, Long> orderedRows = result.get(); Row<String, String, Long> row = orderedRows.iterator().next(); assertNotNull(row.getKey()); assertEquals(0,row.getColumnSlice().getColumns().size()); result = rangeSlicesQuery.setColumnNames("birthyear","birthmonth").setRowCount(5).execute(); orderedRows = result.get(); row = orderedRows.iterator().next(); assertNotNull(row.getKey()); assertEquals(2,row.getColumnSlice().getColumns().size()); }
@Deprecated /* * When pulling deprecated methods out, do not remove this but change it to private constructor */ public KeyIterator(Keyspace keyspace, String columnFamily, Serializer<K> serializer, K start, K end, int maxRowCount) { query = HFactory .createRangeSlicesQuery(keyspace, serializer, stringSerializer, stringSerializer) .setColumnFamily(columnFamily) .setRange(null, null, false, maxColumnCount) .setRowCount(maxRowCount); endKey = end; if(maxRowCount < Integer.MAX_VALUE) { rowCount = maxRowCount+1; //to compensate the first entry skip (except in first run) } runQuery(start, end); }
@Test public void testInsertGetRemove() { RangeSlicesQuery<String, String, Long> rangeSlicesQuery = HFactory.createRangeSlicesQuery(keyspace, se, se, le); rangeSlicesQuery.addEqualsExpression("birthyear", 1975L); rangeSlicesQuery.setColumnNames("birthmonth"); rangeSlicesQuery.setReturnKeysOnly(); rangeSlicesQuery.setColumnFamily(cf); rangeSlicesQuery.setKeys("", ""); QueryResult<OrderedRows<String, String, Long>> result = rangeSlicesQuery.execute(); assertEquals(4, result.get().getList().size()); }
private void runQuery(K start, K end) { query.setKeys(start, end); if(!firstRun) { query.setRowCount(rowCount); } rowsIterator = null; QueryResult<OrderedRows<K, String, String>> result = query.execute(); OrderedRows<K, String, String> rows = (result != null) ? result.get() : null; rowsIterator = (rows != null) ? rows.iterator() : null; // we'll skip this first one, since it is the same as the last one from previous time we executed if (!firstRun && rowsIterator != null) rowsIterator.next(); firstRun = false; if (rowsIterator != null && !rowsIterator.hasNext()) { nextValue = null; // all done. our iterator's hasNext() will now return false; } else { findNext(true); } }
@Override public K getKey(final V value) throws DataAccessLayerException { RangeSlicesQuery<K, byte[], V> rq = HFactory.createRangeSlicesQuery( _keyspace, _serializer_k, BYTE_SERIALIZER, _serializer_v); rq.addEqualsExpression(COLUMN_NAME, value).setReturnKeysOnly() .setColumnFamily(_cf_name) .setColumnNames(COLUMN_NAME).setRowCount(1); final List<Row<K, byte[], V>> rows = rq.execute().get().getList(); return rows.isEmpty() ? null : _serializer_k.fromBytes((byte[])rows.get(0).getKey()); }
.setColumnFamily( family ) // .setRange( null, null, false, Integer.MAX_VALUE ) // .execute();
/** * A C query that should be handled by the OCSP index. * * @param query The query. * @param limit The maximum amount of results to return. * @return An iterator iterating over the query results. */ private Iterator<byte[][]> secundaryOCPSQuery(final byte[][] query, final int limit) { return new CAndPCSlicesQueryIterator( HFactory.createRangeSlicesQuery(_dataAccessLayerFactory.getKeyspace(), BYTE_SERIALIZER, COMPOSITE_SERIALIZER, BYTE_SERIALIZER) .setColumnFamily(OC_PS) .addEqualsExpression(C_COL, query[3]) .setRange(INCLUDE_ALL_COMPOSITE_LOWER_BOUND, INCLUDE_ALL_COMPOSITE_HIGHER_BOUND, false, limit) .setReturnKeysOnly(), limit, OC_PS, _dataAccessLayerFactory.getKeyspace(), _dictionary, false); }
.setColumnFamily( cassandraArchivaManager.getArtifactMetadataFamilyName() ) // .setColumnNames( ArtifactMetadataModel.COLUMNS ); // query = query.addGteExpression( WHEN_GATHERED.toString(), startTime.getTime() ); query = query.addLteExpression( WHEN_GATHERED.toString(), endTime.getTime() ); QueryResult<OrderedRows<String, String, Long>> result = query.execute();
@Test public void testFilter() { RangeSlicesQuery<String, Integer, Integer> query = HFactory.createRangeSlicesQuery(keyspace, se, is, is); query.setColumnFamily(CF); query.setRange(null, null, false, 10); SliceFilter<Row<String, Integer, Integer>> filter = new SliceFilter<Row<String, Integer, Integer>>() { @Override public boolean accept(Row<String, Integer, Integer> row) { return Integer.parseInt(row.getKey().replaceAll("^k", "")) < 10; } }; assertKeys(query, 9, null, null, filter); }
.setColumnFamily( cf ) // .setColumnNames( REPOSITORY_NAME.toString() ) // .addEqualsExpression( REPOSITORY_NAME.toString(), artifactMetadataModel.getRepositoryId() ) // .addEqualsExpression( NAMESPACE_ID.toString(), artifactMetadataModel.getNamespace() ) // .addEqualsExpression( PROJECT_ID.toString(), artifactMetadataModel.getProject() ) // .addEqualsExpression( PROJECT_VERSION.toString(), artifactMetadataModel.getProjectVersion() ) // .addEqualsExpression( FACET_ID.toString(), facetId ) // .execute();
@Override public boolean hasNext() { if (iterator == null) { // First time through iterator = Iterators.peekingIterator(query.execute().get().getList().iterator()); } else if (!iterator.hasNext() && rows == query.getRowCount()) { // only need to do another query if maximum rows were retrieved query.setKeys(startKey, endKey); iterator = Iterators.peekingIterator(query.execute().get().getList().iterator()); rows = 0; if (iterator.hasNext()) { // First element is startKey which was the last element on the previous query result - skip it next(); } } while(filter != null && iterator != null && iterator.hasNext() && !filter.accept(iterator.peek())) { next(); if(!iterator.hasNext() && rows == query.getRowCount()) { refresh(); } } return iterator.hasNext(); }
public RangeSlicesIterator(RangeSlicesQuery<K, N, V> query, K startKey, K endKey) { this.query = query; this.startKey = startKey; this.endKey = endKey; this.query.setKeys(startKey, endKey); }
@Override public K getKey(final V value) throws DataAccessLayerException { RangeSlicesQuery<K, byte[], V> rq = HFactory.createRangeSlicesQuery( _keyspace, _serializer_k, BYTE_SERIALIZER, _serializer_v); rq.addEqualsExpression(COLUMN_NAME, value).setReturnKeysOnly() .setColumnFamily(_cf_name) .setColumnNames(COLUMN_NAME).setRowCount(1); final List<Row<K, byte[], V>> rows = rq.execute().get().getList(); return rows.isEmpty() ? null : _serializer_k.fromBytes((byte[])rows.get(0).getKey()); }
.setColumnFamily( family ) // .setRange( null, null, false, Integer.MAX_VALUE ) // .execute();
/** * A C query that should be handled by the OCSP index. * * @param query The query. * @param limit The maximum amount of results to return. * @return An iterator iterating over the query results. */ private Iterator<byte[][]> secundaryOCPSQuery(final byte[][] query, final int limit) { return new CAndPCSlicesQueryIterator( HFactory.createRangeSlicesQuery(_dataAccessLayerFactory.getKeyspace(), BYTE_SERIALIZER, COMPOSITE_SERIALIZER, BYTE_SERIALIZER) .setColumnFamily(OC_PS) .addEqualsExpression(C_COL, query[3]) .setRange(INCLUDE_ALL_COMPOSITE_LOWER_BOUND, INCLUDE_ALL_COMPOSITE_HIGHER_BOUND, false, limit) .setReturnKeysOnly(), limit, OC_PS, _dataAccessLayerFactory.getKeyspace(), _dictionary, false); }
private void runQuery(K start, K end) { query.setKeys(start, end); if(!firstRun) { query.setRowCount(rowCount); } rowsIterator = null; QueryResult<OrderedRows<K, String, String>> result = query.execute(); OrderedRows<K, String, String> rows = (result != null) ? result.get() : null; rowsIterator = (rows != null) ? rows.iterator() : null; // we'll skip this first one, since it is the same as the last one from previous time we executed if (!firstRun && rowsIterator != null) rowsIterator.next(); firstRun = false; if (rowsIterator != null && !rowsIterator.hasNext()) { nextValue = null; // all done. our iterator's hasNext() will now return false; } else { findNext(true); } }
private void runQuery(K start, K end) { query.setKeys(start, end); rowsIterator = null; QueryResult<OrderedRows<K, String, String>> result = query.execute(); OrderedRows<K, String, String> rows = (result != null) ? result.get() : null; rowsIterator = (rows != null) ? rows.iterator() : null; // we'll skip this first one, since it is the same as the last one from previous time we executed if (!firstRun && rowsIterator != null) rowsIterator.next(); firstRun = false; if (!rowsIterator.hasNext()) { nextValue = null; // all done. our iterator's hasNext() will now return false; } else { findNext(true); } }
@Test public void testIterator() { RangeSlicesQuery<String, Integer, Integer> query = HFactory.createRangeSlicesQuery(keyspace, se, is, is); query.setColumnFamily(CF); query.setRange(null, null, false, 10); assertKeys(query, 3, null, "k11", null); assertKeys(query, 10, "k2", null, null); assertKeys(query, 21, null, null, null); }
.setColumnFamily( cassandraArchivaManager.getProjectVersionMetadataFamilyName() ) // .setColumnNames( VERSION.toString() ) // .addEqualsExpression( REPOSITORY_NAME.toString(), repositoryId ) // .addEqualsExpression( NAMESPACE_ID.toString(), namespaceId ) // .addEqualsExpression( PROJECT_ID.toString(), projectId ) // .addEqualsExpression( PROJECT_VERSION.toString(), projectVersion ) // .addEqualsExpression( VERSION.toString(), artifactMeta.getVersion() ) // .execute();