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 classData type information. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate final booleanprivate static final intprivate static final intstatic final intThe number of meta table types.private static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final intFields inherited from class MetaTable
indexColumn, metaIndex, ROW_COUNT_APPROXIMATION, typeFields inherited from class Table
columns, compareMode, EXCLUSIVE_LOCK, isHidden, READ_LOCK, TYPE_CACHED, TYPE_MEMORY, WRITE_LOCKFields inherited from class 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 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 voidaddConstraintColumnUsage(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Column column) private voidaddPrivilege(SessionLocal session, ArrayList<Row> rows, DbObject grantee, String catalog, Table table, String column, String right) private voidaddPrivileges(SessionLocal session, ArrayList<Row> rows, DbObject grantee, String catalog, Table table, String column, int rightMask) booleancanGetRowCount(SessionLocal session) Check if the row count can be retrieved quickly.private voidcheckConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, String constraintName) private voidcheckConstraints(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidcollations(SessionLocal session, ArrayList<Row> rows, String catalog) private voidcollations(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String name, String languageTag) private voidcolumnPrivileges(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidcolumns(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Table table, String tableName) private voidcolumns(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Table table, String tableName, Column c, int ordinalPosition) private voidprivate voidconstants(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Constant constant, String constantName) private voidconstants(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidconstraintColumnUsage(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidconstraintColumnUsage(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog, Constraint constraint) private voiddomainConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintDomain constraint, Domain domain, String domainName) private voiddomainConstraints(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voiddomains(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, Domain domain, String domainName) private voidprivate voidelementTypes(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String objectSchema, String objectName, String objectType, String collectionIdentifier, String dtdIdentifier, TypeInfo typeInfo) private voidelementTypesFields(SessionLocal session, ArrayList<Row> rows, String catalog, int type) private voidelementTypesFieldsForTable(SessionLocal session, ArrayList<Row> rows, String catalog, int type, String mainSchemaName, String collation, String schemaName, Table table) private voidelementTypesFieldsRow(SessionLocal session, ArrayList<Row> rows, String catalog, int type, String mainSchemaName, String collation, String objectSchema, String objectName, String objectType, String identifier, TypeInfo typeInfo) private voidenumValues(SessionLocal session, ArrayList<Row> rows, String catalog, String objectSchema, String objectName, String objectType, String enumIdentifier, TypeInfo typeInfo) private voidfields(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.longGet the last data modification id.longgetRowCount(SessionLocal session) Get the row count for this table.private longgetRowCount(SessionLocal session, boolean approximation) longgetRowCountApproximation(SessionLocal session) Get the approximated row count for this table.private voidindexColumns(SessionLocal session, ArrayList<Row> rows, String catalog, Table table, String tableName, Index index) private voidindexes(SessionLocal session, ArrayList<Row> rows, String catalog, boolean columns, Table table, String tableName) private voidindexes(SessionLocal session, ArrayList<Row> rows, String catalog, Table table, String tableName, Index index) private voidindexes(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog, boolean columns) private voidinDoubt(SessionLocal session, ArrayList<Row> rows) private voidinformationSchemaCatalogName(SessionLocal session, ArrayList<Row> rows, String catalog) booleanisView()private voidkeyColumnUsage(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, IndexColumn[] indexColumns, Table table, String tableName) private voidkeyColumnUsage(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidlocks(SessionLocal session, ArrayList<Row> rows) private voidlocks(SessionLocal session, ArrayList<Row> rows, SessionLocal sessionWithLocks) private voidparameters(SessionLocal session, ArrayList<Row> rows, String catalog) private voidparameters(SessionLocal session, ArrayList<Row> rows, String catalog, String mainSchemaName, String collation, String schema, String specificName, TypeInfo typeInfo, int pos) private voidqueryStatistics(SessionLocal session, ArrayList<Row> rows) private voidreferentialConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, ConstraintReferential constraint, String constraintName) private voidreferentialConstraints(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidprivate voidroles(SessionLocal session, ArrayList<Row> rows) private voidroutines(SessionLocal session, ArrayList<Row> rows, String catalog) private voidroutines(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 voidschemata(SessionLocal session, ArrayList<Row> rows, String catalog) private voidsequences(SessionLocal session, ArrayList<Row> rows, String catalog, Sequence sequence, String sequenceName) private voidsequences(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidsessions(SessionLocal session, ArrayList<Row> rows) private voidsessions(SessionLocal session, ArrayList<Row> rows, SessionLocal s) private voidsessionState(SessionLocal session, ArrayList<Row> rows) private voidsettings(SessionLocal session, ArrayList<Row> rows) private voidsynonyms(SessionLocal session, ArrayList<Row> rows, String catalog) private voidtableConstraints(SessionLocal session, ArrayList<Row> rows, String catalog, Constraint constraint, Constraint.Type constraintType, Table table, String tableName) private voidtableConstraints(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidtablePrivileges(SessionLocal session, Value indexFrom, Value indexTo, ArrayList<Row> rows, String catalog) private voidprivate voidprivate voidtriggers(SessionLocal session, ArrayList<Row> rows, String catalog, TriggerObject trigger, String eventManipulation, Table table, String tableName) private voidprivate voidusers(SessionLocal session, ArrayList<Row> rows) private voidusers(SessionLocal session, ArrayList<Row> rows, User user) private voidprivate voidMethods inherited from class MetaTable
add, addIndex, addRow, canDrop, canReference, checkIndex, checkRename, checkSupportAlter, close, column, column, getCreateSQL, getIndexes, getScanIndex, getTableType, hideTable, identifier, isDeterministic, isInsertable, removeChildrenAndResources, removeRow, setMetaTableName, truncateMethods inherited from class 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, updateRowsMethods inherited from class SchemaObject
getSchema, getSQL, getSQLMethods inherited from class DbObject
getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, invalidate, isTemporary, isValid, setComment, setModified, setObjectName, setTemporary, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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:MetaTableGenerate the data for the given metadata table using the given first and last row filters.- Specified by:
generateRowsin 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:TableGet the last data modification id.- Specified by:
getMaxDataModificationIdin classTable- Returns:
- the modification id
-
isView
-
getRowCount
Description copied from class:TableGet the row count for this table.- Overrides:
getRowCountin classMetaTable- Parameters:
session- the session- Returns:
- the row count
-
getRowCountApproximation
Description copied from class:TableGet the approximated row count for this table.- Overrides:
getRowCountApproximationin classMetaTable- Parameters:
session- the session- Returns:
- the approximated row count
-
getRowCount
-
canGetRowCount
Description copied from class:TableCheck if the row count can be retrieved quickly.- Overrides:
canGetRowCountin classMetaTable- Parameters:
session- the session- Returns:
- true if it can
-