@Override public boolean isReverseOrder() { return filter.isReversed(); }
@Override public boolean isReverseOrder() { return filter.isReversed(); }
@Override public boolean isReverseOrder() { return filter.isReversed(); }
@Override public boolean isReverseOrder() { return filter.isReversed(); }
private Comparator<Clusterable> comparator() { return filter.isReversed() ? sstable.metadata.comparator.reversed() : sstable.metadata.comparator; }
private Comparator<Clusterable> comparator() { return filter.isReversed() ? sstable.metadata.comparator.reversed() : sstable.metadata.comparator; }
private Comparator<Clusterable> comparator() { return filter.isReversed() ? sstable.metadata.comparator.reversed() : sstable.metadata.comparator; }
private Comparator<Clusterable> comparator() { return filter.isReversed() ? sstable.metadata.comparator.reversed() : sstable.metadata.comparator; }
/** * @return a global lower bound made from the clustering values stored in the sstable metadata, note that * this currently does not correctly compare tombstone bounds, especially ranges. */ private ClusteringBound getMetadataLowerBound() { if (!canUseMetadataLowerBound()) return null; final StatsMetadata m = sstable.getSSTableMetadata(); List<ByteBuffer> vals = filter.isReversed() ? m.maxClusteringValues : m.minClusteringValues; assert vals.size() <= sstable.metadata.comparator.size() : String.format("Unexpected number of clustering values %d, expected %d or fewer for %s", vals.size(), sstable.metadata.comparator.size(), sstable.getFilename()); return ClusteringBound.inclusiveOpen(filter.isReversed(), vals.toArray(new ByteBuffer[vals.size()])); } }
/** * @return a global lower bound made from the clustering values stored in the sstable metadata, note that * this currently does not correctly compare tombstone bounds, especially ranges. */ private ClusteringBound getMetadataLowerBound() { if (!canUseMetadataLowerBound()) return null; final StatsMetadata m = sstable.getSSTableMetadata(); List<ByteBuffer> vals = filter.isReversed() ? m.maxClusteringValues : m.minClusteringValues; assert vals.size() <= sstable.metadata.comparator.size() : String.format("Unexpected number of clustering values %d, expected %d or fewer for %s", vals.size(), sstable.metadata.comparator.size(), sstable.getFilename()); return ClusteringBound.inclusiveOpen(filter.isReversed(), vals.toArray(new ByteBuffer[vals.size()])); } }
@Override protected UnfilteredRowIterator initializeIterator() { sstable.incrementReadCount(); @SuppressWarnings("resource") // 'iter' is added to iterators which is closed on exception, or through the closing of the final merged iterator UnfilteredRowIterator iter = sstable.iterator(partitionKey(), filter.getSlices(metadata()), selectedColumns, filter.isReversed(), isForThrift); return iter; }
@Override protected UnfilteredRowIterator initializeIterator() { @SuppressWarnings("resource") // 'iter' is added to iterators which is closed on exception, or through the closing of the final merged iterator UnfilteredRowIterator iter = sstable.iterator(partitionKey(), filter.getSlices(metadata()), selectedColumns, filter.isReversed(), isForThrift, listener); return isForThrift && applyThriftTransformation ? ThriftResultsMerger.maybeWrap(iter, nowInSec) : iter; }
@Override protected UnfilteredRowIterator initializeIterator() { @SuppressWarnings("resource") // 'iter' is added to iterators which is closed on exception, or through the closing of the final merged iterator UnfilteredRowIterator iter = sstable.iterator(partitionKey(), filter.getSlices(metadata()), selectedColumns, filter.isReversed(), isForThrift, listener); return isForThrift && applyThriftTransformation ? ThriftResultsMerger.maybeWrap(iter, nowInSec) : iter; }
@Override protected UnfilteredRowIterator initializeIterator() { @SuppressWarnings("resource") // 'iter' is added to iterators which is closed on exception, or through the closing of the final merged iterator UnfilteredRowIterator iter = sstable.iterator(partitionKey(), filter.getSlices(metadata()), selectedColumns, filter.isReversed(), isForThrift, listener); return isForThrift && applyThriftTransformation ? ThriftResultsMerger.maybeWrap(iter, nowInSec) : iter; }
public UnfilteredRowIterator next() { ImmutableBTreePartition partition = toReturn.get(idx++); ClusteringIndexFilter filter = command.clusteringIndexFilter(partition.partitionKey()); // Pre-3.0, we would always request one more row than we actually needed and the command-level "start" would // be the last-returned cell name, so the response would always include it. UnfilteredRowIterator iterator = partition.unfilteredIterator(command.columnFilter(), filter.getSlices(command.metadata()), filter.isReversed()); // Wrap results with a ThriftResultMerger only if they're intended for the thrift command. if (command.isForThrift()) return ThriftResultsMerger.maybeWrap(iterator, command.nowInSec()); else return iterator; } };
public UnfilteredRowIterator next() { ImmutableBTreePartition partition = toReturn.get(idx++); ClusteringIndexFilter filter = command.clusteringIndexFilter(partition.partitionKey()); // Pre-3.0, we would always request one more row than we actually needed and the command-level "start" would // be the last-returned cell name, so the response would always include it. UnfilteredRowIterator iterator = partition.unfilteredIterator(command.columnFilter(), filter.getSlices(command.metadata()), filter.isReversed()); // Wrap results with a ThriftResultMerger only if they're intended for the thrift command. if (command.isForThrift()) return ThriftResultsMerger.maybeWrap(iterator, command.nowInSec()); else return iterator; } };
public UnfilteredRowIterator next() { ImmutableBTreePartition partition = toReturn.get(idx++); ClusteringIndexFilter filter = command.clusteringIndexFilter(partition.partitionKey()); // Pre-3.0, we would always request one more row than we actually needed and the command-level "start" would // be the last-returned cell name, so the response would always include it. UnfilteredRowIterator iterator = partition.unfilteredIterator(command.columnFilter(), filter.getSlices(command.metadata()), filter.isReversed()); // Wrap results with a ThriftResultMerger only if they're intended for the thrift command. if (command.isForThrift()) return ThriftResultsMerger.maybeWrap(iterator, command.nowInSec()); else return iterator; } };
private long serializedSliceCommandSize(SinglePartitionReadCommand command) { CFMetaData metadata = command.metadata(); ClusteringIndexSliceFilter filter = (ClusteringIndexSliceFilter)command.clusteringIndexFilter(); Slices slices = filter.requestedSlices(); boolean makeStaticSlice = !command.columnFilter().fetchedColumns().statics.isEmpty() && !slices.selects(Clustering.STATIC_CLUSTERING); long size = serializedSlicesSize(slices, makeStaticSlice, metadata); size += TypeSizes.sizeof(command.clusteringIndexFilter().isReversed()); size += TypeSizes.sizeof(command.limits().count()); return size + TypeSizes.sizeof(0); // compositesToGroup }
private long serializedSliceCommandSize(SinglePartitionReadCommand command) { CFMetaData metadata = command.metadata(); ClusteringIndexSliceFilter filter = (ClusteringIndexSliceFilter)command.clusteringIndexFilter(); Slices slices = filter.requestedSlices(); boolean makeStaticSlice = !command.columnFilter().fetchedColumns().statics.isEmpty() && !slices.selects(Clustering.STATIC_CLUSTERING); long size = serializedSlicesSize(slices, makeStaticSlice, metadata); size += TypeSizes.sizeof(command.clusteringIndexFilter().isReversed()); size += TypeSizes.sizeof(command.limits().count()); return size + TypeSizes.sizeof(0); // compositesToGroup }
private long serializedSliceCommandSize(SinglePartitionReadCommand command) { CFMetaData metadata = command.metadata(); ClusteringIndexSliceFilter filter = (ClusteringIndexSliceFilter)command.clusteringIndexFilter(); Slices slices = filter.requestedSlices(); boolean makeStaticSlice = !command.columnFilter().fetchedColumns().statics.isEmpty() && !slices.selects(Clustering.STATIC_CLUSTERING); long size = serializedSlicesSize(slices, makeStaticSlice, metadata); size += TypeSizes.sizeof(command.clusteringIndexFilter().isReversed()); size += TypeSizes.sizeof(command.limits().count()); return size + TypeSizes.sizeof(0); // compositesToGroup }