org.h2.index
Class NonUniqueHashIndex

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
                  extended by org.h2.index.NonUniqueHashIndex
All Implemented Interfaces:
DbObject, Index, SchemaObject

public class NonUniqueHashIndex
extends BaseHashIndex

A non-unique index based on an in-memory hash map.

Author:
Sergi Vladykin

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
NonUniqueHashIndex(TableData table, int id, java.lang.String indexName, IndexColumn[] columns, IndexType indexType)
           
 
Method Summary
 void add(Session session, Row row)
          Add a row to this index.
 Cursor find(Session session, SearchRow first, SearchRow last)
          Create a cursor to iterate over a number of rows.
 long getRowCount(Session session)
          Get the row count of this table, for the given session.
 long getRowCountApproximation()
          Get the approximated row count for this table.
 void remove(Session session, Row row)
          Remove a row from the index.
 void truncate(Session session)
          Truncate the index.
 
Methods inherited from class org.h2.index.BaseHashIndex
canGetFirstOrLast, checkRename, close, findFirstOrLast, getCost, getKey, needRebuild, remove
 
Methods inherited from class org.h2.index.BaseIndex
canFindNext, commit, compareKeys, compareRows, containsNullAndAllowMultipleNull, findNext, getColumnIndex, getColumnListSQL, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getLookupCost, getPlanSQL, getRootPageId, getTable, getType, removeChildrenAndResources
 
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.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

NonUniqueHashIndex

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

truncate

public void truncate(Session session)
Description copied from class: BaseIndex
Truncate the index.

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

add

public void add(Session session,
                Row row)
         throws java.sql.SQLException
Description copied from class: BaseIndex
Add a row to this index.

Specified by:
add in interface Index
Specified by:
add in class BaseIndex
Parameters:
session - the session
row - the row to add
Throws:
java.sql.SQLException

remove

public void remove(Session session,
                   Row row)
            throws java.sql.SQLException
Description copied from class: BaseIndex
Remove a row from the index.

Specified by:
remove in interface Index
Specified by:
remove in class BaseIndex
Parameters:
session - the session
row - the row
Throws:
java.sql.SQLException

find

public Cursor find(Session session,
                   SearchRow first,
                   SearchRow last)
            throws java.sql.SQLException
Description copied from class: BaseIndex
Create a cursor to iterate over a number of rows.

Specified by:
find in interface Index
Specified by:
find in class BaseIndex
Parameters:
session - the session
first - the first row to return (null if no limit)
last - the last row to return (null if no limit)
Returns:
the cursor to iterate over the results
Throws:
java.sql.SQLException

getRowCount

public long getRowCount(Session session)
Description copied from interface: Index
Get the row count of this table, for the given session.

Parameters:
session - the session
Returns:
the row count

getRowCountApproximation

public long getRowCountApproximation()
Description copied from interface: Index
Get the approximated row count for this table.

Returns:
the approximated row count