org.apache.cassandra.index.sasi.plan

## Class QueryController

- java.lang.Object
- - org.apache.cassandra.index.sasi.plan.QueryController

    public class QueryController
    extends java.lang.Object

### Constructor Summary

Constructors
Constructor and Description
`QueryController(ColumnFamilyStore cfs, PartitionRangeReadCommand command, long timeQuotaMs)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `checkpoint()`
`DataRange` `dataRange()`
`void` `finish()`
`java.util.Collection<RowFilter.Expression>` `getExpressions()`
`ColumnIndex` `getIndex(RowFilter.Expression expression)`
`RangeIterator.Builder<java.lang.Long,Token>` `getIndexes(Operation.OperationType op, java.util.Collection<Expression> expressions)` Build a range iterator from the given list of expressions by applying given operation (OR/AND).
`AbstractType<?>` `getKeyValidator()`
`UnfilteredRowIterator` `getPartition(DecoratedKey key, ReadExecutionController executionController)`
`boolean` `isForThrift()`
`CFMetaData` `metadata()`
`void` `releaseIndexes(Operation operation)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### QueryController

    public QueryController(ColumnFamilyStore cfs,
                           PartitionRangeReadCommand command,
                           long timeQuotaMs)

### Method Detail

#### isForThrift

    public boolean isForThrift()

#### metadata

    public CFMetaData metadata()

#### getExpressions

    public java.util.Collection<RowFilter.Expression> getExpressions()

#### dataRange

    public DataRange dataRange()

#### getKeyValidator

    public AbstractType<?> getKeyValidator()

#### getIndex

    public ColumnIndex getIndex(RowFilter.Expression expression)

#### getPartition

    public UnfilteredRowIterator getPartition(DecoratedKey key,
                                              ReadExecutionController executionController)

#### getIndexes

    public RangeIterator.Builder<java.lang.Long,Token> getIndexes(Operation.OperationType op,
                                                                  java.util.Collection<Expression> expressions)

Build a range iterator from the given list of expressions by applying given operation (OR/AND). Building of such iterator involves index search, results of which are persisted in the internal resources list and can be released later via `releaseIndexes(Operation)`.

Parameters:
  `op` - The operation type to coalesce expressions with.
  `expressions` - The expressions to build range iterator from (expressions with not results are ignored).
Returns:
  The range builder based on given expressions and operation type.

#### checkpoint

    public void checkpoint()

#### releaseIndexes

    public void releaseIndexes(Operation operation)

#### finish

    public void finish()