Package org.h2.index
Class RangeIndex
- java.lang.Object
-
- org.h2.engine.DbObject
-
- org.h2.schema.SchemaObject
-
- org.h2.index.Index
-
- org.h2.index.VirtualTableIndex
-
- org.h2.index.RangeIndex
-
- All Implemented Interfaces:
HasSQL
public class RangeIndex extends VirtualTableIndex
An index for the SYSTEM_RANGE table. This index can only scan through all rows, search is not supported.
-
-
Field Summary
Fields Modifier and Type Field Description private RangeTable
rangeTable
-
Fields inherited from class org.h2.index.Index
columnIds, columns, indexColumns, indexType, table, uniqueColumnColumn
-
Fields inherited from class org.h2.engine.DbObject
AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, USER
-
Fields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS
-
-
Constructor Summary
Constructors Constructor Description RangeIndex(RangeTable table, IndexColumn[] columns)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canGetFirstOrLast()
Check if the index can directly look up the lowest or highest value of a column.Cursor
find(SessionLocal session, SearchRow first, SearchRow last)
Find a row or a list of rows and create a cursor to iterate over the result.Cursor
findFirstOrLast(SessionLocal session, boolean first)
Find the first (or last) value of this index.double
getCost(SessionLocal session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, AllColumnsForPlan allColumnsSet)
Estimate the cost to search for rows given the search mask.java.lang.String
getCreateSQL()
Construct the CREATE ...java.lang.String
getPlanSQL()
Get the message to show in a EXPLAIN statement.-
Methods inherited from class org.h2.index.VirtualTableIndex
add, checkRename, close, getRowCount, getRowCountApproximation, needRebuild, remove, remove, truncate
-
Methods inherited from class org.h2.index.Index
canFindNext, canScan, checkIndexColumnTypes, compareRows, findNext, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQLForCopy, getDiskSpaceUsed, getDuplicateKeyException, getDuplicatePrimaryKeyMessage, getIndexColumns, getIndexType, getRow, getRowFactory, getTable, getType, getUniqueColumnCount, getUniqueRowFactory, isFindUsingFullTableScan, isFirstColumn, isHidden, isRowIdIndex, mayHaveNullDuplicates, removeChildrenAndResources, update
-
Methods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL, getSQL
-
Methods inherited from class org.h2.engine.DbObject
getChildren, getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, invalidate, isTemporary, isValid, 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.util.HasSQL
getTraceSQL
-
-
-
-
Field Detail
-
rangeTable
private final RangeTable rangeTable
-
-
Constructor Detail
-
RangeIndex
public RangeIndex(RangeTable table, IndexColumn[] columns)
-
-
Method Detail
-
find
public Cursor find(SessionLocal session, SearchRow first, SearchRow last)
Description copied from class:Index
Find a row or a list of rows and create a cursor to iterate over the result.
-
getCost
public double getCost(SessionLocal session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, AllColumnsForPlan allColumnsSet)
Description copied from class:Index
Estimate the cost to search for rows given the search mask. There is one element per column in the search mask. For possible search masks, see IndexCondition.- Specified by:
getCost
in classIndex
- Parameters:
session
- 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 columns- Returns:
- the estimated cost
-
getCreateSQL
public java.lang.String getCreateSQL()
Description copied from class:DbObject
Construct the CREATE ... SQL statement for this object.- Overrides:
getCreateSQL
in classIndex
- Returns:
- the SQL statement
-
canGetFirstOrLast
public boolean canGetFirstOrLast()
Description copied from class:Index
Check if the index can directly look up the lowest or highest value of a column.- Overrides:
canGetFirstOrLast
in classIndex
- Returns:
- true if it can
-
findFirstOrLast
public Cursor findFirstOrLast(SessionLocal session, boolean first)
Description copied from class:Index
Find the first (or last) value of this index. The cursor returned is positioned on the correct row, or on null if no row has been found.- Overrides:
findFirstOrLast
in classIndex
- Parameters:
session
- the sessionfirst
- true if the first (lowest for ascending indexes) or last value should be returned- Returns:
- a cursor (never null)
-
getPlanSQL
public java.lang.String getPlanSQL()
Description copied from class:Index
Get the message to show in a EXPLAIN statement.- Overrides:
getPlanSQL
in classIndex
- Returns:
- the plan
-
-