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.
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 |
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.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.engine.DbObject |
getChildren, getComment, getDatabase, getHeadPos, getId, getModificationId, getName, getSQL, isTemporary, rename, setComment, setModified, setTemporary |
BaseHashIndex
public BaseHashIndex(TableData table,
int id,
java.lang.String indexName,
IndexColumn[] columns,
IndexType indexType)
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 sessionmasks
- 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 sessionfirst
- true for the first value, false for the last
- Returns:
- a cursor (never null)
- Throws:
java.sql.SQLException