Package org.h2.table
Class MetaTable
java.lang.Object
org.h2.engine.DbObject
org.h2.schema.SchemaObject
org.h2.table.Table
org.h2.table.MetaTable
- All Implemented Interfaces:
HasSQL
- Direct Known Subclasses:
InformationSchemaTable
,InformationSchemaTableLegacy
,PgCatalogTable
This class is responsible to build the database meta data pseudo tables.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
The indexed column.protected MetaIndex
The index for this table.static final long
The approximate number of rows of a meta table.protected final int
The table type.Fields inherited from class org.h2.table.Table
columns, compareMode, EXCLUSIVE_LOCK, isHidden, READ_LOCK, TYPE_CACHED, TYPE_MEMORY, WRITE_LOCK
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 -
Method Summary
Modifier and TypeMethodDescriptionprotected final void
add
(SessionLocal session, ArrayList<Row> rows, Object... stringsOrValues) Add a row to a list.final Index
addIndex
(SessionLocal session, String indexName, int indexId, IndexColumn[] cols, int uniqueColumnCount, IndexType indexType, boolean create, String indexComment) Create an index for this tablefinal void
addRow
(SessionLocal session, Row row) Add a row to the table and all indexes.final boolean
canDrop()
Check if this table can be dropped.boolean
canGetRowCount
(SessionLocal session) Check if the row count can be retrieved quickly.final boolean
Check if this table can be referenced.protected final boolean
checkIndex
(SessionLocal session, String value, Value indexFrom, Value indexTo) Checks index conditions.final void
Check if renaming is allowed.final void
Check if this table supports ALTER TABLE.final void
close
(SessionLocal session) Close the table object and flush changes.(package private) final Column
Creates a column with the specified name and character string data type.protected final Column
Creates a column with the specified name and data type.generateRows
(SessionLocal session, SearchRow first, SearchRow last) Generate the data for the given metadata table using the given first and last row filters.final String
Construct the CREATE ...Get all indexes for this table.long
getRowCount
(SessionLocal session) Get the row count for this table.long
getRowCountApproximation
(SessionLocal session) Get the approximated row count for this table.final Index
getScanIndex
(SessionLocal session) Get the scan index to iterate through all rows.final TableType
Get the table type nameprotected final boolean
hideTable
(Table table, SessionLocal session) Check whether to hide the table.protected final String
identifier
(String s) If needed, convert the identifier to lower case.final boolean
Check if the table is deterministic.boolean
Returns whether this table is insertable.final void
removeChildrenAndResources
(SessionLocal session) Delete all dependent children objects and resources of this object.final void
removeRow
(SessionLocal session, Row row) Remove a row from the table and all indexes.protected final void
setMetaTableName
(String upperName) final long
truncate
(SessionLocal session) Remove all rows from the table and indexes.Methods inherited from class org.h2.table.Table
addConstraint, addDependencies, addDependentView, addSequence, addSynonym, addTrigger, canTruncate, checkDeadlock, checkWritingAllowed, compareValues, convertInsertRow, convertUpdateRow, createRow, doesColumnExist, dropMultipleColumnsConstraintsAndIndexes, findColumn, findPrimaryKey, fire, fireAfterRow, fireBeforeRow, fireRow, getBestPlanItem, getCheckForeignKeyConstraints, getChildren, getColumn, getColumn, getColumn, getColumns, getCompareMode, getConstraints, getCreateSQLForCopy, getDependentViews, getDiskSpaceUsed, getIdentityColumn, getIndex, getIndexForColumn, getMainIndexColumn, getMaxDataModificationId, getNullRow, getOnCommitDrop, getOnCommitTruncate, getPrimaryKey, getRow, getRowFactory, getRowIdColumn, getScanIndex, getSQLTableType, getTemplateRow, getTemplateSimpleRow, getTriggers, getType, hasSelectTrigger, isGlobalTemporary, isHidden, isLockedExclusively, isLockedExclusivelyBy, isPersistData, isPersistIndexes, isQueryComparable, isRowLockable, isTableExpression, isView, lock, lockRow, removeColumnExpressionsDependencies, removeConstraint, removeDependentView, removeIndex, removeIndexOrTransferOwnership, removeSequence, removeSynonym, removeTrigger, rename, renameColumn, setCheckForeignKeyConstraints, setColumns, setHidden, setOnCommitDrop, setOnCommitTruncate, setTableExpression, unlock, updateRow, updateRows
Methods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL, getSQL
Methods inherited from class org.h2.engine.DbObject
getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, invalidate, isTemporary, isValid, 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 Details
-
ROW_COUNT_APPROXIMATION
public static final long ROW_COUNT_APPROXIMATIONThe approximate number of rows of a meta table.- See Also:
-
type
protected final int typeThe table type. -
indexColumn
protected int indexColumnThe indexed column. -
metaIndex
The index for this table.
-
-
Constructor Details
-
MetaTable
Create a new metadata table.- Parameters:
schema
- the schemaid
- the object idtype
- the meta table type
-
-
Method Details
-
setMetaTableName
-
column
Creates a column with the specified name and character string data type.- Parameters:
name
- the uppercase column name- Returns:
- the column
-
column
Creates a column with the specified name and data type.- Parameters:
name
- the uppercase column nametype
- the data type- Returns:
- the column
-
getCreateSQL
Description copied from class:DbObject
Construct the CREATE ... SQL statement for this object.- Specified by:
getCreateSQL
in classDbObject
- Returns:
- the SQL statement
-
addIndex
public final Index addIndex(SessionLocal session, String indexName, int indexId, IndexColumn[] cols, int uniqueColumnCount, IndexType indexType, boolean create, String indexComment) Description copied from class:Table
Create an index for this table- Specified by:
addIndex
in classTable
- Parameters:
session
- the sessionindexName
- the name of the indexindexId
- the idcols
- the index columnsuniqueColumnCount
- the count of unique columnsindexType
- the index typecreate
- whether this is a new indexindexComment
- the comment- Returns:
- the index
-
identifier
If needed, convert the identifier to lower case.- Parameters:
s
- the identifier to convert- Returns:
- the converted identifier
-
checkIndex
protected final boolean checkIndex(SessionLocal session, String value, Value indexFrom, Value indexTo) Checks index conditions.- Parameters:
session
- the sessionvalue
- the valueindexFrom
- the lower bound of value, ornull
indexTo
- the higher bound of value, ornull
- Returns:
- whether row should be included into result
-
hideTable
Check whether to hide the table. Tables are never hidden in the system session.- Parameters:
table
- the tablesession
- the session- Returns:
- whether the table is hidden
-
generateRows
Generate the data for the given metadata table using the given first and last row filters.- Parameters:
session
- the sessionfirst
- the first row to returnlast
- the last row to return- Returns:
- the generated rows
-
isInsertable
public boolean isInsertable()Description copied from class:Table
Returns whether this table is insertable.- Overrides:
isInsertable
in classTable
- Returns:
- whether this table is insertable
-
removeRow
Description copied from class:Table
Remove a row from the table and all indexes. -
addRow
Description copied from class:Table
Add a row to the table and all indexes. -
removeChildrenAndResources
Description copied from class:DbObject
Delete all dependent children objects and resources of this object.- Overrides:
removeChildrenAndResources
in classTable
- Parameters:
session
- the session
-
close
Description copied from class:Table
Close the table object and flush changes. -
add
Add a row to a list.- Parameters:
session
- the sessionrows
- the original row liststringsOrValues
- the values, or strings
-
checkRename
public final void checkRename()Description copied from class:DbObject
Check if renaming is allowed. Does nothing when allowed.- Overrides:
checkRename
in classDbObject
-
checkSupportAlter
public final void checkSupportAlter()Description copied from class:Table
Check if this table supports ALTER TABLE.- Specified by:
checkSupportAlter
in classTable
-
truncate
Description copied from class:Table
Remove all rows from the table and indexes. -
getRowCount
Description copied from class:Table
Get the row count for this table.- Specified by:
getRowCount
in classTable
- Parameters:
session
- the session- Returns:
- the row count
-
canGetRowCount
Description copied from class:Table
Check if the row count can be retrieved quickly.- Specified by:
canGetRowCount
in classTable
- Parameters:
session
- the session- Returns:
- true if it can
-
canDrop
public final boolean canDrop()Description copied from class:Table
Check if this table can be dropped. -
getTableType
Description copied from class:Table
Get the table type name- Specified by:
getTableType
in classTable
- Returns:
- the table type name
-
getScanIndex
Description copied from class:Table
Get the scan index to iterate through all rows.- Specified by:
getScanIndex
in classTable
- Parameters:
session
- the session- Returns:
- the index
-
getIndexes
Description copied from class:Table
Get all indexes for this table.- Specified by:
getIndexes
in classTable
- Returns:
- the list of indexes
-
getRowCountApproximation
Description copied from class:Table
Get the approximated row count for this table.- Specified by:
getRowCountApproximation
in classTable
- Parameters:
session
- the session- Returns:
- the approximated row count
-
isDeterministic
public final boolean isDeterministic()Description copied from class:Table
Check if the table is deterministic.- Specified by:
isDeterministic
in classTable
- Returns:
- true if it is
-
canReference
public final boolean canReference()Description copied from class:Table
Check if this table can be referenced.- Overrides:
canReference
in classTable
- Returns:
- true if it can
-