## org.h2.index
Class BaseHashIndex

    java.lang.Object
      org.h2.engine.DbObjectBase
          org.h2.schema.SchemaObjectBase
              org.h2.index.BaseIndex
                  org.h2.index.BaseHashIndex

All Implemented Interfaces:
  DbObject, Index, SchemaObject

Direct Known Subclasses:
  HashIndex, NonUniqueHashIndex

    public abstract class BaseHashIndex

extends BaseIndex

Base of hash indexes.

Field Summary

Fields inherited from class org.h2.index.BaseIndex
`columnIds, columns, indexColumns, indexType, isMultiVersion, table`

Fields inherited from class org.h2.engine.DbObjectBase
`comment, database, trace`

Fields inherited from interface org.h2.index.Index
`EMPTY_HEAD`

Fields inherited from interface org.h2.engine.DbObject
`AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE`

Constructor Summary
`BaseHashIndex(TableData table, int id, java.lang.String indexName, IndexColumn[] columns, IndexType indexType)`

Method Summary
`boolean` `canGetFirstOrLast()` Check if this index can quickly find the first or last value.
`void` `checkRename()` Check if this object can be renamed.
`void` `close(Session session)` Close this index.
`Cursor` `findFirstOrLast(Session session, boolean first)` Find the first (or last) value of this index.
`double` `getCost(Session session, int[] masks)` Calculate the cost to find rows.
`protected Value` `getKey(SearchRow row)` Generate the search key from a row.
`boolean` `needRebuild()` Check if this index needs to be re-built.
`void` `remove(Session session)` Remove the index.

Methods inherited from class org.h2.index.BaseIndex
`add, canFindNext, commit, compareKeys, compareRows, containsNullAndAllowMultipleNull, find, findNext, getColumnIndex, getColumnListSQL, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getLookupCost, getPlanSQL, getRootPageId, getTable, getType, remove, removeChildrenAndResources, truncate`

Methods inherited from class org.h2.schema.SchemaObjectBase
`getSchema, getSQL, initSchemaObjectBase`

Methods inherited from class org.h2.engine.DbObjectBase
`getChildren, getComment, getDatabase, getHeadPos, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, rename, setComment, setModified, setObjectName, setTemporary, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.h2.index.Index
`getRowCount, getRowCountApproximation`

Methods inherited from interface org.h2.schema.SchemaObject
`getSchema`

Methods inherited from interface org.h2.engine.DbObject
`getChildren, getComment, getDatabase, getHeadPos, getId, getModificationId, getName, getSQL, isTemporary, rename, setComment, setModified, setTemporary`

Constructor Detail

### BaseHashIndex

    public BaseHashIndex(TableData table,
                         int id,
                         java.lang.String indexName,
                         IndexColumn[] columns,
                         IndexType indexType)

Method Detail

### close

    public void close(Session session)

  Description copied from class: `BaseIndex`
  Close this index.

  Specified by:
    `close` in interface `Index`
  Specified by:
    `close` in class `BaseIndex`
  Parameters:
    `session` - the session

### remove

    public void remove(Session session)

  Description copied from class: `BaseIndex`
  Remove the index.

  Specified by:
    `remove` in interface `Index`
  Specified by:
    `remove` in class `BaseIndex`
  Parameters:
    `session` - the session

### getKey

    protected Value getKey(SearchRow row)

  Generate the search key from a row. Single column indexes are mapped to the value, multi-column indexes are mapped to an value array.

  Parameters:
    `row` - the row
  Returns:
    the value

### getCost

    public double getCost(Session session,
                          int[] masks)

  Description copied from class: `BaseIndex`
  Calculate the cost to find rows.

  Specified by:
    `getCost` in interface `Index`
  Specified by:
    `getCost` in class `BaseIndex`
  Parameters:
    `session` - the session
    `masks` - the condition mask
  Returns:
    the cost

### checkRename

    public void checkRename()

  Description copied from class: `DbObjectBase`
  Check if this object can be renamed. System objects may not be renamed.

  Specified by:
    `checkRename` in interface `DbObject`
  Specified by:
    `checkRename` in class `DbObjectBase`

### needRebuild

    public boolean needRebuild()

  Description copied from class: `BaseIndex`
  Check if this index needs to be re-built.

  Specified by:
    `needRebuild` in interface `Index`
  Specified by:
    `needRebuild` in class `BaseIndex`
  Returns:
    true if it must be re-built.

### canGetFirstOrLast

    public boolean canGetFirstOrLast()

  Description copied from class: `BaseIndex`
  Check if this index can quickly find the first or last value.

  Specified by:
    `canGetFirstOrLast` in interface `Index`
  Specified by:
    `canGetFirstOrLast` in class `BaseIndex`
  Returns:
    true if it can

### findFirstOrLast

    public Cursor findFirstOrLast(Session session,
                                  boolean first)
                           throws java.sql.SQLException

  Description copied from class: `BaseIndex`
  Find the first (or last) value of this index. The cursor returned is positioned on the correct row, or on null if no row has been found.

  Specified by:
    `findFirstOrLast` in interface `Index`
  Specified by:
    `findFirstOrLast` in class `BaseIndex`
  Parameters:
    `session` - the session
    `first` - true for the first value, false for the last
  Returns:
    a cursor (never null)
  Throws:
    `java.sql.SQLException`