public class MultiVersionIndex extends Object implements Index
AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE
Constructor and Description |
---|
MultiVersionIndex(Index base,
RegularTable table) |
Modifier and Type | Method and Description |
---|---|
void |
add(Session session,
Row row)
Add a row to the index.
|
boolean |
canFindNext()
Check if the index can get the next higher value.
|
boolean |
canGetFirstOrLast()
Check if the index can directly look up the lowest or highest value of a
column.
|
boolean |
canScan()
Can this index iterate over all rows?
|
void |
checkRename()
Check if renaming is allowed.
|
void |
close(Session session)
Close this index.
|
void |
commit(int operation,
Row row)
Commit the operation for a row.
|
int |
compareRows(SearchRow rowData,
SearchRow compare)
Compare two rows.
|
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 |
find(TableFilter filter,
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.
|
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.
|
Index |
getBaseIndex() |
ArrayList<DbObject> |
getChildren()
Get the list of dependent children (for tables, this includes indexes and
so on).
|
int |
getColumnIndex(Column col)
Get the index of a column in the list of index columns
|
Column[] |
getColumns()
Get the indexed columns.
|
String |
getComment()
Get the current comment of this object.
|
double |
getCost(Session session,
int[] masks)
Estimate the cost to search for rows given the search mask.
|
String |
getCreateSQL()
Construct the original CREATE ...
|
String |
getCreateSQLForCopy(Table forTable,
String quotedName)
Build a SQL statement to re-create the object, or to create a copy of the
object with a different name or referencing a different table
|
Database |
getDatabase()
Get the database.
|
String |
getDropSQL()
Construct a DROP ...
|
int |
getId()
Get the unique object id.
|
IndexColumn[] |
getIndexColumns()
Get the indexed columns as index columns (with ordering information).
|
IndexType |
getIndexType()
Get the index type.
|
String |
getName()
Get the name.
|
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.
|
Schema |
getSchema()
Get the schema in which this object is defined
|
String |
getSQL()
Get the SQL name of this object (may be quoted).
|
Table |
getTable()
Get the table on which this index is based.
|
int |
getType()
Get the object type.
|
boolean |
isHidden()
Check whether this is a hidden object that doesn't appear in the meta
data and in the script, and is not dropped on DROP ALL OBJECTS.
|
boolean |
isRowIdIndex()
Does this index support lookup by row id?
|
boolean |
isTemporary()
Check if this object is temporary (for example, a temporary table).
|
boolean |
isUncommittedFromOtherSession(Session session,
Row row)
Check if there is an uncommitted row with the given key
within a different session.
|
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 |
removeChildrenAndResources(Session session)
Delete all dependent children objects and resources of this object.
|
void |
rename(String newName)
Rename the object.
|
void |
setComment(String comment)
Change the comment of this object.
|
void |
setSortedInsertMode(boolean sortedInsertMode)
Enable or disable the 'sorted insert' optimizations (rows are inserted in
ascending or descending order) if applicable for this index
implementation.
|
void |
setTemporary(boolean temporary)
Tell this object that it is temporary or not.
|
void |
truncate(Session session)
Remove all rows from the index.
|
public MultiVersionIndex(Index base, RegularTable table)
public void add(Session session, Row row)
Index
public Cursor find(TableFilter filter, SearchRow first, SearchRow last)
Index
public Cursor find(Session session, SearchRow first, SearchRow last)
Index
public Cursor findNext(Session session, SearchRow first, SearchRow last)
Index
public boolean canFindNext()
Index
canFindNext
in interface Index
public boolean canGetFirstOrLast()
Index
canGetFirstOrLast
in interface Index
public Cursor findFirstOrLast(Session session, boolean first)
Index
findFirstOrLast
in interface Index
session
- the sessionfirst
- true if the first (lowest for ascending indexes) or last
value should be returnedpublic double getCost(Session session, int[] masks)
Index
public boolean needRebuild()
Index
needRebuild
in interface Index
public boolean isUncommittedFromOtherSession(Session session, Row row)
session
- the original sessionrow
- the row (only the key is checked)public void remove(Session session, Row row)
Index
public void remove(Session session)
Index
public void truncate(Session session)
Index
public void commit(int operation, Row row)
Index
public int compareRows(SearchRow rowData, SearchRow compare)
Index
compareRows
in interface Index
rowData
- the first rowcompare
- the second rowpublic int getColumnIndex(Column col)
Index
getColumnIndex
in interface Index
col
- the columnpublic Column[] getColumns()
Index
getColumns
in interface Index
public IndexColumn[] getIndexColumns()
Index
getIndexColumns
in interface Index
public String getCreateSQL()
DbObject
getCreateSQL
in interface DbObject
public String getCreateSQLForCopy(Table forTable, String quotedName)
DbObject
getCreateSQLForCopy
in interface DbObject
forTable
- the new tablequotedName
- the quoted namepublic String getDropSQL()
DbObject
getDropSQL
in interface DbObject
public IndexType getIndexType()
Index
getIndexType
in interface Index
public String getPlanSQL()
Index
getPlanSQL
in interface Index
public long getRowCount(Session session)
Index
getRowCount
in interface Index
session
- the sessionpublic Table getTable()
Index
public int getType()
DbObject
public void removeChildrenAndResources(Session session)
DbObject
removeChildrenAndResources
in interface DbObject
session
- the sessionpublic String getSQL()
DbObject
public Schema getSchema()
SchemaObject
getSchema
in interface SchemaObject
public void checkRename()
DbObject
checkRename
in interface DbObject
public ArrayList<DbObject> getChildren()
DbObject
getChildren
in interface DbObject
public String getComment()
DbObject
getComment
in interface DbObject
public Database getDatabase()
DbObject
getDatabase
in interface DbObject
public int getId()
DbObject
public boolean isTemporary()
DbObject
isTemporary
in interface DbObject
public void rename(String newName)
DbObject
public void setComment(String comment)
DbObject
setComment
in interface DbObject
comment
- the new comment, or null for no commentpublic void setTemporary(boolean temporary)
DbObject
setTemporary
in interface DbObject
temporary
- the new valuepublic long getRowCountApproximation()
Index
getRowCountApproximation
in interface Index
public Index getBaseIndex()
public Row getRow(Session session, long key)
Index
public boolean isHidden()
SchemaObject
isHidden
in interface SchemaObject
public boolean isRowIdIndex()
Index
isRowIdIndex
in interface Index
public boolean canScan()
Index
public void setSortedInsertMode(boolean sortedInsertMode)
Index
setSortedInsertMode
in interface Index
sortedInsertMode
- the new valueCopyright © 2012 JBoss by Red Hat. All Rights Reserved.