org.apache.cassandra.db.index.composites

## Class CompositesIndexOnRegular

- 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
        - - org.apache.cassandra.db.index.composites.CompositesIndexOnRegular

-     public class CompositesIndexOnRegular
      extends CompositesIndex

  Index on a REGULAR column definition on a composite type. A cell indexed by this index will have the general form: ck_0 ... ck_n c_name : v where ck_i are the cluster keys, c_name the last component of the cell composite name (or second to last if collections are in use, but this has no impact) and v the cell value. Such a cell is indexed if c_name == columnDef.name, and it will generate (makeIndexColumnName()) an index entry whose: - row key will be the value v (getIndexedValue()). - cell name will rk ck_0 ... ck_n where rk is the row key of the initial cell. I.e. the index entry store all the information require to locate back the indexed cell.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.cassandra.db.index.composites.CompositesIndex

      `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
    `CompositesIndexOnRegular()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static CellNameType` | `buildIndexComparator(CFMetaData baseMetadata, ColumnDefinition columnDef)`
    `CompositesIndex.IndexedEntry` | `decodeEntry(DecoratedKey indexedValue, Cell indexEntry)`
    `protected java.nio.ByteBuffer` | `getIndexedValue(java.nio.ByteBuffer rowKey, Cell cell)`
    `boolean` | `indexes(CellName name)` Returns true if the provided cell name is indexed by this secondary index.
    `boolean` | `isStale(CompositesIndex.IndexedEntry entry, ColumnFamily data, long now)`
    `protected Composite` | `makeIndexColumnPrefix(java.nio.ByteBuffer rowKey, Composite cellName)`

    - ### Methods inherited from class org.apache.cassandra.db.index.composites.CompositesIndex

      `create, createSecondaryIndexSearcher, delete, getExpressionComparator, getIndexComparator, getIndexComparator, makeIndexColumnName, validateOptions`

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

      `delete, deleteForCleanup, estimateResultRows, expressionString, forceBlockingFlush, getIndexCfs, 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, 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

    - #### CompositesIndexOnRegular

          public CompositesIndexOnRegular()

  - ### Method Detail

    - #### buildIndexComparator

          public static CellNameType buildIndexComparator(CFMetaData baseMetadata,
                                                          ColumnDefinition columnDef)

    - #### getIndexedValue

          protected java.nio.ByteBuffer getIndexedValue(java.nio.ByteBuffer rowKey,
                                                        Cell cell)

      Specified by:
        `getIndexedValue` in class `AbstractSimplePerColumnSecondaryIndex`

    - #### makeIndexColumnPrefix

          protected Composite makeIndexColumnPrefix(java.nio.ByteBuffer rowKey,
                                                    Composite cellName)

      Specified by:
        `makeIndexColumnPrefix` in class `CompositesIndex`

    - #### decodeEntry

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

      Specified by:
        `decodeEntry` in class `CompositesIndex`

    - #### indexes

          public boolean indexes(CellName name)

      Description copied from class: `SecondaryIndex`
      Returns true if the provided cell name is indexed by this secondary index. The default implementation checks whether the name is one the columnDef name, but this should be overriden but subclass if needed.
      Specified by:
        `indexes` in class `SecondaryIndex`

    - #### isStale

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

      Specified by:
        `isStale` in class `CompositesIndex`

Copyright © 2018 The Apache Software Foundation