public class PageDataIndex extends PageIndex
rootPageIdcolumnIds, columns, indexColumns, indexType, isMultiVersion, tablecomment, database, traceAGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE| 构造器和说明 |
|---|
PageDataIndex(RegularTable table,
int id,
IndexColumn[] columns,
IndexType indexType,
boolean create,
Session session) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
add(Session session,
Row row)
Add a row to the index.
|
boolean |
canGetFirstOrLast()
Check if the index can directly look up the lowest or highest value of a
column.
|
void |
checkRename()
Check if this object can be renamed.
|
void |
close(Session session)
Close this index.
|
void |
commit(int operation,
Row row)
Commit the operation for a row.
|
Cursor |
find(Session session,
SearchRow first,
SearchRow last)
Find a row or a list of rows and create a cursor to iterate over the
result.
|
Cursor |
findFirstOrLast(Session session,
boolean first)
Find the first (or last) value of this index.
|
int |
getColumnIndex(Column col)
Get the index of a column in the list of index columns
|
double |
getCost(Session session,
int[] masks,
TableFilter[] filters,
int filter,
SortOrder sortOrder,
HashSet<Column> allColumnsSet)
Estimate the cost to search for rows given the search mask.
|
String |
getCreateSQL()
Build a SQL statement to re-create this object.
|
long |
getDiskSpaceUsed()
Get the used disk space for this index.
|
DbException |
getDuplicateKeyException(String key)
Create a duplicate key exception with a message that contains the index
name.
|
int |
getMainIndexColumn() |
DbException |
getNewDuplicateKeyException() |
String |
getPlanSQL()
Get the message to show in a EXPLAIN statement.
|
Row |
getRow(Session session,
long key)
Get the row with the given key.
|
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.
|
Row |
getRowWithKey(long key)
Get the row with the given key.
|
boolean |
isRowIdIndex()
Does this index support lookup by row id?
|
boolean |
needRebuild()
Check if the index needs to be rebuilt.
|
void |
remove(Session session)
Remove the index.
|
void |
remove(Session session,
Row row)
Remove a row from the index.
|
void |
setMainIndexColumn(int mainIndexColumn) |
String |
toString() |
void |
truncate(Session session)
Remove all rows from the index.
|
void |
writeRowCount()
Write back the row count if it has changed.
|
getRootPageId, setSortedInsertModecanFindNext, canScan, checkIndexColumnTypes, compareRows, containsNullAndAllowMultipleNull, createLookupBatch, find, findNext, getColumns, getCostRangeIndex, getCreateSQLForCopy, getDropSQL, getIndexColumns, getIndexType, getTable, getType, initBaseIndex, isHidden, removeChildrenAndResourcesgetSchema, getSQL, initSchemaObjectBasegetChildren, getComment, getDatabase, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporaryclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetSchemagetChildren, getComment, getDatabase, getId, getName, getSQL, isTemporary, rename, setComment, setTemporarypublic PageDataIndex(RegularTable table, int id, IndexColumn[] columns, IndexType indexType, boolean create, Session session)
public DbException getDuplicateKeyException(String key)
BaseIndexgetDuplicateKeyException 在类中 BaseIndexkey - the key valuespublic void add(Session session, Row row)
Indexsession - the session to userow - the row to addpublic DbException getNewDuplicateKeyException()
public boolean canGetFirstOrLast()
Indexpublic Cursor find(Session session, SearchRow first, SearchRow last)
Indexsession - the sessionfirst - the first row, or null for no limitlast - the last row, or null for no limitpublic Cursor findFirstOrLast(Session session, boolean first)
Indexsession - the sessionfirst - true if the first (lowest for ascending indexes) or last
value should be returnedpublic double getCost(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, HashSet<Column> allColumnsSet)
Indexsession - the sessionmasks - per-column comparison bit masks, null means 'always false',
see constants in IndexConditionfilters - all joined table filtersfilter - the current table filter indexsortOrder - the sort orderallColumnsSet - the set of all columnspublic boolean needRebuild()
Indexpublic void remove(Session session, Row row)
Indexsession - the sessionrow - the rowpublic void remove(Session session)
Indexsession - the sessionpublic void truncate(Session session)
Indexsession - the sessionpublic void checkRename()
DbObjectBasecheckRename 在接口中 DbObjectcheckRename 在类中 DbObjectBasepublic Row getRowWithKey(long key)
key - the keypublic long getRowCountApproximation()
Indexpublic long getRowCount(Session session)
Indexsession - the sessionpublic long getDiskSpaceUsed()
Indexpublic String getCreateSQL()
DbObjectBasegetCreateSQL 在接口中 DbObjectgetCreateSQL 在类中 BaseIndexpublic int getColumnIndex(Column col)
IndexgetColumnIndex 在接口中 IndexgetColumnIndex 在类中 BaseIndexcol - the columnpublic void close(Session session)
Indexsession - the session used to write datapublic void commit(int operation,
Row row)
Indexpublic void setMainIndexColumn(int mainIndexColumn)
public int getMainIndexColumn()
public String toString()
toString 在类中 DbObjectBasepublic void writeRowCount()
PageIndexwriteRowCount 在类中 PageIndexpublic String getPlanSQL()
IndexgetPlanSQL 在接口中 IndexgetPlanSQL 在类中 BaseIndexpublic boolean isRowIdIndex()
IndexisRowIdIndex 在接口中 IndexisRowIdIndex 在类中 BaseIndexCopyright © 2017. All rights reserved.