Class SinglePartitionPager
java.lang.Object
org.apache.cassandra.service.pager.SinglePartitionPager
- All Implemented Interfaces:
QueryPager
Common interface to single partition queries (by slice and by name).
For use by MultiPartitionPager.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final DataLimitsprotected final ProtocolVersionprotected final SinglePartitionReadQueryFields inherited from interface org.apache.cassandra.service.pager.QueryPager
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionSinglePartitionPager(SinglePartitionReadQuery query, PagingState state, ProtocolVersion protocolVersion) -
Method Summary
Modifier and TypeMethodDescriptionStarts a new read operation.fetchPage(int pageSize, ConsistencyLevel consistency, ClientState clientState, Dispatcher.RequestTime requestTime) Fetches the next page.fetchPageInternal(int pageSize, ReadExecutionController executionController) Fetches the next page internally (in other, this does a local query).fetchPageUnfiltered(TableMetadata metadata, int pageSize, ReadExecutionController executionController) booleanWhether or not this pager is exhausted, i.e.protected booleankey()limits()intThe maximum number of cells/CQL3 row that we may still have to return.protected SinglePartitionReadQuerynextPageReadQuery(int pageSize) protected voidrecordLast(DecoratedKey key, Row last) protected intprotected voidrestoreState(DecoratedKey lastKey, int remaining, int remainingInPartition) state()Get the current state of the pager.withUpdatedLimit(DataLimits newLimits) Creates a newQueryPagerthat use the new limits.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.cassandra.service.pager.QueryPager
isTopK
-
Field Details
-
query
-
limits
-
protocolVersion
-
-
Constructor Details
-
SinglePartitionPager
public SinglePartitionPager(SinglePartitionReadQuery query, PagingState state, ProtocolVersion protocolVersion)
-
-
Method Details
-
withUpdatedLimit
Description copied from interface:QueryPagerCreates a newQueryPagerthat use the new limits.- Parameters:
newLimits- the new limits- Returns:
- a new
QueryPagerthat use the new limits
-
key
-
limits
-
state
Description copied from interface:QueryPagerGet the current state of the pager. The state can allow to restart the paging on another host from where we are at this point.- Returns:
- the current paging state. Will return null if paging is at the beginning. If the pager is exhausted, the result is undefined.
-
nextPageReadQuery
-
recordLast
-
isPreviouslyReturnedPartition
-
executionController
Description copied from interface:QueryPagerStarts a new read operation.This must be called before
QueryPager.fetchPageInternal(int,org.apache.cassandra.db.ReadExecutionController)and passed to it to protect the read. The returned object must be closed on all path and it is thus strongly advised to use it in a try-with-ressource construction.- Specified by:
executionControllerin interfaceQueryPager- Returns:
- a newly started order group for this
QueryPager.
-
fetchPage
public PartitionIterator fetchPage(int pageSize, ConsistencyLevel consistency, ClientState clientState, Dispatcher.RequestTime requestTime) Description copied from interface:QueryPagerFetches the next page.- Specified by:
fetchPagein interfaceQueryPager- Parameters:
pageSize- the maximum number of elements to return in the next page.consistency- the consistency level to achieve for the query.clientState- theClientStatefor the query. In practice, this can be null unlessconsistencyis a serial consistency.- Returns:
- the page of result.
-
fetchPageInternal
public PartitionIterator fetchPageInternal(int pageSize, ReadExecutionController executionController) Description copied from interface:QueryPagerFetches the next page internally (in other, this does a local query).- Specified by:
fetchPageInternalin interfaceQueryPager- Parameters:
pageSize- the maximum number of elements to return in the next page.executionController- theReadExecutionControllerprotecting the read.- Returns:
- the page of result.
-
fetchPageUnfiltered
public UnfilteredPartitionIterator fetchPageUnfiltered(TableMetadata metadata, int pageSize, ReadExecutionController executionController) -
restoreState
-
isExhausted
public boolean isExhausted()Description copied from interface:QueryPagerWhether or not this pager is exhausted, i.e. whether or not a call to fetchPage may return more result.- Specified by:
isExhaustedin interfaceQueryPager- Returns:
- whether the pager is exhausted.
-
maxRemaining
public int maxRemaining()Description copied from interface:QueryPagerThe maximum number of cells/CQL3 row that we may still have to return. In other words, that's the initial user limit minus what we've already returned (note that it's not how many we *will* return, just the upper limit on it).- Specified by:
maxRemainingin interfaceQueryPager
-
remainingInPartition
protected int remainingInPartition()
-