org.apache.cassandra.db.index.composites

## Class CompositesIndex

- java.lang.Object
- - org.apache.cassandra.db.index.SecondaryIndex
  - - org.apache.cassandra.db.index.PerColumnSecondaryIndex
    - - org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex
      - - org.apache.cassandra.db.index.composites.CompositesIndex

Direct Known Subclasses:
  CompositesIndexIncludingCollectionKey, CompositesIndexOnClusteringKey, CompositesIndexOnCollectionValue, CompositesIndexOnPartitionKey, CompositesIndexOnRegular

    public abstract class CompositesIndex
    extends AbstractSimplePerColumnSecondaryIndex

Base class for secondary indexes where composites are involved.

### Nested Class Summary

Nested Classes
`static class` `CompositesIndex.IndexedEntry`

### Field Summary

### Fields inherited from class org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex

`columnDef, indexCfs`

### Fields inherited from class org.apache.cassandra.db.index.SecondaryIndex

`baseCfs, columnDefs, CUSTOM_INDEX_OPTION_NAME, INDEX_ENTRIES_OPTION_NAME, INDEX_KEYS_OPTION_NAME, INDEX_VALUES_OPTION_NAME, keyComparator, logger`

### Constructor Summary

Constructors
Constructor and Description
`CompositesIndex()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`static CompositesIndex` `create(ColumnDefinition cfDef)`
`SecondaryIndexSearcher` `createSecondaryIndexSearcher(java.util.Set<java.nio.ByteBuffer> columns)` Called at query time Creates a implementation specific searcher instance for this index type
`abstract CompositesIndex.IndexedEntry` `decodeEntry(DecoratedKey indexedValue, Cell indexEntry)`
`void` `delete(CompositesIndex.IndexedEntry entry, OpOrder.Group opGroup)`
`protected AbstractType<?>` `getExpressionComparator()`
`protected CellNameType` `getIndexComparator()`
`static CellNameType` `getIndexComparator(CFMetaData baseMetadata, ColumnDefinition cfDef)`
`abstract boolean` `isStale(CompositesIndex.IndexedEntry entry, ColumnFamily data, long now)`
`protected CellName` `makeIndexColumnName(java.nio.ByteBuffer rowKey, Cell cell)`
`protected abstract Composite` `makeIndexColumnPrefix(java.nio.ByteBuffer rowKey, Composite columnName)`
`void` `validateOptions()` Validates the index_options passed in the ColumnDef

### Methods inherited from class org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex

`delete, deleteForCleanup, estimateResultRows, expressionString, forceBlockingFlush, getIndexCfs, getIndexedValue, getIndexKeyComparator, getIndexName, init, insert, invalidate, reload, removeIndex, truncateBlocking, update, validate`

### Methods inherited from class org.apache.cassandra.db.index.PerColumnSecondaryIndex

`getNameForSystemKeyspace, validate`

### Methods inherited from class org.apache.cassandra.db.index.SecondaryIndex

`buildIndexAsync, buildIndexBlocking, createInstance, getBaseCfs, getColumnDefs, getIndexKeyFor, indexes, indexes, isIndexBuilt, isQueryable, setIndexBuilt, setIndexRemoved, supportsOperator, toString`

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

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

### Constructor Detail

#### CompositesIndex

    public CompositesIndex()

### Method Detail

#### getIndexComparator

    protected CellNameType getIndexComparator()

#### create

    public static CompositesIndex create(ColumnDefinition cfDef)

#### getIndexComparator

    public static CellNameType getIndexComparator(CFMetaData baseMetadata,
                                                  ColumnDefinition cfDef)

#### makeIndexColumnName

    protected CellName makeIndexColumnName(java.nio.ByteBuffer rowKey,
                                           Cell cell)

Specified by:
  `makeIndexColumnName` in class `AbstractSimplePerColumnSecondaryIndex`

#### makeIndexColumnPrefix

    protected abstract Composite makeIndexColumnPrefix(java.nio.ByteBuffer rowKey,
                                                       Composite columnName)

#### decodeEntry

    public abstract CompositesIndex.IndexedEntry decodeEntry(DecoratedKey indexedValue,
                                                             Cell indexEntry)

#### isStale

    public abstract boolean isStale(CompositesIndex.IndexedEntry entry,
                                    ColumnFamily data,
                                    long now)

#### delete

    public void delete(CompositesIndex.IndexedEntry entry,
                       OpOrder.Group opGroup)

#### getExpressionComparator

    protected AbstractType<?> getExpressionComparator()

Specified by:
  `getExpressionComparator` in class `AbstractSimplePerColumnSecondaryIndex`

#### createSecondaryIndexSearcher

    public SecondaryIndexSearcher createSecondaryIndexSearcher(java.util.Set<java.nio.ByteBuffer> columns)

Description copied from class: `SecondaryIndex`
Called at query time Creates a implementation specific searcher instance for this index type

Specified by:
  `createSecondaryIndexSearcher` in class `SecondaryIndex`
Parameters:
  `columns` - the list of columns which belong to this index type
Returns:
  the secondary index search impl

#### validateOptions

    public void validateOptions()
                         throws ConfigurationException

Description copied from class: `SecondaryIndex`
Validates the index_options passed in the ColumnDef

Specified by:
  `validateOptions` in class `SecondaryIndex`
Throws:
  `ConfigurationException`