Package org.h2.table
Class InformationSchemaTable
java.lang.Object
org.h2.engine.DbObject
org.h2.schema.SchemaObject
org.h2.table.Table
org.h2.table.MetaTable
org.h2.table.InformationSchemaTable
- All Implemented Interfaces:
HasSQL
This class is responsible to build the INFORMATION_SCHEMA tables.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class
Data type information. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private final boolean
private static final int
private static final int
static final int
The number of meta table types.private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
Fields inherited from class org.h2.table.MetaTable
indexColumn, metaIndex, ROW_COUNT_APPROXIMATION, 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
ConstructorsConstructorDescriptionInformationSchemaTable
(Schema schema, int id, int type) Create a new metadata table. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addConstraintColumnUsage
(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Column column) private void
addPrivilege
(SessionLocal session, ArrayList<Row> rows, DbObject grantee, String catalog, Table table, String column, String right) private void
addPrivileges
(SessionLocal session, ArrayList<Row> rows, DbObject grantee, String catalog, Table table, String column, int rightMask) boolean
canGetRowCount
(SessionLocal session) Check if the row count can be retrieved quickly.private void
checkConstraints
(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, String constraintName) private void
checkConstraints
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
collations
(SessionLocal session, ArrayList<Row> rows, String catalog) private void
collations
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String name, String languageTag) private void
columnPrivileges
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
columns
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Table table, String tableName) private void
columns
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Table table, String tableName, Column c, int ordinalPosition) private void
private void
constants
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Constant constant, String constantName) private void
constants
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
constraintColumnUsage
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
constraintColumnUsage
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog, Constraint constraint) private void
domainConstraints
(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintDomain constraint, Domain domain, String domainName) private void
domainConstraints
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
domains
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Domain domain, String domainName) private void
private void
elementTypes
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String objectSchema, String objectName, String objectType, String collectionIdentifier, String dtdIdentifier, TypeInfo typeInfo) private void
elementTypesFields
(SessionLocal session, ArrayList<Row> rows, String catalog, int type) private void
elementTypesFieldsForTable
(SessionLocal session, ArrayList<Row> rows, String catalog, int type, String mainSchemaName, String collation, String schemaName, Table table) private void
elementTypesFieldsRow
(SessionLocal session, ArrayList<Row> rows, String catalog, int type, String mainSchemaName, String collation, String objectSchema, String objectName, String objectType, String identifier, TypeInfo typeInfo) private void
enumValues
(SessionLocal session, ArrayList<Row> rows, String catalog, String objectSchema, String objectName, String objectType, String enumIdentifier, TypeInfo typeInfo) private void
fields
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String objectSchema, String objectName, String objectType, String rowIdentifier, String fieldName, int ordinalPosition, String dtdIdentifier, TypeInfo typeInfo) generateRows
(SessionLocal session, SearchRow first, SearchRow last) Generate the data for the given metadata table using the given first and last row filters.long
Get the last data modification id.long
getRowCount
(SessionLocal session) Get the row count for this table.private long
getRowCount
(SessionLocal session, boolean approximation) long
getRowCountApproximation
(SessionLocal session) Get the approximated row count for this table.private void
indexColumns
(SessionLocal session, ArrayList<Row> rows, String catalog, Table table, String tableName, Index index) private void
indexes
(SessionLocal session, ArrayList<Row> rows, String catalog, boolean columns, Table table, String tableName) private void
indexes
(SessionLocal session, ArrayList<Row> rows, String catalog, Table table, String tableName, Index index) private void
indexes
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog, boolean columns) private void
inDoubt
(SessionLocal session, ArrayList<Row> rows) private void
informationSchemaCatalogName
(SessionLocal session, ArrayList<Row> rows, String catalog) boolean
isView()
private void
keyColumnUsage
(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, IndexColumn[] indexColumns, Table table, String tableName) private void
keyColumnUsage
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
locks
(SessionLocal session, ArrayList<Row> rows) private void
locks
(SessionLocal session, ArrayList<Row> rows, SessionLocal sessionWithLocks) private void
parameters
(SessionLocal session, ArrayList<Row> rows, String catalog) private void
parameters
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String schema, String specificName, TypeInfo typeInfo, int pos) private void
queryStatistics
(SessionLocal session, ArrayList<Row> rows) private void
referentialConstraints
(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintReferential constraint, String constraintName) private void
referentialConstraints
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
private void
roles
(SessionLocal session, ArrayList<Row> rows) private void
routines
(SessionLocal session, ArrayList<Row> rows, String catalog) private void
routines
(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String schema, String name, String specificName, String routineType, String definition, String externalName, TypeInfo typeInfo, boolean deterministic, String remarks) private void
schemata
(SessionLocal session, ArrayList<Row> rows, String catalog) private void
sequences
(SessionLocal session, ArrayList<Row> rows, String catalog, Sequence sequence, String sequenceName) private void
sequences
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
sessions
(SessionLocal session, ArrayList<Row> rows) private void
sessions
(SessionLocal session, ArrayList<Row> rows, SessionLocal s) private void
sessionState
(SessionLocal session, ArrayList<Row> rows) private void
settings
(SessionLocal session, ArrayList<Row> rows) private void
synonyms
(SessionLocal session, ArrayList<Row> rows, String catalog) private void
tableConstraints
(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, Table table, String tableName) private void
tableConstraints
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
tablePrivileges
(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private void
private void
private void
triggers
(SessionLocal session, ArrayList<Row> rows, String catalog, TriggerObject trigger, String eventManipulation, Table table, String tableName) private void
private void
users
(SessionLocal session, ArrayList<Row> rows) private void
users
(SessionLocal session, ArrayList<Row> rows, User user) private void
private void
Methods inherited from class org.h2.table.MetaTable
add, addIndex, addRow, canDrop, canReference, checkIndex, checkRename, checkSupportAlter, close, column, column, getCreateSQL, getIndexes, getScanIndex, getTableType, hideTable, identifier, isDeterministic, isInsertable, removeChildrenAndResources, removeRow, setMetaTableName, truncate
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, getNullRow, getOnCommitDrop, getOnCommitTruncate, getPrimaryKey, getRow, getRowFactory, getRowIdColumn, getScanIndex, getSQLTableType, getTemplateRow, getTemplateSimpleRow, getTriggers, getType, hasSelectTrigger, isGlobalTemporary, isHidden, isLockedExclusively, isLockedExclusivelyBy, isPersistData, isPersistIndexes, isQueryComparable, isRowLockable, isTableExpression, 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
-
CHARACTER_SET_NAME
- See Also:
-
INFORMATION_SCHEMA_CATALOG_NAME
private static final int INFORMATION_SCHEMA_CATALOG_NAME- See Also:
-
CHECK_CONSTRAINTS
private static final int CHECK_CONSTRAINTS- See Also:
-
COLLATIONS
private static final int COLLATIONS- See Also:
-
COLUMNS
private static final int COLUMNS- See Also:
-
COLUMN_PRIVILEGES
private static final int COLUMN_PRIVILEGES- See Also:
-
CONSTRAINT_COLUMN_USAGE
private static final int CONSTRAINT_COLUMN_USAGE- See Also:
-
DOMAINS
private static final int DOMAINS- See Also:
-
DOMAIN_CONSTRAINTS
private static final int DOMAIN_CONSTRAINTS- See Also:
-
ELEMENT_TYPES
private static final int ELEMENT_TYPES- See Also:
-
FIELDS
private static final int FIELDS- See Also:
-
KEY_COLUMN_USAGE
private static final int KEY_COLUMN_USAGE- See Also:
-
PARAMETERS
private static final int PARAMETERS- See Also:
-
REFERENTIAL_CONSTRAINTS
private static final int REFERENTIAL_CONSTRAINTS- See Also:
-
ROUTINES
private static final int ROUTINES- See Also:
-
SCHEMATA
private static final int SCHEMATA- See Also:
-
SEQUENCES
private static final int SEQUENCES- See Also:
-
TABLES
private static final int TABLES- See Also:
-
TABLE_CONSTRAINTS
private static final int TABLE_CONSTRAINTS- See Also:
-
TABLE_PRIVILEGES
private static final int TABLE_PRIVILEGES- See Also:
-
TRIGGERS
private static final int TRIGGERS- See Also:
-
VIEWS
private static final int VIEWS- See Also:
-
CONSTANTS
private static final int CONSTANTS- See Also:
-
ENUM_VALUES
private static final int ENUM_VALUES- See Also:
-
INDEXES
private static final int INDEXES- See Also:
-
INDEX_COLUMNS
private static final int INDEX_COLUMNS- See Also:
-
IN_DOUBT
private static final int IN_DOUBT- See Also:
-
LOCKS
private static final int LOCKS- See Also:
-
QUERY_STATISTICS
private static final int QUERY_STATISTICS- See Also:
-
RIGHTS
private static final int RIGHTS- See Also:
-
ROLES
private static final int ROLES- See Also:
-
SESSIONS
private static final int SESSIONS- See Also:
-
SESSION_STATE
private static final int SESSION_STATE- See Also:
-
SETTINGS
private static final int SETTINGS- See Also:
-
SYNONYMS
private static final int SYNONYMS- See Also:
-
USERS
private static final int USERS- See Also:
-
META_TABLE_TYPE_COUNT
public static final int META_TABLE_TYPE_COUNTThe number of meta table types. Supported meta table types are0..META_TABLE_TYPE_COUNT - 1
.- See Also:
-
isView
private final boolean isView
-
-
Constructor Details
-
InformationSchemaTable
Create a new metadata table.- Parameters:
schema
- the schemaid
- the object idtype
- the meta table type
-
-
Method Details
-
generateRows
Description copied from class:MetaTable
Generate the data for the given metadata table using the given first and last row filters.- Specified by:
generateRows
in classMetaTable
- Parameters:
session
- the sessionfirst
- the first row to returnlast
- the last row to return- Returns:
- the generated rows
-
informationSchemaCatalogName
private void informationSchemaCatalogName(SessionLocal session, ArrayList<Row> rows, String catalog) -
checkConstraints
-
checkConstraints
private void checkConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, String constraintName) -
collations
-
collations
-
columns
-
columns
-
columns
-
columnPrivileges
-
constraintColumnUsage
-
constraintColumnUsage
private void constraintColumnUsage(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog, Constraint constraint) -
domains
-
domains
-
domainConstraints
-
domainConstraints
private void domainConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintDomain constraint, Domain domain, String domainName) -
elementTypesFields
private void elementTypesFields(SessionLocal session, ArrayList<Row> rows, String catalog, int type) -
elementTypesFieldsForTable
-
elementTypesFieldsRow
-
elementTypes
-
fields
-
keyColumnUsage
-
keyColumnUsage
private void keyColumnUsage(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, IndexColumn[] indexColumns, Table table, String tableName) -
parameters
-
parameters
-
referentialConstraints
-
referentialConstraints
private void referentialConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintReferential constraint, String constraintName) -
routines
-
routines
-
schemata
-
sequences
-
sequences
-
tables
-
tables
-
tableConstraints
-
tableConstraints
private void tableConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, Table table, String tableName) -
tablePrivileges
-
triggers
-
triggers
private void triggers(SessionLocal session, ArrayList<Row> rows, String catalog, TriggerObject trigger, String eventManipulation, Table table, String tableName) -
views
-
views
-
constants
-
constants
-
enumValues
-
indexes
-
indexes
-
indexes
-
indexColumns
-
inDoubt
-
locks
-
locks
-
queryStatistics
-
rights
-
roles
-
sessions
-
sessions
-
sessionState
-
settings
-
synonyms
-
users
-
users
-
addConstraintColumnUsage
private void addConstraintColumnUsage(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Column column) -
addPrivileges
-
addPrivilege
-
getMaxDataModificationId
public long getMaxDataModificationId()Description copied from class:Table
Get the last data modification id.- Specified by:
getMaxDataModificationId
in classTable
- Returns:
- the modification id
-
isView
public boolean isView() -
getRowCount
Description copied from class:Table
Get the row count for this table.- Overrides:
getRowCount
in classMetaTable
- Parameters:
session
- the session- Returns:
- the row count
-
getRowCountApproximation
Description copied from class:Table
Get the approximated row count for this table.- Overrides:
getRowCountApproximation
in classMetaTable
- Parameters:
session
- the session- Returns:
- the approximated row count
-
getRowCount
-
canGetRowCount
Description copied from class:Table
Check if the row count can be retrieved quickly.- Overrides:
canGetRowCount
in classMetaTable
- Parameters:
session
- the session- Returns:
- true if it can
-