Package org.h2.mvstore.db
Class MVSpatialIndex
- All Implemented Interfaces:
SpatialIndex,HasSQL
This is an index based on a MVRTreeMap.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classA cursor for getBounds() method.private static classA cursor.private static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final TransactionMap<Spatial, Value> (package private) final MVTableThe multi-value table.private final MVRTreeMap<VersionedValue<Value>> Fields inherited from class org.h2.index.Index
columnIds, columns, indexColumns, indexType, table, uniqueColumnColumnFields 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, USERFields 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
ConstructorsConstructorDescriptionMVSpatialIndex(Database db, MVTable table, int id, String indexName, IndexColumn[] columns, int uniqueColumnCount, IndexType indexType) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(SessionLocal session, Row row) Add a row to the index.voidaddBufferedRows(List<String> bufferNames) Add all the index data from the buffers to the index.voidaddRowsToBuffer(List<Row> rows, String bufferName) Add the rows to a temporary storage (not to the index yet).voidclose(SessionLocal session) Close this index.find(SessionLocal session, SearchRow first, SearchRow last) Find a row or a list of rows and create a cursor to iterate over the result.findByGeometry(SessionLocal session, SearchRow first, SearchRow last, SearchRow intersection) Find a row or a list of rows and create a cursor to iterate over the result.getBounds(SessionLocal session) Returns the minimum bounding box that encloses all keys.doublegetCost(SessionLocal session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, AllColumnsForPlan allColumnsSet) Estimate the cost to search for rows given the search mask.static longgetCostRangeIndex(int[] masks, Column[] columns) Compute spatial index costlongGet the used disk space for this index.getEstimatedBounds(SessionLocal session) Returns the estimated minimum bounding box that encloses all keys.private SpatialKeyprivate TransactionMap<Spatial, Value> getMap(SessionLocal session) Get the map to store the data.getMVMap()longgetRowCount(SessionLocal session) Get the row count of this table, for the given session.longgetRowCountApproximation(SessionLocal session) Get the approximated row count for this table.getTable()Get the table on which this index is based.booleanCheck if the index needs to be rebuilt.voidremove(SessionLocal session) Remove the index.voidremove(SessionLocal session, Row row) Remove a row from the index.voidtruncate(SessionLocal session) Remove all rows from the index.Methods inherited from class org.h2.index.Index
canFindNext, canGetFirstOrLast, canScan, checkIndexColumnTypes, compareRows, findFirstOrLast, findNext, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDuplicateKeyException, getDuplicatePrimaryKeyMessage, getIndexColumns, getIndexType, getPlanSQL, getRow, getRowFactory, getType, getUniqueColumnCount, getUniqueRowFactory, isFindUsingFullTableScan, isFirstColumn, isHidden, isRowIdIndex, mayHaveNullDuplicates, removeChildrenAndResources, updateMethods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL, getSQLMethods inherited from class org.h2.engine.DbObject
checkRename, getChildren, getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.h2.util.HasSQL
getTraceSQL
-
Field Details
-
mvTable
The multi-value table. -
dataMap
-
spatialMap
-
-
Constructor Details
-
MVSpatialIndex
public MVSpatialIndex(Database db, MVTable table, int id, String indexName, IndexColumn[] columns, int uniqueColumnCount, IndexType indexType) Constructor.- Parameters:
db- the databasetable- the table instanceid- the index idindexName- the index namecolumns- the indexed columns (only one geometry column allowed)uniqueColumnCount- count of unique columns (0 or 1)indexType- the index type (only spatial index)
-
-
Method Details
-
addRowsToBuffer
Description copied from class:MVIndexAdd the rows to a temporary storage (not to the index yet). The rows are sorted by the index columns. This is to more quickly build the index.- Specified by:
addRowsToBufferin classMVIndex<Spatial,Value> - Parameters:
rows- the rowsbufferName- the name of the temporary storage
-
addBufferedRows
Description copied from class:MVIndexAdd all the index data from the buffers to the index. The index will typically use merge sort to add the data more quickly in sorted order.- Specified by:
addBufferedRowsin classMVIndex<Spatial,Value> - Parameters:
bufferNames- the names of the temporary storage
-
close
Description copied from class:IndexClose this index. -
add
Description copied from class:IndexAdd a row to the index. -
remove
Description copied from class:IndexRemove a row from the index. -
find
Description copied from class:IndexFind a row or a list of rows and create a cursor to iterate over the result. -
findByGeometry
public Cursor findByGeometry(SessionLocal session, SearchRow first, SearchRow last, SearchRow intersection) Description copied from interface:SpatialIndexFind a row or a list of rows and create a cursor to iterate over the result.- Specified by:
findByGeometryin interfaceSpatialIndex- Parameters:
session- the sessionfirst- the lower boundlast- the upper boundintersection- the geometry which values should intersect with, or null for anything- Returns:
- the cursor to iterate over the results
-
getBounds
Returns the minimum bounding box that encloses all keys.- Parameters:
session- the session- Returns:
- the minimum bounding box that encloses all keys, or null
-
getEstimatedBounds
Returns the estimated minimum bounding box that encloses all keys. The returned value may be incorrect.- Parameters:
session- the session- Returns:
- the estimated minimum bounding box that encloses all keys, or null
-
getKey
-
getTable
Description copied from class:IndexGet the table on which this index is based. -
getCost
public double getCost(SessionLocal session, int[] masks, TableFilter[] filters, int filter, SortOrder sortOrder, AllColumnsForPlan allColumnsSet) Description copied from class:IndexEstimate 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:
getCostin 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
-
getCostRangeIndex
Compute spatial index cost- Parameters:
masks- Search maskcolumns- Table columns- Returns:
- Index cost hint
-
remove
Description copied from class:IndexRemove the index. -
truncate
Description copied from class:IndexRemove all rows from the index. -
needRebuild
public boolean needRebuild()Description copied from class:IndexCheck if the index needs to be rebuilt. This method is called after opening an index.- Specified by:
needRebuildin classIndex- Returns:
- true if a rebuild is required.
-
getRowCount
Description copied from class:IndexGet the row count of this table, for the given session.- Specified by:
getRowCountin classIndex- Parameters:
session- the session- Returns:
- the row count
-
getRowCountApproximation
Description copied from class:IndexGet the approximated row count for this table.- Specified by:
getRowCountApproximationin classIndex- Parameters:
session- the session- Returns:
- the approximated row count
-
getDiskSpaceUsed
public long getDiskSpaceUsed()Description copied from class:IndexGet the used disk space for this index.- Overrides:
getDiskSpaceUsedin classIndex- Returns:
- the estimated number of bytes
-
getMap
Get the map to store the data.- Parameters:
session- the session- Returns:
- the map
-
getMVMap
-