org.apache.cassandra.db.index

## Class PerRowSecondaryIndex

- java.lang.Object
- - org.apache.cassandra.db.index.SecondaryIndex
  - - org.apache.cassandra.db.index.PerRowSecondaryIndex

    public abstract class PerRowSecondaryIndex
    extends SecondaryIndex

Base class for Secondary indexes that implement a unique index per row

### Field Summary

### 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
`PerRowSecondaryIndex()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`abstract void` `delete(DecoratedKey key, OpOrder.Group opGroup)` cleans up deleted columns from cassandra cleanup compaction
`java.lang.String` `getNameForSystemKeyspace(java.nio.ByteBuffer columnName)` Return the unique name for this index and column to be stored in the SystemKeyspace that tracks if each column is built
`abstract void` `index(java.nio.ByteBuffer rowKey, ColumnFamily cf)` Index the given row.
`boolean` `validate(java.nio.ByteBuffer rowKey, Cell cell)`
`void` `validate(java.nio.ByteBuffer key, ColumnFamily cf)`
`boolean` `validate(Cell cell)`

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

`buildIndexAsync, buildIndexBlocking, createInstance, createSecondaryIndexSearcher, estimateResultRows, forceBlockingFlush, getBaseCfs, getColumnDefs, getIndexCfs, getIndexComparator, getIndexKeyFor, getIndexName, indexes, indexes, init, invalidate, isIndexBuilt, isQueryable, reload, removeIndex, setIndexBuilt, setIndexRemoved, supportsOperator, toString, truncateBlocking, validateOptions`

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

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

### Constructor Detail

#### PerRowSecondaryIndex

    public PerRowSecondaryIndex()

### Method Detail

#### index

    public abstract void index(java.nio.ByteBuffer rowKey,
                               ColumnFamily cf)

Index the given row.

Parameters:
  `rowKey` - the row key
  `cf` - the cf data to be indexed

#### delete

    public abstract void delete(DecoratedKey key,
                                OpOrder.Group opGroup)

cleans up deleted columns from cassandra cleanup compaction

Parameters:
  `key` -

#### getNameForSystemKeyspace

    public java.lang.String getNameForSystemKeyspace(java.nio.ByteBuffer columnName)

Description copied from class: `SecondaryIndex`
Return the unique name for this index and column to be stored in the SystemKeyspace that tracks if each column is built

Specified by:
  `getNameForSystemKeyspace` in class `SecondaryIndex`
Parameters:
  `columnName` - the name of the column
Returns:
  the unique name

#### validate

    public boolean validate(java.nio.ByteBuffer rowKey,
                            Cell cell)

Specified by:
  `validate` in class `SecondaryIndex`

#### validate

    public boolean validate(Cell cell)

#### validate

    public void validate(java.nio.ByteBuffer key,
                         ColumnFamily cf)
                  throws InvalidRequestException

Throws:
  `InvalidRequestException`