public class ViewIndex extends BaseIndex implements SpatialIndex
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 |
|---|
ViewIndex(TableView view,
java.lang.String querySQL,
java.util.ArrayList<Parameter> originalParameters,
boolean recursive)
Constructor for the original index in
TableView. |
ViewIndex(TableView view,
ViewIndex index,
Session session,
int[] masks,
TableFilter[] filters,
int filter,
SortOrder sortOrder)
Constructor for plan item generation.
|
| 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.
|
void |
checkRename()
Check if this object can be renamed.
|
void |
close(Session session)
Close this index.
|
IndexLookupBatch |
createLookupBatch(TableFilter[] filters,
int filter)
Creates new lookup batch.
|
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 |
findByGeometry(TableFilter filter,
SearchRow first,
SearchRow last,
SearchRow intersection)
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.
|
Query |
getQuery() |
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.
|
Session |
getSession() |
boolean |
isExpired() |
boolean |
isRecursive() |
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 |
setRecursive(boolean value) |
void |
setupQueryParameters(Session session,
SearchRow first,
SearchRow last,
SearchRow intersection)
Set the query parameters.
|
void |
truncate(Session session)
Remove all rows from the index.
|
canFindNext, canScan, checkIndexColumnTypes, commit, compareRows, find, findNext, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getRow, getTable, getType, initBaseIndex, isFindUsingFullTableScan, 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, waitcanFindNext, canScan, commit, compareRows, find, findNext, getColumnIndex, getColumns, getIndexColumns, getIndexType, getRow, getTable, isFindUsingFullTableScan, isFirstColumn, isRowIdIndex, setSortedInsertModegetSchema, isHiddengetChildren, getComment, getCreateSQL, getCreateSQLForCopy, getDatabase, getDropSQL, getId, getName, getSQL, getType, isTemporary, removeChildrenAndResources, rename, setComment, setTemporarypublic ViewIndex(TableView view, java.lang.String querySQL, java.util.ArrayList<Parameter> originalParameters, boolean recursive)
TableView.view - the table viewquerySQL - the query SQLoriginalParameters - the original parametersrecursive - if the view is recursivepublic ViewIndex(TableView view, ViewIndex index, Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder)
view - the table viewindex - the view indexsession - the sessionmasks - the masksfilters - table filtersfilter - current filtersortOrder - sort orderpublic IndexLookupBatch createLookupBatch(TableFilter[] filters, int filter)
IndexIndexLookupBatch
instance can be used multiple times.createLookupBatch in interface IndexcreateLookupBatch in class BaseIndexfilters - the table filtersfilter - the filter index (0, 1,...)null if batched lookup is not supported
by this index.public Session getSession()
public boolean isExpired()
public java.lang.String getPlanSQL()
IndexgetPlanSQL in interface IndexgetPlanSQL in class BaseIndexpublic void add(Session session, Row row)
Indexpublic void remove(Session session, Row row)
Indexpublic double getCost(Session session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, java.util.HashSet<Column> allColumnsSet)
IndexgetCost in interface 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 Cursor find(Session session, SearchRow first, SearchRow last)
Indexpublic Cursor findByGeometry(TableFilter filter, SearchRow first, SearchRow last, SearchRow intersection)
SpatialIndexfindByGeometry in interface SpatialIndexfilter - the table filter (which possibly knows about additional
conditions)first - the lower boundlast - the upper boundintersection - the geometry which values should intersect with, or
null for anythingpublic void setupQueryParameters(Session session, SearchRow first, SearchRow last, SearchRow intersection)
session - the sessionfirst - the lower boundlast - the upper boundintersection - the intersectionpublic Query getQuery()
public void remove(Session session)
Indexpublic void truncate(Session session)
Indexpublic void checkRename()
DbObjectBasecheckRename in interface DbObjectcheckRename in class DbObjectBasepublic boolean needRebuild()
IndexneedRebuild in interface Indexpublic boolean canGetFirstOrLast()
IndexcanGetFirstOrLast in interface Indexpublic Cursor findFirstOrLast(Session session, boolean first)
IndexfindFirstOrLast in interface Indexsession - the sessionfirst - true if the first (lowest for ascending indexes) or last
value should be returnedpublic void setRecursive(boolean value)
public long getRowCount(Session session)
IndexgetRowCount in interface Indexsession - the sessionpublic long getRowCountApproximation()
IndexgetRowCountApproximation in interface Indexpublic long getDiskSpaceUsed()
IndexgetDiskSpaceUsed in interface Indexpublic boolean isRecursive()