Package org.h2.jdbc.meta
Class DatabaseMetaLocal
- java.lang.Object
-
- org.h2.jdbc.meta.DatabaseMeta
-
- org.h2.jdbc.meta.DatabaseMetaLocalBase
-
- org.h2.jdbc.meta.DatabaseMetaLocal
-
public final class DatabaseMetaLocal extends DatabaseMetaLocalBase
Local implementation of database meta information.
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description DatabaseMetaLocal(SessionLocal session)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addCrossReferenceResult(SimpleResult result, Value catalog, java.lang.String pkSchema, Table pkTable, java.lang.String fkSchema, Table fkTable, ConstraintReferential fk)
private void
addPrivilege(SimpleResult result, Value catalogValue, Value schemaValue, Value tableValue, Value granteeValue, java.lang.String right, boolean isAdmin, CompareLike columnLike, Column[] columns)
private void
addPrivileges(SimpleResult result, Value catalogValue, java.lang.String schemaName, java.lang.String tableName, DbObject grantee, int rightMask, CompareLike columnLike, Column[] columns)
private boolean
checkCatalogName(java.lang.String catalog)
(package private) void
checkClosed()
private boolean
checkSchema(java.lang.String schemaName, Schema schema)
DefaultNullOrdering
defaultNullOrdering()
INTERNALResultInterface
getBestRowIdentifier(java.lang.String catalog, java.lang.String schema, java.lang.String table, int scope, boolean nullable)
INTERNALResultInterface
getCatalogs()
INTERNALResultInterface
getColumnPrivileges(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String columnNamePattern)
INTERNALResultInterface
getColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)
INTERNALprivate void
getColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, CompareLike columnLike)
ResultInterface
getCrossReference(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable)
INTERNALprivate Value
getDataTypeName(TypeInfo typeInfo)
ResultInterface
getExportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
INTERNALprivate java.lang.String
getFunctions(java.lang.String section)
ResultInterface
getImportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
INTERNALResultInterface
getIndexInfo(java.lang.String catalog, java.lang.String schema, java.lang.String table, boolean unique, boolean approximate)
INTERNALprivate void
getIndexInfo(Value catalogValue, Value schemaValue, Table table, boolean unique, boolean approximate, SimpleResult result, Database db)
private CompareLike
getLike(java.lang.String pattern)
java.lang.String
getNumericFunctions()
INTERNALResultInterface
getPrimaryKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
INTERNALprivate void
getProcedureColumnAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value procedureNameValue, Value specificNameValue, TypeInfo type, boolean notNull, int ordinal)
ResultInterface
getProcedureColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern)
INTERNALResultInterface
getProcedures(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern)
INTERNALprivate void
getProceduresAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value procedureNameValue, java.lang.String comment, ValueSmallint procedureType, Value specificNameValue)
ResultInterface
getPseudoColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)
INTERNALprivate void
getPseudoColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, CompareLike columnLike, Column c)
private void
getPseudoColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, CompareLike columnLike)
private static Value
getRadix(int valueType, boolean small)
private static ValueSmallint
getRefAction(ConstraintActionType action)
ResultInterface
getSchemas()
INTERNALprivate java.util.Collection<Schema>
getSchemas(java.lang.String schema)
ResultInterface
getSchemas(java.lang.String catalog, java.lang.String schemaPattern)
INTERNALprivate java.util.Collection<Schema>
getSchemasForPattern(java.lang.String schemaPattern)
java.lang.String
getSearchStringEscape()
INTERNALjava.lang.String
getSQLKeywords()
INTERNAL(package private) Value
getString(java.lang.String string)
java.lang.String
getStringFunctions()
INTERNALjava.lang.String
getSystemFunctions()
INTERNALResultInterface
getTablePrivileges(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)
INTERNALResultInterface
getTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String[] types)
INTERNALprivate void
getTablesAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, boolean synonym, java.util.HashSet<java.lang.String> typesSet)
private java.util.Collection<? extends SchemaObject>
getTablesForPattern(Schema schema, java.lang.String tablePattern)
ResultInterface
getTableTypes()
INTERNALjava.lang.String
getTimeDateFunctions()
INTERNALResultInterface
getTypeInfo()
INTERNALprivate SimpleResult
initCrossReferenceResult()
-
Methods inherited from class org.h2.jdbc.meta.DatabaseMetaLocalBase
getAttributes, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductVersion, getFunctionColumns, getFunctions, getPseudoColumnsResult, getSuperTables, getSuperTypes, getUDTs, getVersionColumns
-
-
-
-
Field Detail
-
YES
private static final Value YES
-
NO
private static final Value NO
-
BEST_ROW_SESSION
private static final ValueSmallint BEST_ROW_SESSION
-
BEST_ROW_NOT_PSEUDO
private static final ValueSmallint BEST_ROW_NOT_PSEUDO
-
COLUMN_NO_NULLS
private static final ValueInteger COLUMN_NO_NULLS
-
COLUMN_NO_NULLS_SMALL
private static final ValueSmallint COLUMN_NO_NULLS_SMALL
-
COLUMN_NULLABLE
private static final ValueInteger COLUMN_NULLABLE
-
COLUMN_NULLABLE_UNKNOWN_SMALL
private static final ValueSmallint COLUMN_NULLABLE_UNKNOWN_SMALL
-
IMPORTED_KEY_CASCADE
private static final ValueSmallint IMPORTED_KEY_CASCADE
-
IMPORTED_KEY_RESTRICT
private static final ValueSmallint IMPORTED_KEY_RESTRICT
-
IMPORTED_KEY_DEFAULT
private static final ValueSmallint IMPORTED_KEY_DEFAULT
-
IMPORTED_KEY_SET_NULL
private static final ValueSmallint IMPORTED_KEY_SET_NULL
-
IMPORTED_KEY_NOT_DEFERRABLE
private static final ValueSmallint IMPORTED_KEY_NOT_DEFERRABLE
-
PROCEDURE_COLUMN_IN
private static final ValueSmallint PROCEDURE_COLUMN_IN
-
PROCEDURE_COLUMN_RETURN
private static final ValueSmallint PROCEDURE_COLUMN_RETURN
-
PROCEDURE_NO_RESULT
private static final ValueSmallint PROCEDURE_NO_RESULT
-
PROCEDURE_RETURNS_RESULT
private static final ValueSmallint PROCEDURE_RETURNS_RESULT
-
TABLE_INDEX_HASHED
private static final ValueSmallint TABLE_INDEX_HASHED
-
TABLE_INDEX_OTHER
private static final ValueSmallint TABLE_INDEX_OTHER
-
TABLE_TYPES
private static final java.lang.String[] TABLE_TYPES
-
TYPE_NULLABLE
private static final ValueSmallint TYPE_NULLABLE
-
TYPE_SEARCHABLE
private static final ValueSmallint TYPE_SEARCHABLE
-
NO_USAGE_RESTRICTIONS
private static final Value NO_USAGE_RESTRICTIONS
-
session
private final SessionLocal session
-
-
Constructor Detail
-
DatabaseMetaLocal
public DatabaseMetaLocal(SessionLocal session)
-
-
Method Detail
-
defaultNullOrdering
public final DefaultNullOrdering defaultNullOrdering()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
defaultNullOrdering
in classDatabaseMeta
- Returns:
- DefaultNullOrdering
- See Also:
DatabaseMetaData.nullsAreSortedHigh()
,DatabaseMetaData.nullsAreSortedLow()
,DatabaseMetaData.nullsAreSortedAtStart()
,DatabaseMetaData.nullsAreSortedAtEnd()
-
getSQLKeywords
public java.lang.String getSQLKeywords()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getSQLKeywords
in classDatabaseMeta
- Returns:
- list of supported SQL keywords
- See Also:
DatabaseMetaData.getSQLKeywords()
-
getNumericFunctions
public java.lang.String getNumericFunctions()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getNumericFunctions
in classDatabaseMeta
- Returns:
- list of supported numeric functions
- See Also:
DatabaseMetaData.getNumericFunctions()
-
getStringFunctions
public java.lang.String getStringFunctions()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getStringFunctions
in classDatabaseMeta
- Returns:
- list of supported string functions
- See Also:
DatabaseMetaData.getStringFunctions()
-
getSystemFunctions
public java.lang.String getSystemFunctions()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getSystemFunctions
in classDatabaseMeta
- Returns:
- list of supported system functions
- See Also:
DatabaseMetaData.getSystemFunctions()
-
getTimeDateFunctions
public java.lang.String getTimeDateFunctions()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getTimeDateFunctions
in classDatabaseMeta
- Returns:
- list of supported time/date functions
- See Also:
DatabaseMetaData.getTimeDateFunctions()
-
getFunctions
private java.lang.String getFunctions(java.lang.String section)
-
getSearchStringEscape
public java.lang.String getSearchStringEscape()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getSearchStringEscape
in classDatabaseMeta
- Returns:
- search string escape sequence
- See Also:
DatabaseMetaData.getSearchStringEscape()
-
getProcedures
public ResultInterface getProcedures(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getProcedures
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resultprocedureNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getProcedures(String, String, String)
-
getProceduresAdd
private void getProceduresAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value procedureNameValue, java.lang.String comment, ValueSmallint procedureType, Value specificNameValue)
-
getProcedureColumns
public ResultInterface getProcedureColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getProcedureColumns
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resultprocedureNamePattern
- "LIKE" style pattern to filter resultcolumnNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getProcedureColumns(String, String, String, String)
-
getProcedureColumnAdd
private void getProcedureColumnAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value procedureNameValue, Value specificNameValue, TypeInfo type, boolean notNull, int ordinal)
-
getTables
public ResultInterface getTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String[] types)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getTables
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resulttableNamePattern
- "LIKE" style pattern to filter resulttypes
- String[]- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getTables(String, String, String, String[])
-
getTablesAdd
private void getTablesAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, boolean synonym, java.util.HashSet<java.lang.String> typesSet)
-
getSchemas
public ResultInterface getSchemas()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getSchemas
in classDatabaseMeta
- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getSchemas()
-
getCatalogs
public ResultInterface getCatalogs()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getCatalogs
in classDatabaseMeta
- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getCatalogs()
-
getTableTypes
public ResultInterface getTableTypes()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getTableTypes
in classDatabaseMeta
- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getTableTypes()
-
getColumns
public ResultInterface getColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getColumns
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resulttableNamePattern
- "LIKE" style pattern to filter resultcolumnNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getColumns(String, String, String, String)
-
getColumnsAdd
private void getColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, CompareLike columnLike)
-
getColumnPrivileges
public ResultInterface getColumnPrivileges(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String columnNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getColumnPrivileges
in classDatabaseMeta
- Parameters:
catalog
- to inspectschema
- to inspecttable
- to inspectcolumnNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getColumnPrivileges(String, String, String, String)
-
getTablePrivileges
public ResultInterface getTablePrivileges(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getTablePrivileges
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resulttableNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getTablePrivileges(String, String, String)
-
addPrivileges
private void addPrivileges(SimpleResult result, Value catalogValue, java.lang.String schemaName, java.lang.String tableName, DbObject grantee, int rightMask, CompareLike columnLike, Column[] columns)
-
addPrivilege
private void addPrivilege(SimpleResult result, Value catalogValue, Value schemaValue, Value tableValue, Value granteeValue, java.lang.String right, boolean isAdmin, CompareLike columnLike, Column[] columns)
-
getBestRowIdentifier
public ResultInterface getBestRowIdentifier(java.lang.String catalog, java.lang.String schema, java.lang.String table, int scope, boolean nullable)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getBestRowIdentifier
in classDatabaseMeta
- Parameters:
catalog
- "LIKE" style pattern to filter resultschema
- "LIKE" style pattern to filter resulttable
- table of interestscope
- of interestnullable
- include nullable columns- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getBestRowIdentifier(String, String, String, int, boolean)
-
getPrimaryKeys
public ResultInterface getPrimaryKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getPrimaryKeys
in classDatabaseMeta
- Parameters:
catalog
- to inspectschema
- to inspecttable
- to inspect- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getPrimaryKeys(String, String, String)
-
getImportedKeys
public ResultInterface getImportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getImportedKeys
in classDatabaseMeta
- Parameters:
catalog
- to inspectschema
- to inspecttable
- to inspect- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getImportedKeys(String, String, String)
-
getExportedKeys
public ResultInterface getExportedKeys(java.lang.String catalog, java.lang.String schema, java.lang.String table)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getExportedKeys
in classDatabaseMeta
- Parameters:
catalog
- to inspectschema
- to inspecttable
- to inspect- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getExportedKeys(String, String, String)
-
getCrossReference
public ResultInterface getCrossReference(java.lang.String primaryCatalog, java.lang.String primarySchema, java.lang.String primaryTable, java.lang.String foreignCatalog, java.lang.String foreignSchema, java.lang.String foreignTable)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getCrossReference
in classDatabaseMeta
- Parameters:
primaryCatalog
- to inspectprimarySchema
- to inspectprimaryTable
- to inspectforeignCatalog
- to inspectforeignSchema
- to inspectforeignTable
- to inspect- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getCrossReference(String, String, String, String, String, String)
-
initCrossReferenceResult
private SimpleResult initCrossReferenceResult()
-
addCrossReferenceResult
private void addCrossReferenceResult(SimpleResult result, Value catalog, java.lang.String pkSchema, Table pkTable, java.lang.String fkSchema, Table fkTable, ConstraintReferential fk)
-
getRefAction
private static ValueSmallint getRefAction(ConstraintActionType action)
-
getTypeInfo
public ResultInterface getTypeInfo()
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getTypeInfo
in classDatabaseMeta
- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getTypeInfo()
-
getRadix
private static Value getRadix(int valueType, boolean small)
-
getIndexInfo
public ResultInterface getIndexInfo(java.lang.String catalog, java.lang.String schema, java.lang.String table, boolean unique, boolean approximate)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getIndexInfo
in classDatabaseMeta
- Parameters:
catalog
- to inspectschema
- to inspecttable
- to inspectunique
- onlyapproximate
- allowed- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getIndexInfo(String, String, String, boolean, boolean)
-
getIndexInfo
private void getIndexInfo(Value catalogValue, Value schemaValue, Table table, boolean unique, boolean approximate, SimpleResult result, Database db)
-
getSchemas
public ResultInterface getSchemas(java.lang.String catalog, java.lang.String schemaPattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getSchemas
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getSchemas(String, String)
-
getPseudoColumns
public ResultInterface getPseudoColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)
Description copied from class:DatabaseMeta
INTERNAL- Specified by:
getPseudoColumns
in classDatabaseMeta
- Parameters:
catalog
- to inspectschemaPattern
- "LIKE" style pattern to filter resulttableNamePattern
- "LIKE" style pattern to filter resultcolumnNamePattern
- "LIKE" style pattern to filter result- Returns:
- ResultInterface
- See Also:
DatabaseMetaData.getPseudoColumns(String, String, String, String)
-
getPseudoColumnsAdd
private void getPseudoColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, Table t, CompareLike columnLike)
-
getPseudoColumnsAdd
private void getPseudoColumnsAdd(SimpleResult result, Value catalogValue, Value schemaValue, Value tableName, CompareLike columnLike, Column c)
-
checkClosed
void checkClosed()
- Specified by:
checkClosed
in classDatabaseMetaLocalBase
-
getString
Value getString(java.lang.String string)
-
checkCatalogName
private boolean checkCatalogName(java.lang.String catalog)
-
getSchemas
private java.util.Collection<Schema> getSchemas(java.lang.String schema)
-
getSchemasForPattern
private java.util.Collection<Schema> getSchemasForPattern(java.lang.String schemaPattern)
-
getTablesForPattern
private java.util.Collection<? extends SchemaObject> getTablesForPattern(Schema schema, java.lang.String tablePattern)
-
checkSchema
private boolean checkSchema(java.lang.String schemaName, Schema schema)
-
getLike
private CompareLike getLike(java.lang.String pattern)
-
-