|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectorg.h2.engine.DbObjectBase
org.h2.schema.SchemaObjectBase
org.h2.index.BaseIndex
org.h2.index.BtreeIndex
public class BtreeIndex
This is the most common type of index, a b-tree index. The index structure is:
BtreeHead that points to the root page.
The head always stays where it is.
BtreePages. Each page is either
a BtreeNode or a BtreeLeaf.
| 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 | |
|---|---|
BtreeIndex(Session session,
TableData table,
int id,
java.lang.String indexName,
IndexColumn[] columns,
IndexType indexType,
int headPos)
Create a new b tree index with the given properties. |
|
| Method Summary | |
|---|---|
void |
add(Session session,
Row r)
Add a row to this index. |
boolean |
canFindNext()
Check if the index can get the next higher value. |
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 |
find(Session session,
SearchRow first,
SearchRow last)
Create a cursor to iterate over a number of rows. |
Cursor |
findFirstOrLast(Session session,
boolean first)
Find the first (or last) value of this index. |
Cursor |
findNext(Session session,
SearchRow first,
SearchRow last)
Find a row or a list of rows that is larger and create a cursor to iterate over the result. |
void |
flush(Session session)
Write all changed paged to disk and mark the index as valid. |
double |
getCost(Session session,
int[] masks)
Calculate the cost to find rows. |
int |
getHeadPos()
Get the position of the head record. |
long |
getLastChange()
Get the last change time or 0 if the index has not been changed. |
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. |
boolean |
needRebuild()
Check if this index needs to be re-built. |
Record |
read(Session session,
DataPage s)
Read a record from the data page. |
void |
remove(Session session)
Remove the index. |
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.BaseIndex |
|---|
commit, compareKeys, compareRows, containsNullAndAllowMultipleNull, 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, 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, getId, getModificationId, getName, getSQL, isTemporary, rename, setComment, setModified, setTemporary |
| Constructor Detail |
|---|
public BtreeIndex(Session session,
TableData table,
int id,
java.lang.String indexName,
IndexColumn[] columns,
IndexType indexType,
int headPos)
throws java.sql.SQLException
session - the sessiontable - the base tableid - the object idindexName - the name of the indexcolumns - the indexed columnsindexType - the index typeheadPos - the position of the index header page, or Index.EMPTY_HEAD
for a new index
java.sql.SQLException| Method Detail |
|---|
public int getHeadPos()
DbObject
getHeadPos in interface DbObjectgetHeadPos in class DbObjectBase
public void remove(Session session)
throws java.sql.SQLException
BaseIndex
remove in interface Indexremove in class BaseIndexsession - the session
java.sql.SQLException
public void flush(Session session)
throws java.sql.SQLException
session - the session
java.sql.SQLException
public void close(Session session)
throws java.sql.SQLException
BaseIndex
close in interface Indexclose in class BaseIndexsession - the session
java.sql.SQLException
public void add(Session session,
Row r)
throws java.sql.SQLException
BaseIndex
add in interface Indexadd in class BaseIndexsession - the sessionr - the row to add
java.sql.SQLException
public void remove(Session session,
Row row)
throws java.sql.SQLException
BaseIndex
remove in interface Indexremove in class BaseIndexsession - the sessionrow - the row
java.sql.SQLExceptionpublic boolean canFindNext()
Index
canFindNext in interface IndexcanFindNext in class BaseIndex
public Cursor findNext(Session session,
SearchRow first,
SearchRow last)
throws java.sql.SQLException
BaseIndex
findNext in interface IndexfindNext in class BaseIndexsession - the sessionfirst - the lower limit (excluding)last - the last row, or null for no limit
java.sql.SQLException
public Cursor find(Session session,
SearchRow first,
SearchRow last)
throws java.sql.SQLException
BaseIndex
find in interface Indexfind in class BaseIndexsession - the sessionfirst - the first row to return (null if no limit)last - the last row to return (null if no limit)
java.sql.SQLException
public double getCost(Session session,
int[] masks)
BaseIndex
getCost in interface IndexgetCost in class BaseIndexsession - the sessionmasks - the condition mask
public Record read(Session session,
DataPage s)
throws java.sql.SQLException
RecordReader
read in interface RecordReadersession - the sessions - the data page
java.sql.SQLException
public void truncate(Session session)
throws java.sql.SQLException
BaseIndex
truncate in interface Indextruncate in class BaseIndexsession - the session
java.sql.SQLExceptionpublic void checkRename()
DbObjectBase
checkRename in interface DbObjectcheckRename in class DbObjectBasepublic boolean needRebuild()
BaseIndex
needRebuild in interface IndexneedRebuild in class BaseIndexpublic long getLastChange()
public boolean canGetFirstOrLast()
BaseIndex
canGetFirstOrLast in interface IndexcanGetFirstOrLast in class BaseIndex
public Cursor findFirstOrLast(Session session,
boolean first)
throws java.sql.SQLException
BaseIndex
findFirstOrLast in interface IndexfindFirstOrLast in class BaseIndexsession - the sessionfirst - true for the first value, false for the last
java.sql.SQLExceptionpublic long getRowCount(Session session)
Index
getRowCount in interface Indexsession - the session
public long getRowCountApproximation()
Index
getRowCountApproximation in interface Index
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||