Interface ReadQuery

    • Method Detail

      • metadata

        TableMetadata metadata()
        The metadata for the table this is a query on.
        Returns:
        the metadata for the table this is a query on.
      • executeInternal

        PartitionIterator executeInternal​(ReadExecutionController controller)
        Execute the query for internal queries (that is, it basically executes the query locally).
        Parameters:
        controller - the ReadExecutionController protecting the read.
        Returns:
        the result of the query.
      • getPager

        QueryPager getPager​(PagingState pagingState,
                            ProtocolVersion protocolVersion)
        Returns a pager for the query.
        Parameters:
        pagingState - the PagingState to start from if this is a paging continuation. This can be null if this is the start of paging.
        protocolVersion - the protocol version to use for the paging state of that pager.
        Returns:
        a pager for the query.
      • limits

        DataLimits limits()
        The limits for the query.
        Returns:
        The limits for the query.
      • selectsKey

        boolean selectsKey​(DecoratedKey key)
        Returns:
        true if the read query would select the given key, including checks against the row filter, if checkRowFilter is true
      • selectsClustering

        boolean selectsClustering​(DecoratedKey key,
                                  Clustering<?> clustering)
        Returns:
        true if the read query would select the given clustering, including checks against the row filter, if checkRowFilter is true
      • nowInSec

        long nowInSec()
        The time in seconds to use as "now" for this query.

        We use the same time as "now" for the whole query to avoid considering different values as expired during the query, which would be buggy (would throw of counting amongst other things).

        Returns:
        the time (in seconds) to use as "now".
      • selectsFullPartition

        boolean selectsFullPartition()
        Checks if this ReadQuery selects full partitions, that is it has no filtering on clustering or regular columns.
        Returns:
        true if this ReadQuery selects full partitions, false otherwise.
      • rowFilter

        RowFilter rowFilter()
        Filters/Resrictions on CQL rows.

        This contains the restrictions that are not directly handled by the ClusteringIndexFilter. More specifically, this includes any non-PK column restrictions and can include some PK columns restrictions when those can't be satisfied entirely by the clustering index filter (because not all clustering columns have been restricted for instance). If there is 2ndary indexes on the table, one of this restriction might be handled by a 2ndary index.

        Returns:
        the filter holding the expression that rows must satisfy.
      • columnFilter

        ColumnFilter columnFilter()
        A filter on which (non-PK) columns must be returned by the query.
        Returns:
        which columns must be fetched by this query.
      • isEmpty

        default boolean isEmpty()
        Whether this query is known to return nothing upfront.

        This is overridden by the ReadQuery created through empty(TableMetadata), and that's probably the only place that should override it.

        Returns:
        if this method is guaranteed to return no results whatsoever.
      • maybeValidateIndex

        default void maybeValidateIndex()
        If the index manager for the table determines that there's an applicable 2i that can be used to execute this query, call its (optional) validation method to check that nothing in this query's parameters violates the implementation specific validation rules.
      • trackWarnings

        default void trackWarnings()
      • isTopK

        default boolean isTopK()
        The query is a top-k query if the query has an Index.QueryPlan that supports top-k ordering.
        Returns:
        true if this is a top-k query