q.setColumnFamily( columnFamily.toString() ); q.setKey( bytebuffer( key ) ); q.setRange( null, null, false, ALL_COUNT ); QueryResult<ColumnSlice<N, V>> r = q.execute(); ColumnSlice<N, V> slice = r.get();
@Override public Set<String> getQueueCounterNames( String queuePath ) throws Exception { Set<String> names = new HashSet<String>(); Keyspace ko = cass.getApplicationKeyspace( applicationId ); SliceQuery<String, String, ByteBuffer> q = createSliceQuery( ko, se, se, be ); q.setColumnFamily( QueuesCF.QUEUE_DICTIONARIES.toString() ); q.setKey( CassandraPersistenceUtils.key( getQueueId( queuePath ), DICTIONARY_COUNTERS ).toString() ); q.setRange( null, null, false, ALL_COUNT ); List<HColumn<String, ByteBuffer>> columns = q.execute().get().getColumns(); for ( HColumn<String, ByteBuffer> column : columns ) { names.add( column.getName() ); } return names; }
public boolean hasOutstandingTransactions( UUID queueId, UUID consumerId ) { SliceQuery<ByteBuffer, UUID, UUID> q = createSliceQuery( ko, be, ue, ue ); q.setColumnFamily( CONSUMER_QUEUE_TIMEOUTS.getColumnFamily() ); q.setKey( getQueueClientTransactionKey( queueId, consumerId ) ); q.setRange( null, null, false, 1 ); return q.execute().get().getColumns().size() > 0; }
q.setColumnFamily( QUEUE_INBOX.getColumnFamily() ); q.setKey( getQueueShardRowKey( queueId, current_ts_shard ) ); q.setRange( lastValue, finish_uuid, params.reversed, params.limit + 1 );
q.setRange( start_bytes, finish_bytes, reversed, count ); QueryResult<ColumnSlice<ByteBuffer, ByteBuffer>> r = q.execute(); ColumnSlice<ByteBuffer, ByteBuffer> slice = r.get();
q.setColumnFamily( CONSUMER_QUEUE_TIMEOUTS.getColumnFamily() ); q.setKey( getQueueClientTransactionKey( queueId, consumerId ) ); q.setRange( params.startId, startTimeUUID, false, params.limit + 1 );
@Override public QueueSet getSubscribers( String publisherQueuePath, String firstSubscriberQueuePath, int limit ) { UUID publisherQueueId = getQueueId( publisherQueuePath ); Keyspace ko = cass.getApplicationKeyspace( applicationId ); if ( firstSubscriberQueuePath != null ) { limit += 1; } List<HColumn<String, UUID>> columns = createSliceQuery( ko, ue, se, ue ).setKey( publisherQueueId ) .setColumnFamily( QUEUE_SUBSCRIBERS.getColumnFamily() ) .setRange( normalizeQueuePath( firstSubscriberQueuePath ), null, false, limit + 1 ).execute().get() .getColumns(); QueueSet queues = new QueueSet(); int count = Math.min( limit, columns.size() ); if ( columns != null ) { for ( int i = firstSubscriberQueuePath != null ? 1 : 0; i < count; i++ ) { HColumn<String, UUID> column = columns.get( i ); queues.addQueue( column.getName(), column.getValue() ); } } if ( columns.size() > limit ) { queues.setMore( true ); } return queues; }
@Override public QueueSet getSubscriptions( String subscriberQueuePath, String firstSubscriptionQueuePath, int limit ) { UUID subscriberQueueId = getQueueId( subscriberQueuePath ); Keyspace ko = cass.getApplicationKeyspace( applicationId ); if ( firstSubscriptionQueuePath != null ) { limit += 1; } List<HColumn<String, UUID>> columns = createSliceQuery( ko, ue, se, ue ).setKey( subscriberQueueId ) .setColumnFamily( QUEUE_SUBSCRIPTIONS.getColumnFamily() ) .setRange( normalizeQueuePath( firstSubscriptionQueuePath ), null, false, limit + 1 ).execute().get() .getColumns(); QueueSet queues = new QueueSet(); int count = Math.min( limit, columns.size() ); if ( columns != null ) { for ( int i = firstSubscriptionQueuePath != null ? 1 : 0; i < count; i++ ) { HColumn<String, UUID> column = columns.get( i ); queues.addQueue( column.getName(), column.getValue() ); } } if ( columns.size() > limit ) { queues.setMore( true ); } return queues; }
public Queue getQueue( String queuePath, UUID queueId ) { SliceQuery<UUID, String, ByteBuffer> q = createSliceQuery( cass.getApplicationKeyspace( applicationId ), ue, se, be ); q.setColumnFamily( QUEUE_PROPERTIES.getColumnFamily() ); q.setKey( queueId ); q.setRange( null, null, false, ALL_COUNT ); QueryResult<ColumnSlice<String, ByteBuffer>> r = q.execute(); ColumnSlice<String, ByteBuffer> slice = r.get(); List<HColumn<String, ByteBuffer>> results = slice.getColumns(); return deserializeQueue( results ); }
@Override public Message getMessage( UUID messageId ) { SliceQuery<UUID, String, ByteBuffer> q = createSliceQuery( cass.getApplicationKeyspace( applicationId ), ue, se, be ); q.setColumnFamily( MESSAGE_PROPERTIES.getColumnFamily() ); q.setKey( messageId ); q.setRange( null, null, false, ALL_COUNT ); QueryResult<ColumnSlice<String, ByteBuffer>> r = q.execute(); ColumnSlice<String, ByteBuffer> slice = r.get(); List<HColumn<String, ByteBuffer>> results = slice.getColumns(); return deserializeMessage( results ); }
.setRange( DynamicComposite.toByteBuffer( entryName ), setGreaterThanEqualityFlag( new DynamicComposite( entryName ) ).serialize(), false, INDEX_ENTRY_LIST_COUNT ).execute().get().getColumns();
createSliceQuery( ko, be, be, be ).setColumnFamily( PROPERTY_INDEX.getColumnFamily() ) .setKey( bytebuffer( key( queueId, current_ts_shard, slice.getPropertyName() ) ) ) .setRange( start, finish, false, DEFAULT_SEARCH_COUNT ).execute().get().getColumns();
/** * Constructor * * @param query Base SliceQuery to execute * @param start Starting point of the range * @param finish Finish point of the range. Allows for a dynamically * determined point * @param reversed Whether or not the columns should be reversed * @param count the amount of columns to retrieve per batch */ public ColumnSliceIterator(SliceQuery<K, N, V> query, N start, ColumnSliceFinish<N> finish, boolean reversed, int count) { this.query = query; this.start = start; this.finish = finish; this.reversed = reversed; this.count = count; this.query.setRange(this.start, this.finish.function(), this.reversed, this.count); }
private void refresh() { query.setRange(start, finish.function(), reversed, count); columns = 0; List<HColumn<N, V>> list = query.execute().get().getColumns(); iterator = Iterators.peekingIterator(list.iterator()); if (iterator.hasNext()) { // The lower bound column may have been removed prior to the query executing, // so check to see if the first column returned by the current query is the same // as the lower bound column. If both columns are the same, skip the column N first = list.get(0).getName(); if (first.equals(start)) { next(); } } }
.setColumnFamily( PROPERTY_INDEX.getColumnFamily() ) .setKey( bytebuffer( key( publisherQueueId, slice.getPropertyName() ) ) ) .setRange( start, finish, slice.isReversed(), count ).execute().get().getColumns();
/** * Reads all existing locks for this lock path * * @param lockPath * a lock path * @return a list of locks waiting on this lockpath */ private Map<String, String> readExistingLocks(HLock lock) { // logger.debug("Started reading all columns"); SliceQuery<String, String, String> sliceQuery = HFactory .createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()) .setColumnFamily(lockManagerConfigurator.getLockManagerCF()).setKey(lock.getPath()); //we only care about the first 2 locks, anything else is simply queued. Select 10 just to be safe if the clients aren't ordered properly sliceQuery.setRange(null, null, false, maxSelectSize); QueryResult<ColumnSlice<String, String>> queryResult = sliceQuery.execute(); // logger.debug("Finished reading all columns"); return getResults(queryResult); }
q.setColumnNames(cfMapDef.getSliceColumnNameArr()); } else { q.setRange("", "", false, maxNumColumns);
@Test public void testNullKeyInvalidQuery() { SliceQuery<String, String, Long> sq = HFactory.createSliceQuery(keyspace, se, se, le); sq.setColumnFamily(cf); sq.setRange("birthyear1", "birthyear4", false, 100); // we are missing sq.setKey(...); try { sq.execute(); fail(); } catch (HInvalidRequestException he) { // ok! } sq.setKey("getSliceTest_key3"); QueryResult<ColumnSlice<String, Long>> result = sq.execute(); assertEquals(4,result.get().getColumns().size()); } }
q.setKey("testSliceQuery0"); q.setRange("testSliceQuery2", "testSliceQuery1", true, 100); r = q.execute(); assertNotNull(r);
@Override public QueryResult<ColumnSlice<String,String>> execute() { SliceQuery<String, String, String> sliceQuery = HFactory.createSliceQuery(keyspace, stringSerializer, stringSerializer, stringSerializer); sliceQuery.setColumnFamily("AreaCode"); sliceQuery.setKey("512"); // change the order argument to 'true' to get the last 2 columns in descending order // gets the first 4 columns "between" Austin and Austin__204 according to comparator sliceQuery.setRange("Austin", "Austin__204", false, 5); QueryResult<ColumnSlice<String, String>> result = sliceQuery.execute(); return result; }