org.h2.index
Class BaseHashIndex

java.lang.Object
  extended by org.h2.engine.DbObjectBase
      extended by org.h2.schema.SchemaObjectBase
          extended by org.h2.index.BaseIndex
              extended by 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