org.apache.cassandra.cql3.statements

## Class CreateIndexStatement

- java.lang.Object
- - org.apache.cassandra.cql3.statements.ParsedStatement
  - - org.apache.cassandra.cql3.statements.CFStatement
    - - org.apache.cassandra.cql3.statements.SchemaAlteringStatement
      - - org.apache.cassandra.cql3.statements.CreateIndexStatement

All Implemented Interfaces:
  CQLStatement

    public class CreateIndexStatement
    extends SchemaAlteringStatement

A `CREATE INDEX` statement parsed from a CQL query.

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.cassandra.cql3.statements.ParsedStatement

`ParsedStatement.Prepared`

### Field Summary

### Fields inherited from class org.apache.cassandra.cql3.statements.CFStatement

`cfName`

### Constructor Summary

Constructors
Constructor and Description
`CreateIndexStatement(CFName name, IndexName indexName, java.util.List<IndexTarget.Raw> targets, IndexPropDefs properties, boolean ifNotExists)`

### Method Summary

All Methods Instance Methods Concrete Methods
`Event.SchemaChange` `announceMigration(QueryState queryState, boolean isLocalOnly)` Announces the migration to other nodes in the cluster.
`void` `checkAccess(ClientState state)` Perform any access verification necessary for the statement.
`void` `validate(ClientState state)` Perform additional validation required by the statment.

### Methods inherited from class org.apache.cassandra.cql3.statements.SchemaAlteringStatement

`execute, executeInternal, getBoundTerms, grantPermissionsToCreator, prepare, prepareKeyspace`

### Methods inherited from class org.apache.cassandra.cql3.statements.CFStatement

`columnFamily, keyspace, prepareKeyspace`

### Methods inherited from class org.apache.cassandra.cql3.statements.ParsedStatement

`getBoundVariables, getFunctions, setBoundVariables, setBoundVariables`

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

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

### Methods inherited from interface org.apache.cassandra.cql3.CQLStatement

`getFunctions`

### Constructor Detail

#### CreateIndexStatement

    public CreateIndexStatement(CFName name,
                                IndexName indexName,
                                java.util.List<IndexTarget.Raw> targets,
                                IndexPropDefs properties,
                                boolean ifNotExists)

### Method Detail

#### checkAccess

    public void checkAccess(ClientState state)
                     throws UnauthorizedException,
                            InvalidRequestException

Description copied from interface: `CQLStatement`
Perform any access verification necessary for the statement.

Parameters:
  `state` - the current client state
Throws:
  `UnauthorizedException`
  `InvalidRequestException`

#### validate

    public void validate(ClientState state)
                  throws RequestValidationException

Description copied from interface: `CQLStatement`
Perform additional validation required by the statment. To be overriden by subclasses if needed.

Parameters:
  `state` - the current client state
Throws:
  `RequestValidationException`

#### announceMigration

    public Event.SchemaChange announceMigration(QueryState queryState,
                                                boolean isLocalOnly)
                                         throws RequestValidationException

Description copied from class: `SchemaAlteringStatement`
Announces the migration to other nodes in the cluster.

Specified by:
  `announceMigration` in class `SchemaAlteringStatement`
Returns:
  the schema change event corresponding to the execution of this statement, or `null` if no schema change has occurred (when IF NOT EXISTS is used, for example)
Throws:
  `RequestValidationException`