Class IndexSearchResultIterator
- All Implemented Interfaces:
com.google.common.collect.PeekingIterator<PrimaryKey>,Closeable,AutoCloseable,Iterator<PrimaryKey>
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.cassandra.index.sai.iterators.KeyRangeIterator
KeyRangeIterator.BuilderNested classes/interfaces inherited from class org.apache.cassandra.utils.AbstractGuavaIterator
AbstractGuavaIterator.State -
Field Summary
Fields inherited from class org.apache.cassandra.utils.AbstractGuavaIterator
next, state -
Method Summary
Modifier and TypeMethodDescriptionstatic IndexSearchResultIteratorbuild(List<KeyRangeIterator> sstableIntersections, List<KeyRangeIterator> memtableResults, Set<SSTableIndex> referencedIndexes, QueryContext queryContext, Runnable onClose) static IndexSearchResultIteratorbuild(Expression expression, Collection<MemtableIndex> memtableIndexes, Collection<SSTableIndex> sstableIndexes, AbstractBounds<PartitionPosition> keyRange, QueryContext queryContext, boolean includeMemtables, Runnable onClose) Builds a newIndexSearchResultIteratorthat wraps aKeyRangeUnionIteratorover the results of searching theMemtableIndexes and theSSTableIndexes.static IndexSearchResultIteratorbuild(QueryViewBuilder.QueryExpressionView queryView, AbstractBounds<PartitionPosition> keyRange, QueryContext queryContext, boolean includeMemtables, Runnable onClose) Builds a newIndexSearchResultIteratorthat wraps aKeyRangeUnionIteratorover the results of searching theQueryViewBuilder.QueryExpressionView.voidclose()protected PrimaryKeyReturns the next element.protected voidperformSkipTo(PrimaryKey nextKey) Skip to nextKey.Methods inherited from class org.apache.cassandra.index.sai.iterators.KeyRangeIterator
empty, getMaximum, getMaxKeys, getMinimum, nullSafeMax, nullSafeMin, setOnClose, skipToMethods inherited from class org.apache.cassandra.utils.AbstractGuavaIterator
endOfData, hasNext, next, peek, remove, tryToComputeNextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Iterator
forEachRemaining
-
Method Details
-
build
public static IndexSearchResultIterator build(QueryViewBuilder.QueryExpressionView queryView, AbstractBounds<PartitionPosition> keyRange, QueryContext queryContext, boolean includeMemtables, Runnable onClose) Builds a newIndexSearchResultIteratorthat wraps aKeyRangeUnionIteratorover the results of searching theQueryViewBuilder.QueryExpressionView. -
build
public static IndexSearchResultIterator build(Expression expression, Collection<MemtableIndex> memtableIndexes, Collection<SSTableIndex> sstableIndexes, AbstractBounds<PartitionPosition> keyRange, QueryContext queryContext, boolean includeMemtables, Runnable onClose) Builds a newIndexSearchResultIteratorthat wraps aKeyRangeUnionIteratorover the results of searching theMemtableIndexes and theSSTableIndexes. -
build
public static IndexSearchResultIterator build(List<KeyRangeIterator> sstableIntersections, List<KeyRangeIterator> memtableResults, Set<SSTableIndex> referencedIndexes, QueryContext queryContext, Runnable onClose) -
computeNext
Description copied from class:AbstractGuavaIteratorReturns the next element. Note: the implementation must callAbstractGuavaIterator.endOfData()when there are no elements left in the iteration. Failure to do so could result in an infinite loop.The initial invocation of
AbstractGuavaIterator.hasNext()orAbstractGuavaIterator.next()calls this method, as does the first invocation ofhasNextornextfollowing each successful call tonext. Once the implementation either invokesendOfDataor throws an exception,computeNextis guaranteed to never be called again.If this method throws an exception, it will propagate outward to the
hasNextornextinvocation that invoked this method. Any further attempts to use the iterator will result in anIllegalStateException.The implementation of this method may not invoke the
hasNext,next, orAbstractGuavaIterator.peek()methods on this instance; if it does, anIllegalStateExceptionwill result.- Specified by:
computeNextin classAbstractGuavaIterator<PrimaryKey>- Returns:
- the next element if there was one. If
endOfDatawas called during execution, the return value will be ignored.
-
performSkipTo
Description copied from class:KeyRangeIteratorSkip to nextKey.That is, implementations should set up the iterator state such that calling computeNext() will return nextKey if present, or the first one after it if not present.
- Specified by:
performSkipToin classKeyRangeIterator
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classKeyRangeIterator
-