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 |
|---|
MVSecondaryIndex(Database db,
MVTable table,
int id,
java.lang.String indexName,
IndexColumn[] columns,
IndexType indexType) |
| Modifier and Type | Method and Description |
|---|---|
void |
add(Session session,
Row row)
Add a row to the index.
|
void |
addBufferedRows(java.util.List<java.lang.String> bufferNames)
Add all the index data from the buffers to the index.
|
void |
addRowsToBuffer(java.util.List<Row> rows,
java.lang.String bufferName)
Add the rows to a temporary storage (not to the index yet).
|
boolean |
canFindNext()
Check if the index can get the next higher value.
|
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.
|
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.
|
Cursor |
findNext(Session session,
SearchRow higherThan,
SearchRow last)
Find a row or a list of rows that is larger and create a cursor to
iterate over the result.
|
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.
|
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.
|
MVTable |
getTable()
Get the table on which this index is based.
|
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.
|
canScan, checkIndexColumnTypes, commit, compareRows, createLookupBatch, find, getColumnIndex, getColumns, getCostRangeIndex, getCreateSQL, getCreateSQLForCopy, getDropSQL, getDuplicateKeyException, getIndexColumns, getIndexType, getPlanSQL, getRow, 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, waitcanScan, commit, compareRows, createLookupBatch, find, getColumnIndex, getColumns, getIndexColumns, getIndexType, getPlanSQL, getRow, isFindUsingFullTableScan, isFirstColumn, isRowIdIndex, setSortedInsertModegetSchema, isHiddengetChildren, getComment, getCreateSQL, getCreateSQLForCopy, getDatabase, getDropSQL, getId, getName, getSQL, getType, isTemporary, removeChildrenAndResources, rename, setComment, setTemporarypublic MVSecondaryIndex(Database db, MVTable table, int id, java.lang.String indexName, IndexColumn[] columns, IndexType indexType)
public void addRowsToBuffer(java.util.List<Row> rows, java.lang.String bufferName)
MVIndexaddRowsToBuffer in interface MVIndexrows - the rowsbufferName - the name of the temporary storagepublic void addBufferedRows(java.util.List<java.lang.String> bufferNames)
MVIndexaddBufferedRows in interface MVIndexbufferNames - the names of the temporary storagepublic void add(Session session, Row row)
Indexpublic void remove(Session session, Row row)
Indexpublic Cursor find(Session session, SearchRow first, SearchRow last)
Indexpublic MVTable getTable()
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 void remove(Session session)
Indexpublic void truncate(Session session)
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 boolean needRebuild()
IndexneedRebuild in interface Indexpublic long getRowCount(Session session)
IndexgetRowCount in interface Indexsession - the sessionpublic long getRowCountApproximation()
IndexgetRowCountApproximation in interface Indexpublic long getDiskSpaceUsed()
IndexgetDiskSpaceUsed in interface Indexpublic boolean canFindNext()
IndexcanFindNext in interface IndexcanFindNext in class BaseIndexpublic Cursor findNext(Session session, SearchRow higherThan, SearchRow last)
BaseIndexpublic void checkRename()
DbObjectBasecheckRename in interface DbObjectcheckRename in class DbObjectBase