org.apache.cassandra.cql3

## Class QueryOptions

- java.lang.Object
- - org.apache.cassandra.cql3.QueryOptions

-     public abstract class QueryOptions
      extends java.lang.Object

  Options for a query.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static CBCodec<QueryOptions>` | `codec`
    `static QueryOptions` | `DEFAULT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `QueryOptions()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static QueryOptions` | `addColumnSpecifications(QueryOptions options, java.util.List<ColumnSpecification> columnSpecs)`
    `static QueryOptions` | `create(ConsistencyLevel consistency, java.util.List<java.nio.ByteBuffer> values, boolean skipMetadata, int pageSize, PagingState pagingState, ConsistencyLevel serialConsistency, ProtocolVersion version)`
    `static QueryOptions` | `forInternalCalls(ConsistencyLevel consistency, java.util.List<java.nio.ByteBuffer> values)`
    `static QueryOptions` | `forInternalCalls(java.util.List<java.nio.ByteBuffer> values)`
    `static QueryOptions` | `forProtocolVersion(ProtocolVersion protocolVersion)`
    `static QueryOptions` | `fromThrift(ConsistencyLevel consistency, java.util.List<java.nio.ByteBuffer> values)`
    `com.google.common.collect.ImmutableList<ColumnSpecification>` | `getColumnSpecifications()` Returns the column specifications for the bound variables (optional operation).
    `abstract ConsistencyLevel` | `getConsistency()`
    `Term` | `getJsonColumnValue(int bindIndex, ColumnIdentifier columnName, java.util.Collection<ColumnDefinition> expectedReceivers)` Returns the term corresponding to column `columnName` in the JSON value of bind index `bindIndex`.
    `int` | `getPageSize()` The pageSize for this query.
    `PagingState` | `getPagingState()` The paging state for this query, or null if not relevant.
    `abstract ProtocolVersion` | `getProtocolVersion()` The protocol version for the query.
    `ConsistencyLevel` | `getSerialConsistency()` Serial consistency for conditional updates.
    `long` | `getTimestamp(QueryState state)`
    `abstract java.util.List<java.nio.ByteBuffer>` | `getValues()`
    `boolean` | `hasColumnSpecifications()` Tells whether or not this `QueryOptions` contains the column specifications for the bound variables.
    `QueryOptions` | `prepare(java.util.List<ColumnSpecification> specs)`
    `abstract boolean` | `skipMetadata()`

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

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

- - ### Field Detail

    - #### DEFAULT

          public static final QueryOptions DEFAULT

    - #### codec

          public static final CBCodec<QueryOptions> codec

  - ### Constructor Detail

    - #### QueryOptions

          public QueryOptions()

  - ### Method Detail

    - #### fromThrift

          public static QueryOptions fromThrift(ConsistencyLevel consistency,
                                                java.util.List<java.nio.ByteBuffer> values)

    - #### forInternalCalls

          public static QueryOptions forInternalCalls(ConsistencyLevel consistency,
                                                      java.util.List<java.nio.ByteBuffer> values)

    - #### forInternalCalls

          public static QueryOptions forInternalCalls(java.util.List<java.nio.ByteBuffer> values)

    - #### forProtocolVersion

          public static QueryOptions forProtocolVersion(ProtocolVersion protocolVersion)

    - #### create

          public static QueryOptions create(ConsistencyLevel consistency,
                                            java.util.List<java.nio.ByteBuffer> values,
                                            boolean skipMetadata,
                                            int pageSize,
                                            PagingState pagingState,
                                            ConsistencyLevel serialConsistency,
                                            ProtocolVersion version)

    - #### addColumnSpecifications

          public static QueryOptions addColumnSpecifications(QueryOptions options,
                                                             java.util.List<ColumnSpecification> columnSpecs)

    - #### getConsistency

          public abstract ConsistencyLevel getConsistency()

    - #### getValues

          public abstract java.util.List<java.nio.ByteBuffer> getValues()

    - #### skipMetadata

          public abstract boolean skipMetadata()

    - #### getJsonColumnValue

          public Term getJsonColumnValue(int bindIndex,
                                         ColumnIdentifier columnName,
                                         java.util.Collection<ColumnDefinition> expectedReceivers)
                                  throws InvalidRequestException

      Returns the term corresponding to column `columnName` in the JSON value of bind index `bindIndex`. This is functionally equivalent to: `Json.parseJson(UTF8Type.instance.getSerializer().deserialize(getValues().get(bindIndex)), expectedReceivers).get(columnName)` but this cache the result of parsing the JSON so that while this might be called for multiple columns on the same `bindIndex` value, the underlying JSON value is only parsed/processed once. Note: this is a bit more involved in CQL specifics than this class generally is but we as we need to cache this per-query and in an object that is available when we bind values, this is the easier place to have this.
      Parameters:
        `bindIndex` - the index of the bind value that should be interpreted as a JSON value.
        `columnName` - the name of the column we want the value of.
        `expectedReceivers` - the columns expected in the JSON value at index `bindIndex`. This is only used when parsing the json initially and no check is done afterwards. So in practice, any call of this method on the same QueryOptions object and with the same `bindIndx` values should use the same value for this parameter, but this isn't validated in any way.
      Returns:
        the value correspong to column `columnName` in the (JSON) bind value at index `bindIndex`. This may return null if the JSON value has no value for this column.
      Throws:
        `InvalidRequestException`

    - #### hasColumnSpecifications

          public boolean hasColumnSpecifications()

      Tells whether or not this `QueryOptions` contains the column specifications for the bound variables.

      The column specifications will be present only for prepared statements.

      Returns:
        `true` this `QueryOptions` contains the column specifications for the bound variables, `false` otherwise.

    - #### getColumnSpecifications

          public com.google.common.collect.ImmutableList<ColumnSpecification> getColumnSpecifications()

      Returns the column specifications for the bound variables (optional operation).

      The column specifications will be present only for prepared statements.

      Invoke the `hasColumnSpecifications` method before invoking this method in order to ensure that this `QueryOptions` contains the column specifications.

      Returns:
        the option names
      Throws:
        `java.lang.UnsupportedOperationException` - If this `QueryOptions` does not contains the column specifications.

    - #### getPageSize

          public int getPageSize()

      The pageSize for this query. Will be `<= 0` if not relevant for the query.

    - #### getPagingState

          public PagingState getPagingState()

      The paging state for this query, or null if not relevant.

    - #### getSerialConsistency

          public ConsistencyLevel getSerialConsistency()

      Serial consistency for conditional updates.

    - #### getTimestamp

          public long getTimestamp(QueryState state)

    - #### getProtocolVersion

          public abstract ProtocolVersion getProtocolVersion()

      The protocol version for the query. Will be 3 if the object don't come from a native protocol request (i.e. it's been allocated locally or by CQL-over-thrift).

    - #### prepare

          public QueryOptions prepare(java.util.List<ColumnSpecification> specs)

Copyright © 2018 The Apache Software Foundation