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
public abstract class MetaTable extends Table
This class is responsible to build the database meta data pseudo tables.
-
-
Field Summary
Fields Modifier and Type Field Description protected intindexColumnThe indexed column.protected MetaIndexmetaIndexThe index for this table.static longROW_COUNT_APPROXIMATIONThe approximate number of rows of a meta table.protected inttypeThe 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
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidadd(SessionLocal session, java.util.ArrayList<Row> rows, java.lang.Object... stringsOrValues)Add a row to a list.IndexaddIndex(SessionLocal session, java.lang.String indexName, int indexId, IndexColumn[] cols, int uniqueColumnCount, IndexType indexType, boolean create, java.lang.String indexComment)Create an index for this tablevoidaddRow(SessionLocal session, Row row)Add a row to the table and all indexes.booleancanDrop()Check if this table can be dropped.booleancanGetRowCount(SessionLocal session)Check if the row count can be retrieved quickly.booleancanReference()Check if this table can be referenced.protected booleancheckIndex(SessionLocal session, java.lang.String value, Value indexFrom, Value indexTo)Checks index conditions.voidcheckRename()Check if renaming is allowed.voidcheckSupportAlter()Check if this table supports ALTER TABLE.voidclose(SessionLocal session)Close the table object and flush changes.(package private) Columncolumn(java.lang.String name)Creates a column with the specified name and character string data type.protected Columncolumn(java.lang.String name, TypeInfo type)Creates a column with the specified name and data type.abstract java.util.ArrayList<Row>generateRows(SessionLocal session, SearchRow first, SearchRow last)Generate the data for the given metadata table using the given first and last row filters.java.lang.StringgetCreateSQL()Construct the CREATE ...java.util.ArrayList<Index>getIndexes()Get all indexes for this table.longgetRowCount(SessionLocal session)Get the row count for this table.longgetRowCountApproximation(SessionLocal session)Get the approximated row count for this table.IndexgetScanIndex(SessionLocal session)Get the scan index to iterate through all rows.TableTypegetTableType()Get the table type nameprotected booleanhideTable(Table table, SessionLocal session)Check whether to hide the table.protected java.lang.Stringidentifier(java.lang.String s)If needed, convert the identifier to lower case.booleanisDeterministic()Check if the table is deterministic.booleanisInsertable()Returns whether this table is insertable.voidremoveChildrenAndResources(SessionLocal session)Delete all dependent children objects and resources of this object.voidremoveRow(SessionLocal session, Row row)Remove a row from the table and all indexes.protected voidsetMetaTableName(java.lang.String upperName)longtruncate(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 Detail
-
ROW_COUNT_APPROXIMATION
public static final long ROW_COUNT_APPROXIMATION
The approximate number of rows of a meta table.- See Also:
- Constant Field Values
-
type
protected final int type
The table type.
-
indexColumn
protected int indexColumn
The indexed column.
-
metaIndex
protected MetaIndex metaIndex
The index for this table.
-
-
Constructor Detail
-
MetaTable
protected MetaTable(Schema schema, int id, int type)
Create a new metadata table.- Parameters:
schema- the schemaid- the object idtype- the meta table type
-
-
Method Detail
-
setMetaTableName
protected final void setMetaTableName(java.lang.String upperName)
-
column
final Column column(java.lang.String name)
Creates a column with the specified name and character string data type.- Parameters:
name- the uppercase column name- Returns:
- the column
-
column
protected final Column column(java.lang.String name, TypeInfo type)
Creates a column with the specified name and data type.- Parameters:
name- the uppercase column nametype- the data type- Returns:
- the column
-
getCreateSQL
public final java.lang.String getCreateSQL()
Description copied from class:DbObjectConstruct the CREATE ... SQL statement for this object.- Specified by:
getCreateSQLin classDbObject- Returns:
- the SQL statement
-
addIndex
public final Index addIndex(SessionLocal session, java.lang.String indexName, int indexId, IndexColumn[] cols, int uniqueColumnCount, IndexType indexType, boolean create, java.lang.String indexComment)
Description copied from class:TableCreate an index for this table- Specified by:
addIndexin 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
protected final java.lang.String identifier(java.lang.String s)
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, java.lang.String value, Value indexFrom, Value indexTo)
Checks index conditions.- Parameters:
session- the sessionvalue- the valueindexFrom- the lower bound of value, ornullindexTo- the higher bound of value, ornull- Returns:
- whether row should be included into result
-
hideTable
protected final boolean hideTable(Table table, SessionLocal session)
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
public abstract java.util.ArrayList<Row> generateRows(SessionLocal session, SearchRow first, SearchRow last)
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:TableReturns whether this table is insertable.- Overrides:
isInsertablein classTable- Returns:
- whether this table is insertable
-
removeRow
public final void removeRow(SessionLocal session, Row row)
Description copied from class:TableRemove a row from the table and all indexes.
-
addRow
public final void addRow(SessionLocal session, Row row)
Description copied from class:TableAdd a row to the table and all indexes.
-
removeChildrenAndResources
public final void removeChildrenAndResources(SessionLocal session)
Description copied from class:DbObjectDelete all dependent children objects and resources of this object.- Overrides:
removeChildrenAndResourcesin classTable- Parameters:
session- the session
-
close
public final void close(SessionLocal session)
Description copied from class:TableClose the table object and flush changes.
-
add
protected final void add(SessionLocal session, java.util.ArrayList<Row> rows, java.lang.Object... stringsOrValues)
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:DbObjectCheck if renaming is allowed. Does nothing when allowed.- Overrides:
checkRenamein classDbObject
-
checkSupportAlter
public final void checkSupportAlter()
Description copied from class:TableCheck if this table supports ALTER TABLE.- Specified by:
checkSupportAlterin classTable
-
truncate
public final long truncate(SessionLocal session)
Description copied from class:TableRemove all rows from the table and indexes.
-
getRowCount
public long getRowCount(SessionLocal session)
Description copied from class:TableGet the row count for this table.- Specified by:
getRowCountin classTable- Parameters:
session- the session- Returns:
- the row count
-
canGetRowCount
public boolean canGetRowCount(SessionLocal session)
Description copied from class:TableCheck if the row count can be retrieved quickly.- Specified by:
canGetRowCountin classTable- Parameters:
session- the session- Returns:
- true if it can
-
canDrop
public final boolean canDrop()
Description copied from class:TableCheck if this table can be dropped.
-
getTableType
public final TableType getTableType()
Description copied from class:TableGet the table type name- Specified by:
getTableTypein classTable- Returns:
- the table type name
-
getScanIndex
public final Index getScanIndex(SessionLocal session)
Description copied from class:TableGet the scan index to iterate through all rows.- Specified by:
getScanIndexin classTable- Parameters:
session- the session- Returns:
- the index
-
getIndexes
public final java.util.ArrayList<Index> getIndexes()
Description copied from class:TableGet all indexes for this table.- Specified by:
getIndexesin classTable- Returns:
- the list of indexes
-
getRowCountApproximation
public long getRowCountApproximation(SessionLocal session)
Description copied from class:TableGet the approximated row count for this table.- Specified by:
getRowCountApproximationin classTable- Parameters:
session- the session- Returns:
- the approximated row count
-
isDeterministic
public final boolean isDeterministic()
Description copied from class:TableCheck if the table is deterministic.- Specified by:
isDeterministicin classTable- Returns:
- true if it is
-
canReference
public final boolean canReference()
Description copied from class:TableCheck if this table can be referenced.- Overrides:
canReferencein classTable- Returns:
- true if it can
-
-