public class FunctionIndex extends BaseIndex
columnIds, columns, indexColumns, indexType, isMultiVersion, tablecomment, database, traceAGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE| Constructor and Description |
|---|
FunctionIndex(FunctionTable functionTable,
IndexColumn[] columns) |
| Modifier and Type | Method and Description |
|---|---|
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.
|
boolean |
canScan()
Can this index iterate over all rows?
|
void |
checkRename()
Check if this object can be renamed.
|
void |
close(Session session)
Close this index.
|
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.
|
double |
getCost(Session session,
int[] masks,
TableFilter[] filters,
int filter,
SortOrder sortOrder,
java.util.HashSet<Column> allColumnsSet)
Estimate the cost to search for rows given the search mask.
|
long |
getDiskSpaceUsed()
Get the used disk space for this index.
|
java.lang.String |
getPlanSQL()
Get the message to show in a EXPLAIN statement.
|
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 |
isFindUsingFullTableScan()
Returns
true if find() implementation performs scan over all
index, false if find() performs the fast lookup. |
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 |
truncate(Session session)
Remove all rows from the index.
|
canFindNext, checkIndexColumnTypes, commit, compareRows, createLookupBatch, find, findNext, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getRow, getTable, getType, initBaseIndex, isFirstColumn, isHidden, isRowIdIndex, mayHaveNullDuplicates, removeChildrenAndResources, setSortedInsertModegetSchema, getSQL, initSchemaObjectBasegetChildren, getComment, getDatabase, getId, getModificationId, getName, initDbObjectBase, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetSchemagetChildren, getComment, getDatabase, getId, getName, getSQL, isTemporary, rename, setComment, setTemporarypublic FunctionIndex(FunctionTable functionTable, IndexColumn[] columns)
public void close(Session session)
Indexsession - the session used to write datapublic void add(Session session, Row row)
Indexsession - the session to userow - the row to addpublic void remove(Session session, Row row)
Indexsession - the sessionrow - the rowpublic boolean isFindUsingFullTableScan()
Indextrue if find() implementation performs scan over all
index, false if find() performs the fast lookup.isFindUsingFullTableScan in interface IndexisFindUsingFullTableScan in class BaseIndextrue if find() implementation performs scan over all
index, false if find() performs the fast lookuppublic 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 double getCost(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, java.util.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 void remove(Session session)
Indexsession - the sessionpublic void truncate(Session session)
Indexsession - the sessionpublic boolean needRebuild()
Indexpublic void checkRename()
DbObjectBasecheckRename in interface DbObjectcheckRename in class DbObjectBasepublic boolean canGetFirstOrLast()
Indexpublic Cursor findFirstOrLast(Session session, boolean first)
Indexsession - the sessionfirst - true if the first (lowest for ascending indexes) or last
value should be returnedpublic long getRowCount(Session session)
Indexsession - the sessionpublic long getRowCountApproximation()
Indexpublic long getDiskSpaceUsed()
Indexpublic java.lang.String getPlanSQL()
IndexgetPlanSQL in interface IndexgetPlanSQL in class BaseIndex