|
||||||||
| 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.ViewIndex
public class ViewIndex
This object represents a virtual index for a query. Actually it only represents a prepared SELECT statement.
| 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.engine.DbObject |
|---|
AGGREGATE, COMMENT, CONSTANT, CONSTRAINT, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, TABLE_OR_VIEW, TRIGGER, USER, USER_DATATYPE |
| Constructor Summary | |
|---|---|
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. |
|
| Method Summary | |
|---|---|
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 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 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)
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. |
| Methods inherited from class org.h2.index.BaseIndex |
|---|
canFindNext, canScan, checkIndexColumnTypes, commit, compareRows, containsNullAndAllowMultipleNull, find, findNext, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getRow, getTable, getType, initBaseIndex, isHidden, isRowIdIndex, removeChildrenAndResources, setSortedInsertMode |
| 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.index.Index |
|---|
canFindNext, canScan, commit, compareRows, find, findNext, getColumnIndex, getColumns, getIndexColumns, getIndexType, getRow, getTable, isRowIdIndex, setSortedInsertMode |
| Methods inherited from interface org.h2.schema.SchemaObject |
|---|
getSchema, isHidden |
| Methods inherited from interface org.h2.engine.DbObject |
|---|
getChildren, getComment, getCreateSQL, getCreateSQLForCopy, getDatabase, getDropSQL, getId, getName, getSQL, getType, isTemporary, removeChildrenAndResources, rename, setComment, setTemporary |
| Constructor Detail |
|---|
public 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 recursive
public 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 order| Method Detail |
|---|
public IndexLookupBatch createLookupBatch(TableFilter filter)
IndexIndexLookupBatch
instance can be used multiple times.
createLookupBatch in interface IndexcreateLookupBatch in class BaseIndexfilter - Table filter.
null if batched lookup is not supported
by this index.public Session getSession()
public boolean isExpired()
public java.lang.String getPlanSQL()
Index
getPlanSQL in interface IndexgetPlanSQL in class BaseIndexpublic void close(Session session)
Index
close in interface Indexsession - the session used to write data
public void add(Session session,
Row row)
Index
add in interface Indexsession - the session to userow - the row to add
public void remove(Session session,
Row row)
Index
remove in interface Indexsession - the sessionrow - the row
public double getCost(Session session,
int[] masks,
TableFilter[] filters,
int filter,
SortOrder sortOrder)
Index
getCost 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 order
public Cursor find(Session session,
SearchRow first,
SearchRow last)
Index
find in interface Indexsession - the sessionfirst - the first row, or null for no limitlast - the last row, or null for no limit
public Cursor findByGeometry(TableFilter filter,
SearchRow intersection)
SpatialIndex
findByGeometry in interface SpatialIndexfilter - the table filter (which possibly knows about additional
conditions)intersection - the geometry which values should intersect with, or
null for anything
public 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)
Index
remove in interface Indexsession - the sessionpublic void truncate(Session session)
Index
truncate in interface Indexsession - the sessionpublic void checkRename()
DbObjectBase
checkRename in interface DbObjectcheckRename in class DbObjectBasepublic boolean needRebuild()
Index
needRebuild in interface Indexpublic boolean canGetFirstOrLast()
Index
canGetFirstOrLast in interface Index
public Cursor findFirstOrLast(Session session,
boolean first)
Index
findFirstOrLast in interface Indexsession - the sessionfirst - true if the first (lowest for ascending indexes) or last
value should be returned
public void setRecursive(boolean value)
public long getRowCount(Session session)
Index
getRowCount in interface Indexsession - the session
public long getRowCountApproximation()
Index
getRowCountApproximation in interface Indexpublic long getDiskSpaceUsed()
Index
getDiskSpaceUsed in interface Indexpublic boolean isRecursive()
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||