org.h2.jdbc

## Class JdbcDatabaseMetaData

- java.lang.Object
- - org.h2.message.TraceObject
  - - org.h2.jdbc.JdbcDatabaseMetaData

All Implemented Interfaces:
  java.sql.DatabaseMetaData, java.sql.Wrapper, JdbcDatabaseMetaDataBackwardsCompat

    public class JdbcDatabaseMetaData
    extends TraceObject
    implements java.sql.DatabaseMetaData, JdbcDatabaseMetaDataBackwardsCompat

Represents the meta data for a database.

### Field Summary

### Fields inherited from class org.h2.message.TraceObject

`ARRAY, BLOB, CALLABLE_STATEMENT, CLOB, CONNECTION, DATA_SOURCE, DATABASE_META_DATA, PARAMETER_META_DATA, PREPARED_STATEMENT, RESULT_SET, RESULT_SET_META_DATA, SAVEPOINT, SQLXML, STATEMENT, trace, XA_DATA_SOURCE, XID`

### Fields inherited from interface java.sql.DatabaseMetaData

`attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, functionColumnIn, functionColumnInOut, functionColumnOut, functionColumnResult, functionColumnUnknown, functionNoNulls, functionNoTable, functionNullable, functionNullableUnknown, functionResultUnknown, functionReturn, functionReturnsTable, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown`

### Method Summary

Methods
`boolean` `allProceduresAreCallable()` Checks if all procedures callable.
`boolean` `allTablesAreSelectable()` Checks if it possible to query all tables returned by getTables.
`boolean` `autoCommitFailureClosesAllResultSets()` Returns whether an exception while auto commit is on closes all result sets.
`boolean` `dataDefinitionCausesTransactionCommit()` Returns whether CREATE/DROP commit an open transaction.
`boolean` `dataDefinitionIgnoredInTransactions()` Returns whether CREATE/DROP do not affect transactions.
`boolean` `deletesAreDetected(int type)` Returns whether deletes are detected.
`boolean` `doesMaxRowSizeIncludeBlobs()` Returns whether the maximum row size includes blobs.
`boolean` `generatedKeyAlwaysReturned()` [Not supported]
`java.sql.ResultSet` `getAttributes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, java.lang.String attributeNamePattern)` [Not supported]
`java.sql.ResultSet` `getBestRowIdentifier(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableName, int scope, boolean nullable)` Gets the list of columns that best identifier a row in a table.
`java.sql.ResultSet` `getCatalogs()` Gets the list of catalogs.
`java.lang.String` `getCatalogSeparator()` Returns the catalog separator.
`java.lang.String` `getCatalogTerm()` Returns the term for "catalog".
`java.sql.ResultSet` `getClientInfoProperties()`
`java.sql.ResultSet` `getColumnPrivileges(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String table, java.lang.String columnNamePattern)` Gets the list of column privileges.
`java.sql.ResultSet` `getColumns(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)` Gets the list of columns.
`java.sql.Connection` `getConnection()` Returns the connection that created this object.
`java.sql.ResultSet` `getCrossReference(java.lang.String primaryCatalogPattern, java.lang.String primarySchemaPattern, java.lang.String primaryTable, java.lang.String foreignCatalogPattern, java.lang.String foreignSchemaPattern, java.lang.String foreignTable)` Gets the list of foreign key columns that references a table, as well as the list of primary key columns that are references by a table.
`int` `getDatabaseMajorVersion()` Gets the major version of the database.
`int` `getDatabaseMinorVersion()` Gets the minor version of the database.
`java.lang.String` `getDatabaseProductName()` Gets the database product name.
`java.lang.String` `getDatabaseProductVersion()` Gets the product version of the database.
`int` `getDefaultTransactionIsolation()` Returns the default transaction isolation level.
`int` `getDriverMajorVersion()` Returns the major version of this driver.
`int` `getDriverMinorVersion()` Returns the minor version of this driver.
`java.lang.String` `getDriverName()` Gets the name of the JDBC driver.
`java.lang.String` `getDriverVersion()` Gets the version number of the driver.
`java.sql.ResultSet` `getExportedKeys(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableName)` Gets the list of foreign key columns that reference a table.
`java.lang.String` `getExtraNameCharacters()` Returns the characters that are allowed for identifiers in addiction to A-Z, a-z, 0-9 and '_'.
`java.sql.ResultSet` `getFunctionColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern, java.lang.String columnNamePattern)` [Not supported] Gets the list of function columns.
`java.sql.ResultSet` `getFunctions(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern)` [Not supported] Gets the list of functions.
`java.lang.String` `getIdentifierQuoteString()` Returns the string used to quote identifiers.
`java.sql.ResultSet` `getImportedKeys(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableName)` Gets the list of primary key columns that are referenced by a table.
`java.sql.ResultSet` `getIndexInfo(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableName, boolean unique, boolean approximate)` Gets the list of indexes for this database.
`int` `getJDBCMajorVersion()` Gets the major version of the supported JDBC API.
`int` `getJDBCMinorVersion()` Gets the minor version of the supported JDBC API.
`int` `getMaxBinaryLiteralLength()` Returns the maximum length for hex values (characters).
`int` `getMaxCatalogNameLength()` Returns the maximum length for a catalog name.
`int` `getMaxCharLiteralLength()` Returns the maximum length for literals.
`int` `getMaxColumnNameLength()` Returns the maximum length for column names.
`int` `getMaxColumnsInGroupBy()` Returns the maximum number of columns in GROUP BY.
`int` `getMaxColumnsInIndex()` Returns the maximum number of columns in CREATE INDEX.
`int` `getMaxColumnsInOrderBy()` Returns the maximum number of columns in ORDER BY.
`int` `getMaxColumnsInSelect()` Returns the maximum number of columns in SELECT.
`int` `getMaxColumnsInTable()` Returns the maximum number of columns in CREATE TABLE.
`int` `getMaxConnections()` Returns the maximum number of open connection.
`int` `getMaxCursorNameLength()` Returns the maximum length for a cursor name.
`int` `getMaxIndexLength()` Returns the maximum length for an index (in bytes).
`int` `getMaxProcedureNameLength()` Returns the maximum length for a procedure name.
`int` `getMaxRowSize()` Returns the maximum size of a row (in bytes).
`int` `getMaxSchemaNameLength()` Returns the maximum length for a schema name.
`int` `getMaxStatementLength()` Returns the maximum length of a statement.
`int` `getMaxStatements()` Returns the maximum number of open statements.
`int` `getMaxTableNameLength()` Returns the maximum length for a table name.
`int` `getMaxTablesInSelect()` Returns the maximum number of tables in a SELECT.
`int` `getMaxUserNameLength()` Returns the maximum length for a user name.
`java.lang.String` `getNumericFunctions()` Returns the list of numeric functions supported by this database.
`java.sql.ResultSet` `getPrimaryKeys(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableName)` Gets the primary key columns for a table.
`java.sql.ResultSet` `getProcedureColumns(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern)` Gets the list of procedure columns.
`java.sql.ResultSet` `getProcedures(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String procedureNamePattern)` Gets the list of procedures.
`java.lang.String` `getProcedureTerm()` Returns the term for "procedure".
`java.sql.ResultSet` `getPseudoColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String columnNamePattern)` [Not supported]
`int` `getResultSetHoldability()` Gets the result set holdability.
`java.sql.RowIdLifetime` `getRowIdLifetime()` Get the lifetime of a rowid.
`java.sql.ResultSet` `getSchemas()` Gets the list of schemas.
`java.sql.ResultSet` `getSchemas(java.lang.String catalogPattern, java.lang.String schemaPattern)` Gets the list of schemas in the database.
`java.lang.String` `getSchemaTerm()` Returns the term for "schema".
`java.lang.String` `getSearchStringEscape()` Returns the default escape character for DatabaseMetaData search patterns.
`java.lang.String` `getSQLKeywords()` Gets the comma-separated list of all SQL keywords that are not supported as table/column/index name, in addition to the SQL:2003 keywords.
`int` `getSQLStateType()` Gets the SQL State type.
`java.lang.String` `getStringFunctions()` Returns the list of string functions supported by this database.
`java.sql.ResultSet` `getSuperTables(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String tableNamePattern)` Get the list of super tables of a table.
`java.sql.ResultSet` `getSuperTypes(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern)` [Not supported]
`java.lang.String` `getSystemFunctions()` Returns the list of system functions supported by this database.
`java.sql.ResultSet` `getTablePrivileges(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableNamePattern)` Gets the list of table privileges.
`java.sql.ResultSet` `getTables(java.lang.String catalogPattern, java.lang.String schemaPattern, java.lang.String tableNamePattern, java.lang.String[] types)` Gets the list of tables in the database.
`java.sql.ResultSet` `getTableTypes()` Gets the list of table types.
`java.lang.String` `getTimeDateFunctions()` Returns the list of date and time functions supported by this database.
`java.sql.ResultSet` `getTypeInfo()` Gets the list of data types.
`java.sql.ResultSet` `getUDTs(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String typeNamePattern, int[] types)` Gets the list of user-defined data types.
`java.lang.String` `getURL()` Returns the database URL for this connection.
`java.lang.String` `getUserName()` Returns the user name as passed to DriverManager.getConnection(url, user, password).
`java.sql.ResultSet` `getVersionColumns(java.lang.String catalog, java.lang.String schema, java.lang.String tableName)` Get the list of columns that are update when any value is updated.
`boolean` `insertsAreDetected(int type)` Returns whether inserts are detected.
`boolean` `isCatalogAtStart()` Returns whether the catalog is at the beginning.
`boolean` `isReadOnly()` Returns the same as Connection.isReadOnly().
`boolean` `isWrapperFor(java.lang.Class<?> iface)` Checks if unwrap can return an object of this class.
`boolean` `locatorsUpdateCopy()` Does the database make a copy before updating.
`boolean` `nullPlusNonNullIsNull()` Returns whether NULL+1 is NULL or not.
`boolean` `nullsAreSortedAtEnd()` Checks if NULL is sorted at the end (no matter if ASC or DESC is used).
`boolean` `nullsAreSortedAtStart()` Checks if NULL is sorted at the beginning (no matter if ASC or DESC is used).
`boolean` `nullsAreSortedHigh()` Checks if NULL is sorted high (bigger than anything that is not null).
`boolean` `nullsAreSortedLow()` Checks if NULL is sorted low (smaller than anything that is not null).
`boolean` `othersDeletesAreVisible(int type)` Returns whether other deletes are visible.
`boolean` `othersInsertsAreVisible(int type)` Returns whether other inserts are visible.
`boolean` `othersUpdatesAreVisible(int type)` Returns whether other updates are visible.
`boolean` `ownDeletesAreVisible(int type)` Returns whether own deletes are visible.
`boolean` `ownInsertsAreVisible(int type)` Returns whether own inserts are visible.
`boolean` `ownUpdatesAreVisible(int type)` Returns whether own updates are visible.
`boolean` `storesLowerCaseIdentifiers()` Checks if for CREATE TABLE Test(ID INT), getTables returns test as the table name.
`boolean` `storesLowerCaseQuotedIdentifiers()` Checks if for CREATE TABLE "Test"(ID INT), getTables returns test as the table name.
`boolean` `storesMixedCaseIdentifiers()` Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are not case sensitive.
`boolean` `storesMixedCaseQuotedIdentifiers()` Checks if for CREATE TABLE "Test"(ID INT), getTables returns Test as the table name and identifiers are case insensitive.
`boolean` `storesUpperCaseIdentifiers()` Checks if for CREATE TABLE Test(ID INT), getTables returns TEST as the table name.
`boolean` `storesUpperCaseQuotedIdentifiers()` Checks if for CREATE TABLE "Test"(ID INT), getTables returns TEST as the table name.
`boolean` `supportsAlterTableWithAddColumn()` Returns whether alter table with add column is supported.
`boolean` `supportsAlterTableWithDropColumn()` Returns whether alter table with drop column is supported.
`boolean` `supportsANSI92EntryLevelSQL()` Returns whether SQL-92 entry level grammar is supported.
`boolean` `supportsANSI92FullSQL()` Returns whether SQL-92 full level grammar is supported.
`boolean` `supportsANSI92IntermediateSQL()` Returns whether SQL-92 intermediate level grammar is supported.
`boolean` `supportsBatchUpdates()` Returns whether batch updates are supported.
`boolean` `supportsCatalogsInDataManipulation()` Returns whether the catalog name in INSERT, UPDATE, DELETE is supported.
`boolean` `supportsCatalogsInIndexDefinitions()` Returns whether the catalog name in CREATE INDEX is supported.
`boolean` `supportsCatalogsInPrivilegeDefinitions()` Returns whether the catalog name in GRANT is supported.
`boolean` `supportsCatalogsInProcedureCalls()` Returns whether the catalog name in procedure calls is supported.
`boolean` `supportsCatalogsInTableDefinitions()` Returns whether the catalog name in CREATE TABLE is supported.
`boolean` `supportsColumnAliasing()` Returns whether column aliasing is supported.
`boolean` `supportsConvert()` Returns whether CONVERT is supported.
`boolean` `supportsConvert(int fromType, int toType)` Returns whether CONVERT is supported for one datatype to another.
`boolean` `supportsCoreSQLGrammar()` Returns whether ODBC Core SQL grammar is supported.
`boolean` `supportsCorrelatedSubqueries()` Returns whether correlated subqueries are supported.
`boolean` `supportsDataDefinitionAndDataManipulationTransactions()` Returns whether data manipulation and CREATE/DROP is supported in transactions.
`boolean` `supportsDataManipulationTransactionsOnly()` Returns whether only data manipulations are supported in transactions.
`boolean` `supportsDifferentTableCorrelationNames()` Returns whether table correlation names (table alias) are restricted to be different than table names.
`boolean` `supportsExpressionsInOrderBy()` Returns whether expression in ORDER BY are supported.
`boolean` `supportsExtendedSQLGrammar()` Returns whether ODBC Extended SQL grammar is supported.
`boolean` `supportsFullOuterJoins()` Returns whether full outer joins are supported.
`boolean` `supportsGetGeneratedKeys()` Does the database support getGeneratedKeys.
`boolean` `supportsGroupBy()` Returns whether GROUP BY is supported.
`boolean` `supportsGroupByBeyondSelect()` Checks whether a GROUP BY clause can use columns that are not in the SELECT clause, provided that it specifies all the columns in the SELECT clause.
`boolean` `supportsGroupByUnrelated()` Returns whether GROUP BY is supported if the column is not in the SELECT list.
`boolean` `supportsIntegrityEnhancementFacility()` Returns whether referential integrity is supported.
`boolean` `supportsLikeEscapeClause()` Returns whether LIKE...
`boolean` `supportsLimitedOuterJoins()` Returns whether limited outer joins are supported.
`boolean` `supportsMinimumSQLGrammar()` Returns whether ODBC Minimum SQL grammar is supported.
`boolean` `supportsMixedCaseIdentifiers()` Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are case sensitive.
`boolean` `supportsMixedCaseQuotedIdentifiers()` Checks if a table created with CREATE TABLE "Test"(ID INT) is a different table than a table created with CREATE TABLE "TEST"(ID INT).
`boolean` `supportsMultipleOpenResults()` Does the database support multiple open result sets.
`boolean` `supportsMultipleResultSets()` Returns whether multiple result sets are supported.
`boolean` `supportsMultipleTransactions()` Returns whether multiple transactions (on different connections) are supported.
`boolean` `supportsNamedParameters()` Does the database support named parameters.
`boolean` `supportsNonNullableColumns()` Returns whether columns with NOT NULL are supported.
`boolean` `supportsOpenCursorsAcrossCommit()` Returns whether open result sets across commits are supported.
`boolean` `supportsOpenCursorsAcrossRollback()` Returns whether open result sets across rollback are supported.
`boolean` `supportsOpenStatementsAcrossCommit()` Returns whether open statements across commit are supported.
`boolean` `supportsOpenStatementsAcrossRollback()` Returns whether open statements across rollback are supported.
`boolean` `supportsOrderByUnrelated()` Returns whether ORDER BY is supported if the column is not in the SELECT list.
`boolean` `supportsOuterJoins()` Returns whether outer joins are supported.
`boolean` `supportsPositionedDelete()` Returns whether positioned deletes are supported.
`boolean` `supportsPositionedUpdate()` Returns whether positioned updates are supported.
`boolean` `supportsResultSetConcurrency(int type, int concurrency)` Returns whether a specific result set concurrency is supported.
`boolean` `supportsResultSetHoldability(int holdability)` Does this database supports a result set holdability.
`boolean` `supportsResultSetType(int type)` Returns whether a specific result set type is supported.
`boolean` `supportsSavepoints()` Does the database support savepoints.
`boolean` `supportsSchemasInDataManipulation()` Returns whether the schema name in INSERT, UPDATE, DELETE is supported.
`boolean` `supportsSchemasInIndexDefinitions()` Returns whether the schema name in CREATE INDEX is supported.
`boolean` `supportsSchemasInPrivilegeDefinitions()` Returns whether the schema name in GRANT is supported.
`boolean` `supportsSchemasInProcedureCalls()` Returns whether the schema name in procedure calls is supported.
`boolean` `supportsSchemasInTableDefinitions()` Returns whether the schema name in CREATE TABLE is supported.
`boolean` `supportsSelectForUpdate()` Returns whether SELECT ...
`boolean` `supportsStatementPooling()` Does the database support statement pooling.
`boolean` `supportsStoredFunctionsUsingCallSyntax()` Returns whether the database supports calling functions using the call syntax.
`boolean` `supportsStoredProcedures()` Returns whether stored procedures are supported.
`boolean` `supportsSubqueriesInComparisons()` Returns whether subqueries (SELECT) in comparisons are supported.
`boolean` `supportsSubqueriesInExists()` Returns whether SELECT in EXISTS is supported.
`boolean` `supportsSubqueriesInIns()` Returns whether IN(SELECT...) is supported.
`boolean` `supportsSubqueriesInQuantifieds()` Returns whether subqueries in quantified expression are supported.
`boolean` `supportsTableCorrelationNames()` Returns whether table correlation names (table alias) are supported.
`boolean` `supportsTransactionIsolationLevel(int level)` Returns whether a specific transaction isolation level is supported.
`boolean` `supportsTransactions()` Returns whether transactions are supported.
`boolean` `supportsUnion()` Returns whether UNION SELECT is supported.
`boolean` `supportsUnionAll()` Returns whether UNION ALL SELECT is supported.
`java.lang.String` `toString()` INTERNAL
`<T> T` `unwrap(java.lang.Class<T> iface)` Return an object of this class if possible.
`boolean` `updatesAreDetected(int type)` Returns whether updates are detected.
`boolean` `usesLocalFilePerTable()` Checks if this database use one file per table.
`boolean` `usesLocalFiles()` Checks if this database store data in local files.

### Methods inherited from class org.h2.message.TraceObject

`debugCode, debugCodeAssign, debugCodeCall, debugCodeCall, debugCodeCall, getNextId, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, unsupported`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### getDriverMajorVersion

    public int getDriverMajorVersion()

Returns the major version of this driver.

Specified by:
  `getDriverMajorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the major version number

#### getDriverMinorVersion

    public int getDriverMinorVersion()

Returns the minor version of this driver.

Specified by:
  `getDriverMinorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the minor version number

#### getDatabaseProductName

    public java.lang.String getDatabaseProductName()

Gets the database product name.

Specified by:
  `getDatabaseProductName` in interface `java.sql.DatabaseMetaData`
Returns:
  the product name ("H2")

#### getDatabaseProductVersion

    public java.lang.String getDatabaseProductVersion()

Gets the product version of the database.

Specified by:
  `getDatabaseProductVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the product version

#### getDriverName

    public java.lang.String getDriverName()

Gets the name of the JDBC driver.

Specified by:
  `getDriverName` in interface `java.sql.DatabaseMetaData`
Returns:
  the driver name ("H2 JDBC Driver")

#### getDriverVersion

    public java.lang.String getDriverVersion()

Gets the version number of the driver. The format is [MajorVersion].[MinorVersion].

Specified by:
  `getDriverVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the version number

#### getTables

    public java.sql.ResultSet getTables(java.lang.String catalogPattern,
                               java.lang.String schemaPattern,
                               java.lang.String tableNamePattern,
                               java.lang.String[] types)
                                 throws java.sql.SQLException

Gets the list of tables in the database. The result set is sorted by TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. TABLE_TYPE (String) table type
5. REMARKS (String) comment
6. TYPE_CAT (String) always null
7. TYPE_SCHEM (String) always null
8. TYPE_NAME (String) always null
9. SELF_REFERENCING_COL_NAME (String) always null
10. REF_GENERATION (String) always null
11. SQL (String) the create table statement or NULL for systems tables.

Specified by:
  `getTables` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableNamePattern` - null (to get all objects) or a table name (uppercase for unquoted names)
  `types` - null or a list of table types
Returns:
  the list of columns
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getColumns

    public java.sql.ResultSet getColumns(java.lang.String catalogPattern,
                                java.lang.String schemaPattern,
                                java.lang.String tableNamePattern,
                                java.lang.String columnNamePattern)
                                  throws java.sql.SQLException

Gets the list of columns. The result set is sorted by TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. COLUMN_NAME (String) column name
5. DATA_TYPE (short) data type (see java.sql.Types)
6. TYPE_NAME (String) data type name ("INTEGER", "VARCHAR",...)
7. COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
8. BUFFER_LENGTH (int) unused
9. DECIMAL_DIGITS (int) scale (0 for INTEGER and VARCHAR)
10. NUM_PREC_RADIX (int) radix (always 10)
11. NULLABLE (int) columnNoNulls or columnNullable
12. REMARKS (String) comment (always empty)
13. COLUMN_DEF (String) default value
14. SQL_DATA_TYPE (int) unused
15. SQL_DATETIME_SUB (int) unused
16. CHAR_OCTET_LENGTH (int) unused
17. ORDINAL_POSITION (int) the column index (1,2,...)
18. IS_NULLABLE (String) "NO" or "YES"
19. SCOPE_CATALOG (String) always null
20. SCOPE_SCHEMA (String) always null
21. SCOPE_TABLE (String) always null
22. SOURCE_DATA_TYPE (short) null
23. IS_AUTOINCREMENT (String) "NO" or "YES"
24. IS_GENERATEDCOLUMN (String) "NO" or "YES"

Specified by:
  `getColumns` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableNamePattern` - null (to get all objects) or a table name (uppercase for unquoted names)
  `columnNamePattern` - null (to get all objects) or a column name (uppercase for unquoted names)
Returns:
  the list of columns
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getIndexInfo

    public java.sql.ResultSet getIndexInfo(java.lang.String catalogPattern,
                                  java.lang.String schemaPattern,
                                  java.lang.String tableName,
                                  boolean unique,
                                  boolean approximate)
                                    throws java.sql.SQLException

Gets the list of indexes for this database. The primary key index (if there is one) is also listed, with the name PRIMARY_KEY. The result set is sorted by NON_UNIQUE ('false' first), TYPE, TABLE_SCHEM, INDEX_NAME, and ORDINAL_POSITION.

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. NON_UNIQUE (boolean) 'true' if non-unique
5. INDEX_QUALIFIER (String) index catalog
6. INDEX_NAME (String) index name
7. TYPE (short) the index type (always tableIndexOther)
8. ORDINAL_POSITION (short) column index (1, 2, ...)
9. COLUMN_NAME (String) column name
10. ASC_OR_DESC (String) ascending or descending (always 'A')
11. CARDINALITY (int) numbers of unique values
12. PAGES (int) number of pages use (always 0)
13. FILTER_CONDITION (String) filter condition (always empty)
14. SORT_TYPE (int) the sort type bit map: 1=DESCENDING, 2=NULLS_FIRST, 4=NULLS_LAST

Specified by:
  `getIndexInfo` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableName` - table name (must be specified)
  `unique` - only unique indexes
  `approximate` - is ignored
Returns:
  the list of indexes and columns
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getPrimaryKeys

    public java.sql.ResultSet getPrimaryKeys(java.lang.String catalogPattern,
                                    java.lang.String schemaPattern,
                                    java.lang.String tableName)
                                      throws java.sql.SQLException

Gets the primary key columns for a table. The result set is sorted by TABLE_SCHEM, and COLUMN_NAME (and not by KEY_SEQ).

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. COLUMN_NAME (String) column name
5. KEY_SEQ (short) the column index of this column (1,2,...)
6. PK_NAME (String) the name of the primary key index

Specified by:
  `getPrimaryKeys` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableName` - table name (must be specified)
Returns:
  the list of primary key columns
Throws:
  `java.sql.SQLException` - if the connection is closed

#### allProceduresAreCallable

    public boolean allProceduresAreCallable()

Checks if all procedures callable.

Specified by:
  `allProceduresAreCallable` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### allTablesAreSelectable

    public boolean allTablesAreSelectable()

Checks if it possible to query all tables returned by getTables.

Specified by:
  `allTablesAreSelectable` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### getURL

    public java.lang.String getURL()
                            throws java.sql.SQLException

Returns the database URL for this connection.

Specified by:
  `getURL` in interface `java.sql.DatabaseMetaData`
Returns:
  the url
Throws:
  `java.sql.SQLException`

#### getUserName

    public java.lang.String getUserName()
                                 throws java.sql.SQLException

Returns the user name as passed to DriverManager.getConnection(url, user, password).

Specified by:
  `getUserName` in interface `java.sql.DatabaseMetaData`
Returns:
  the user name
Throws:
  `java.sql.SQLException`

#### isReadOnly

    public boolean isReadOnly()
                       throws java.sql.SQLException

Returns the same as Connection.isReadOnly().

Specified by:
  `isReadOnly` in interface `java.sql.DatabaseMetaData`
Returns:
  if read only optimization is switched on
Throws:
  `java.sql.SQLException`

#### nullsAreSortedHigh

    public boolean nullsAreSortedHigh()

Checks if NULL is sorted high (bigger than anything that is not null).

Specified by:
  `nullsAreSortedHigh` in interface `java.sql.DatabaseMetaData`
Returns:
  false by default; true if the system property h2.sortNullsHigh is set to true

#### nullsAreSortedLow

    public boolean nullsAreSortedLow()

Checks if NULL is sorted low (smaller than anything that is not null).

Specified by:
  `nullsAreSortedLow` in interface `java.sql.DatabaseMetaData`
Returns:
  true by default; false if the system property h2.sortNullsHigh is set to true

#### nullsAreSortedAtStart

    public boolean nullsAreSortedAtStart()

Checks if NULL is sorted at the beginning (no matter if ASC or DESC is used).

Specified by:
  `nullsAreSortedAtStart` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### nullsAreSortedAtEnd

    public boolean nullsAreSortedAtEnd()

Checks if NULL is sorted at the end (no matter if ASC or DESC is used).

Specified by:
  `nullsAreSortedAtEnd` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### getConnection

    public java.sql.Connection getConnection()

Returns the connection that created this object.

Specified by:
  `getConnection` in interface `java.sql.DatabaseMetaData`
Returns:
  the connection

#### getProcedures

    public java.sql.ResultSet getProcedures(java.lang.String catalogPattern,
                                   java.lang.String schemaPattern,
                                   java.lang.String procedureNamePattern)
                                     throws java.sql.SQLException

Gets the list of procedures. The result set is sorted by PROCEDURE_SCHEM, PROCEDURE_NAME, and NUM_INPUT_PARAMS. There are potentially multiple procedures with the same name, each with a different number of input parameters.

1. PROCEDURE_CAT (String) catalog
2. PROCEDURE_SCHEM (String) schema
3. PROCEDURE_NAME (String) name
4. NUM_INPUT_PARAMS (int) the number of arguments
5. NUM_OUTPUT_PARAMS (int) for future use, always 0
6. NUM_RESULT_SETS (int) for future use, always 0
7. REMARKS (String) description
8. PROCEDURE_TYPE (short) if this procedure returns a result (procedureNoResult or procedureReturnsResult)
9. SPECIFIC_NAME (String) name

Specified by:
  `getProcedures` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `procedureNamePattern` - the procedure name pattern
Returns:
  the procedures
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getProcedureColumns

    public java.sql.ResultSet getProcedureColumns(java.lang.String catalogPattern,
                                         java.lang.String schemaPattern,
                                         java.lang.String procedureNamePattern,
                                         java.lang.String columnNamePattern)
                                           throws java.sql.SQLException

Gets the list of procedure columns. The result set is sorted by PROCEDURE_SCHEM, PROCEDURE_NAME, NUM_INPUT_PARAMS, and POS. There are potentially multiple procedures with the same name, each with a different number of input parameters.

1. PROCEDURE_CAT (String) catalog
2. PROCEDURE_SCHEM (String) schema
3. PROCEDURE_NAME (String) name
4. COLUMN_NAME (String) column name
5. COLUMN_TYPE (short) column type (always DatabaseMetaData.procedureColumnIn)
6. DATA_TYPE (short) sql type
7. TYPE_NAME (String) type name
8. PRECISION (int) precision
9. LENGTH (int) length
10. SCALE (short) scale
11. RADIX (int) always 10
12. NULLABLE (short) nullable (DatabaseMetaData.columnNoNulls for primitive data types, DatabaseMetaData.columnNullable otherwise)
13. REMARKS (String) description
14. COLUMN_DEF (String) always null
15. SQL_DATA_TYPE (int) for future use, always 0
16. SQL_DATETIME_SUB (int) for future use, always 0
17. CHAR_OCTET_LENGTH (int) always null
18. ORDINAL_POSITION (int) the parameter index starting from 1 (0 is the return value)
19. IS_NULLABLE (String) always "YES"
20. SPECIFIC_NAME (String) name

Specified by:
  `getProcedureColumns` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `procedureNamePattern` - the procedure name pattern
  `columnNamePattern` - the procedure name pattern
Returns:
  the procedure columns
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getSchemas

    public java.sql.ResultSet getSchemas()
                                  throws java.sql.SQLException

Gets the list of schemas. The result set is sorted by TABLE_SCHEM.

1. TABLE_SCHEM (String) schema name
2. TABLE_CATALOG (String) catalog name
3. IS_DEFAULT (boolean) if this is the default schema

Specified by:
  `getSchemas` in interface `java.sql.DatabaseMetaData`
Returns:
  the schema list
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getCatalogs

    public java.sql.ResultSet getCatalogs()
                                   throws java.sql.SQLException

Gets the list of catalogs. The result set is sorted by TABLE_CAT.

1. TABLE_CAT (String) catalog name

Specified by:
  `getCatalogs` in interface `java.sql.DatabaseMetaData`
Returns:
  the catalog list
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getTableTypes

    public java.sql.ResultSet getTableTypes()
                                     throws java.sql.SQLException

Gets the list of table types. This call returns a result set with five records: "SYSTEM TABLE", "TABLE", "VIEW", "TABLE LINK" and "EXTERNAL".

1. TABLE_TYPE (String) table type

Specified by:
  `getTableTypes` in interface `java.sql.DatabaseMetaData`
Returns:
  the table types
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getColumnPrivileges

    public java.sql.ResultSet getColumnPrivileges(java.lang.String catalogPattern,
                                         java.lang.String schemaPattern,
                                         java.lang.String table,
                                         java.lang.String columnNamePattern)
                                           throws java.sql.SQLException

Gets the list of column privileges. The result set is sorted by COLUMN_NAME and PRIVILEGE

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. COLUMN_NAME (String) column name
5. GRANTOR (String) grantor of access
6. GRANTEE (String) grantee of access
7. PRIVILEGE (String) SELECT, INSERT, UPDATE, DELETE or REFERENCES (only one per row)
8. IS_GRANTABLE (String) YES means the grantee can grant access to others

Specified by:
  `getColumnPrivileges` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `table` - a table name (uppercase for unquoted names)
  `columnNamePattern` - null (to get all objects) or a column name (uppercase for unquoted names)
Returns:
  the list of privileges
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getTablePrivileges

    public java.sql.ResultSet getTablePrivileges(java.lang.String catalogPattern,
                                        java.lang.String schemaPattern,
                                        java.lang.String tableNamePattern)
                                          throws java.sql.SQLException

Gets the list of table privileges. The result set is sorted by TABLE_SCHEM, TABLE_NAME, and PRIVILEGE.

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. GRANTOR (String) grantor of access
5. GRANTEE (String) grantee of access
6. PRIVILEGE (String) SELECT, INSERT, UPDATE, DELETE or REFERENCES (only one per row)
7. IS_GRANTABLE (String) YES means the grantee can grant access to others

Specified by:
  `getTablePrivileges` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableNamePattern` - null (to get all objects) or a table name (uppercase for unquoted names)
Returns:
  the list of privileges
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getBestRowIdentifier

    public java.sql.ResultSet getBestRowIdentifier(java.lang.String catalogPattern,
                                          java.lang.String schemaPattern,
                                          java.lang.String tableName,
                                          int scope,
                                          boolean nullable)
                                            throws java.sql.SQLException

Gets the list of columns that best identifier a row in a table. The list is ordered by SCOPE.

1. SCOPE (short) scope of result (always bestRowSession)
2. COLUMN_NAME (String) column name
3. DATA_TYPE (short) SQL data type, see also java.sql.Types
4. TYPE_NAME (String) type name
5. COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
6. BUFFER_LENGTH (int) unused
7. DECIMAL_DIGITS (short) scale
8. PSEUDO_COLUMN (short) (always bestRowNotPseudo)

Specified by:
  `getBestRowIdentifier` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableName` - table name (must be specified)
  `scope` - ignored
  `nullable` - ignored
Returns:
  the primary key index
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getVersionColumns

    public java.sql.ResultSet getVersionColumns(java.lang.String catalog,
                                       java.lang.String schema,
                                       java.lang.String tableName)
                                         throws java.sql.SQLException

Get the list of columns that are update when any value is updated. The result set is always empty.

1. 1 SCOPE (int) not used
2. 2 COLUMN_NAME (String) column name
3. 3 DATA_TYPE (int) SQL data type - see also java.sql.Types
4. 4 TYPE_NAME (String) data type name
5. 5 COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
6. 6 BUFFER_LENGTH (int) length (bytes)
7. 7 DECIMAL_DIGITS (int) scale
8. 8 PSEUDO_COLUMN (int) is this column a pseudo column

Specified by:
  `getVersionColumns` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalog` - null (to get all objects) or the catalog name
  `schema` - null (to get all objects) or a schema name
  `tableName` - table name (must be specified)
Returns:
  an empty result set
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getImportedKeys

    public java.sql.ResultSet getImportedKeys(java.lang.String catalogPattern,
                                     java.lang.String schemaPattern,
                                     java.lang.String tableName)
                                       throws java.sql.SQLException

Gets the list of primary key columns that are referenced by a table. The result set is sorted by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, FK_NAME, KEY_SEQ.

1. PKTABLE_CAT (String) primary catalog
2. PKTABLE_SCHEM (String) primary schema
3. PKTABLE_NAME (String) primary table
4. PKCOLUMN_NAME (String) primary column
5. FKTABLE_CAT (String) foreign catalog
6. FKTABLE_SCHEM (String) foreign schema
7. FKTABLE_NAME (String) foreign table
8. FKCOLUMN_NAME (String) foreign column
9. KEY_SEQ (short) sequence number (1, 2, ...)
10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
12. FK_NAME (String) foreign key name
13. PK_NAME (String) primary key name
14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)

Specified by:
  `getImportedKeys` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - the schema name of the foreign table
  `tableName` - the name of the foreign table
Returns:
  the result set
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getExportedKeys

    public java.sql.ResultSet getExportedKeys(java.lang.String catalogPattern,
                                     java.lang.String schemaPattern,
                                     java.lang.String tableName)
                                       throws java.sql.SQLException

Gets the list of foreign key columns that reference a table. The result set is sorted by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, FK_NAME, KEY_SEQ.

1. PKTABLE_CAT (String) primary catalog
2. PKTABLE_SCHEM (String) primary schema
3. PKTABLE_NAME (String) primary table
4. PKCOLUMN_NAME (String) primary column
5. FKTABLE_CAT (String) foreign catalog
6. FKTABLE_SCHEM (String) foreign schema
7. FKTABLE_NAME (String) foreign table
8. FKCOLUMN_NAME (String) foreign column
9. KEY_SEQ (short) sequence number (1,2,...)
10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
12. FK_NAME (String) foreign key name
13. PK_NAME (String) primary key name
14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)

Specified by:
  `getExportedKeys` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null or the catalog name
  `schemaPattern` - the schema name of the primary table
  `tableName` - the name of the primary table
Returns:
  the result set
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getCrossReference

    public java.sql.ResultSet getCrossReference(java.lang.String primaryCatalogPattern,
                                       java.lang.String primarySchemaPattern,
                                       java.lang.String primaryTable,
                                       java.lang.String foreignCatalogPattern,
                                       java.lang.String foreignSchemaPattern,
                                       java.lang.String foreignTable)
                                         throws java.sql.SQLException

Gets the list of foreign key columns that references a table, as well as the list of primary key columns that are references by a table. The result set is sorted by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, FK_NAME, KEY_SEQ.

1. PKTABLE_CAT (String) primary catalog
2. PKTABLE_SCHEM (String) primary schema
3. PKTABLE_NAME (String) primary table
4. PKCOLUMN_NAME (String) primary column
5. FKTABLE_CAT (String) foreign catalog
6. FKTABLE_SCHEM (String) foreign schema
7. FKTABLE_NAME (String) foreign table
8. FKCOLUMN_NAME (String) foreign column
9. KEY_SEQ (short) sequence number (1,2,...)
10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
12. FK_NAME (String) foreign key name
13. PK_NAME (String) primary key name
14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)

Specified by:
  `getCrossReference` in interface `java.sql.DatabaseMetaData`
Parameters:
  `primaryCatalogPattern` - null or the catalog name
  `primarySchemaPattern` - the schema name of the primary table (optional)
  `primaryTable` - the name of the primary table (must be specified)
  `foreignCatalogPattern` - null or the catalog name
  `foreignSchemaPattern` - the schema name of the foreign table (optional)
  `foreignTable` - the name of the foreign table (must be specified)
Returns:
  the result set
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getUDTs

    public java.sql.ResultSet getUDTs(java.lang.String catalog,
                             java.lang.String schemaPattern,
                             java.lang.String typeNamePattern,
                             int[] types)
                               throws java.sql.SQLException

Gets the list of user-defined data types. This call returns an empty result set.

1. TYPE_CAT (String) catalog
2. TYPE_SCHEM (String) schema
3. TYPE_NAME (String) type name
4. CLASS_NAME (String) Java class
5. DATA_TYPE (short) SQL Type - see also java.sql.Types
6. REMARKS (String) description
7. BASE_TYPE (short) base type - see also java.sql.Types

Specified by:
  `getUDTs` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalog` - ignored
  `schemaPattern` - ignored
  `typeNamePattern` - ignored
  `types` - ignored
Returns:
  an empty result set
Throws:
  `java.sql.SQLException` - if the connection is closed

#### getTypeInfo

    public java.sql.ResultSet getTypeInfo()
                                   throws java.sql.SQLException

Gets the list of data types. The result set is sorted by DATA_TYPE and afterwards by how closely the data type maps to the corresponding JDBC SQL type (best match first).

1. TYPE_NAME (String) type name
2. DATA_TYPE (short) SQL data type - see also java.sql.Types
3. PRECISION (int) maximum precision
4. LITERAL_PREFIX (String) prefix used to quote a literal
5. LITERAL_SUFFIX (String) suffix used to quote a literal
6. CREATE_PARAMS (String) parameters used (may be null)
7. NULLABLE (short) typeNoNulls (NULL not allowed) or typeNullable
8. CASE_SENSITIVE (boolean) case sensitive
9. SEARCHABLE (short) typeSearchable
10. UNSIGNED_ATTRIBUTE (boolean) unsigned
11. FIXED_PREC_SCALE (boolean) fixed precision
12. AUTO_INCREMENT (boolean) auto increment
13. LOCAL_TYPE_NAME (String) localized version of the data type
14. MINIMUM_SCALE (short) minimum scale
15. MAXIMUM_SCALE (short) maximum scale
16. SQL_DATA_TYPE (int) unused
17. SQL_DATETIME_SUB (int) unused
18. NUM_PREC_RADIX (int) 2 for binary, 10 for decimal

Specified by:
  `getTypeInfo` in interface `java.sql.DatabaseMetaData`
Returns:
  the list of data types
Throws:
  `java.sql.SQLException` - if the connection is closed

#### usesLocalFiles

    public boolean usesLocalFiles()

Checks if this database store data in local files.

Specified by:
  `usesLocalFiles` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### usesLocalFilePerTable

    public boolean usesLocalFilePerTable()

Checks if this database use one file per table.

Specified by:
  `usesLocalFilePerTable` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### getIdentifierQuoteString

    public java.lang.String getIdentifierQuoteString()

Returns the string used to quote identifiers.

Specified by:
  `getIdentifierQuoteString` in interface `java.sql.DatabaseMetaData`
Returns:
  a double quote

#### getSQLKeywords

    public java.lang.String getSQLKeywords()

Gets the comma-separated list of all SQL keywords that are not supported as table/column/index name, in addition to the SQL:2003 keywords. The list returned is:

     GROUPS
     IF,ILIKE,INTERSECTS,
     LIMIT,
     MINUS,
     OFFSET,
     QUALIFY,
     REGEXP,_ROWID_,ROWNUM,
     SYSDATE,SYSTIME,SYSTIMESTAMP,
     TODAY,TOP

The complete list of keywords (including SQL:2003 keywords) is:

     ALL, AND, ARRAY, AS,
     BETWEEN, BOTH
     CASE, CHECK, CONSTRAINT, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER,
     DISTINCT,
     EXCEPT, EXISTS,
     FALSE, FETCH, FILTER, FOR, FOREIGN, FROM, FULL,
     GROUP, GROUPS
     HAVING,
     IF, ILIKE, IN, INNER, INTERSECT, INTERSECTS, INTERVAL, IS,
     JOIN,
     LEADING, LEFT, LIKE, LIMIT, LOCALTIME, LOCALTIMESTAMP,
     MINUS,
     NATURAL, NOT, NULL,
     OFFSET, ON, OR, ORDER, OVER,
     PARTITION, PRIMARY,
     QUALIFY,
     RANGE, REGEXP, RIGHT, ROW, _ROWID_, ROWNUM, ROWS,
     SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP,
     TABLE, TODAY, TOP, TRAILING, TRUE,
     UNION, UNIQUE,
     VALUES,
     WHERE, WINDOW, WITH

Specified by:
  `getSQLKeywords` in interface `java.sql.DatabaseMetaData`
Returns:
  a list of additional the keywords

#### getNumericFunctions

    public java.lang.String getNumericFunctions()
                                         throws java.sql.SQLException

Returns the list of numeric functions supported by this database.

Specified by:
  `getNumericFunctions` in interface `java.sql.DatabaseMetaData`
Returns:
  the list
Throws:
  `java.sql.SQLException`

#### getStringFunctions

    public java.lang.String getStringFunctions()
                                        throws java.sql.SQLException

Returns the list of string functions supported by this database.

Specified by:
  `getStringFunctions` in interface `java.sql.DatabaseMetaData`
Returns:
  the list
Throws:
  `java.sql.SQLException`

#### getSystemFunctions

    public java.lang.String getSystemFunctions()
                                        throws java.sql.SQLException

Returns the list of system functions supported by this database.

Specified by:
  `getSystemFunctions` in interface `java.sql.DatabaseMetaData`
Returns:
  the list
Throws:
  `java.sql.SQLException`

#### getTimeDateFunctions

    public java.lang.String getTimeDateFunctions()
                                          throws java.sql.SQLException

Returns the list of date and time functions supported by this database.

Specified by:
  `getTimeDateFunctions` in interface `java.sql.DatabaseMetaData`
Returns:
  the list
Throws:
  `java.sql.SQLException`

#### getSearchStringEscape

    public java.lang.String getSearchStringEscape()

Returns the default escape character for DatabaseMetaData search patterns.

Specified by:
  `getSearchStringEscape` in interface `java.sql.DatabaseMetaData`
Returns:
  the default escape character (always '\', independent on the mode)

#### getExtraNameCharacters

    public java.lang.String getExtraNameCharacters()

Returns the characters that are allowed for identifiers in addiction to A-Z, a-z, 0-9 and '_'.

Specified by:
  `getExtraNameCharacters` in interface `java.sql.DatabaseMetaData`
Returns:
  an empty String ("")

#### supportsAlterTableWithAddColumn

    public boolean supportsAlterTableWithAddColumn()

Returns whether alter table with add column is supported.

Specified by:
  `supportsAlterTableWithAddColumn` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsAlterTableWithDropColumn

    public boolean supportsAlterTableWithDropColumn()

Returns whether alter table with drop column is supported.

Specified by:
  `supportsAlterTableWithDropColumn` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsColumnAliasing

    public boolean supportsColumnAliasing()

Returns whether column aliasing is supported.

Specified by:
  `supportsColumnAliasing` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### nullPlusNonNullIsNull

    public boolean nullPlusNonNullIsNull()

Returns whether NULL+1 is NULL or not.

Specified by:
  `nullPlusNonNullIsNull` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsConvert

    public boolean supportsConvert()

Returns whether CONVERT is supported.

Specified by:
  `supportsConvert` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsConvert

    public boolean supportsConvert(int fromType,
                          int toType)

Returns whether CONVERT is supported for one datatype to another.

Specified by:
  `supportsConvert` in interface `java.sql.DatabaseMetaData`
Parameters:
  `fromType` - the source SQL type
  `toType` - the target SQL type
Returns:
  true

#### supportsTableCorrelationNames

    public boolean supportsTableCorrelationNames()

Returns whether table correlation names (table alias) are supported.

Specified by:
  `supportsTableCorrelationNames` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsDifferentTableCorrelationNames

    public boolean supportsDifferentTableCorrelationNames()

Returns whether table correlation names (table alias) are restricted to be different than table names.

Specified by:
  `supportsDifferentTableCorrelationNames` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsExpressionsInOrderBy

    public boolean supportsExpressionsInOrderBy()

Returns whether expression in ORDER BY are supported.

Specified by:
  `supportsExpressionsInOrderBy` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsOrderByUnrelated

    public boolean supportsOrderByUnrelated()

Returns whether ORDER BY is supported if the column is not in the SELECT list.

Specified by:
  `supportsOrderByUnrelated` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsGroupBy

    public boolean supportsGroupBy()

Returns whether GROUP BY is supported.

Specified by:
  `supportsGroupBy` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsGroupByUnrelated

    public boolean supportsGroupByUnrelated()

Returns whether GROUP BY is supported if the column is not in the SELECT list.

Specified by:
  `supportsGroupByUnrelated` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsGroupByBeyondSelect

    public boolean supportsGroupByBeyondSelect()

Checks whether a GROUP BY clause can use columns that are not in the SELECT clause, provided that it specifies all the columns in the SELECT clause.

Specified by:
  `supportsGroupByBeyondSelect` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsLikeEscapeClause

    public boolean supportsLikeEscapeClause()

Returns whether LIKE... ESCAPE is supported.

Specified by:
  `supportsLikeEscapeClause` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsMultipleResultSets

    public boolean supportsMultipleResultSets()

Returns whether multiple result sets are supported.

Specified by:
  `supportsMultipleResultSets` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsMultipleTransactions

    public boolean supportsMultipleTransactions()

Returns whether multiple transactions (on different connections) are supported.

Specified by:
  `supportsMultipleTransactions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsNonNullableColumns

    public boolean supportsNonNullableColumns()

Returns whether columns with NOT NULL are supported.

Specified by:
  `supportsNonNullableColumns` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsMinimumSQLGrammar

    public boolean supportsMinimumSQLGrammar()

Returns whether ODBC Minimum SQL grammar is supported.

Specified by:
  `supportsMinimumSQLGrammar` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCoreSQLGrammar

    public boolean supportsCoreSQLGrammar()

Returns whether ODBC Core SQL grammar is supported.

Specified by:
  `supportsCoreSQLGrammar` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsExtendedSQLGrammar

    public boolean supportsExtendedSQLGrammar()

Returns whether ODBC Extended SQL grammar is supported.

Specified by:
  `supportsExtendedSQLGrammar` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsANSI92EntryLevelSQL

    public boolean supportsANSI92EntryLevelSQL()

Returns whether SQL-92 entry level grammar is supported.

Specified by:
  `supportsANSI92EntryLevelSQL` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsANSI92IntermediateSQL

    public boolean supportsANSI92IntermediateSQL()

Returns whether SQL-92 intermediate level grammar is supported.

Specified by:
  `supportsANSI92IntermediateSQL` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsANSI92FullSQL

    public boolean supportsANSI92FullSQL()

Returns whether SQL-92 full level grammar is supported.

Specified by:
  `supportsANSI92FullSQL` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsIntegrityEnhancementFacility

    public boolean supportsIntegrityEnhancementFacility()

Returns whether referential integrity is supported.

Specified by:
  `supportsIntegrityEnhancementFacility` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsOuterJoins

    public boolean supportsOuterJoins()

Returns whether outer joins are supported.

Specified by:
  `supportsOuterJoins` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsFullOuterJoins

    public boolean supportsFullOuterJoins()

Returns whether full outer joins are supported.

Specified by:
  `supportsFullOuterJoins` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsLimitedOuterJoins

    public boolean supportsLimitedOuterJoins()

Returns whether limited outer joins are supported.

Specified by:
  `supportsLimitedOuterJoins` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### getSchemaTerm

    public java.lang.String getSchemaTerm()

Returns the term for "schema".

Specified by:
  `getSchemaTerm` in interface `java.sql.DatabaseMetaData`
Returns:
  "schema"

#### getProcedureTerm

    public java.lang.String getProcedureTerm()

Returns the term for "procedure".

Specified by:
  `getProcedureTerm` in interface `java.sql.DatabaseMetaData`
Returns:
  "procedure"

#### getCatalogTerm

    public java.lang.String getCatalogTerm()

Returns the term for "catalog".

Specified by:
  `getCatalogTerm` in interface `java.sql.DatabaseMetaData`
Returns:
  "catalog"

#### isCatalogAtStart

    public boolean isCatalogAtStart()

Returns whether the catalog is at the beginning.

Specified by:
  `isCatalogAtStart` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### getCatalogSeparator

    public java.lang.String getCatalogSeparator()

Returns the catalog separator.

Specified by:
  `getCatalogSeparator` in interface `java.sql.DatabaseMetaData`
Returns:
  "."

#### supportsSchemasInDataManipulation

    public boolean supportsSchemasInDataManipulation()

Returns whether the schema name in INSERT, UPDATE, DELETE is supported.

Specified by:
  `supportsSchemasInDataManipulation` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSchemasInProcedureCalls

    public boolean supportsSchemasInProcedureCalls()

Returns whether the schema name in procedure calls is supported.

Specified by:
  `supportsSchemasInProcedureCalls` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSchemasInTableDefinitions

    public boolean supportsSchemasInTableDefinitions()

Returns whether the schema name in CREATE TABLE is supported.

Specified by:
  `supportsSchemasInTableDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSchemasInIndexDefinitions

    public boolean supportsSchemasInIndexDefinitions()

Returns whether the schema name in CREATE INDEX is supported.

Specified by:
  `supportsSchemasInIndexDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSchemasInPrivilegeDefinitions

    public boolean supportsSchemasInPrivilegeDefinitions()

Returns whether the schema name in GRANT is supported.

Specified by:
  `supportsSchemasInPrivilegeDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCatalogsInDataManipulation

    public boolean supportsCatalogsInDataManipulation()

Returns whether the catalog name in INSERT, UPDATE, DELETE is supported.

Specified by:
  `supportsCatalogsInDataManipulation` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCatalogsInProcedureCalls

    public boolean supportsCatalogsInProcedureCalls()

Returns whether the catalog name in procedure calls is supported.

Specified by:
  `supportsCatalogsInProcedureCalls` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsCatalogsInTableDefinitions

    public boolean supportsCatalogsInTableDefinitions()

Returns whether the catalog name in CREATE TABLE is supported.

Specified by:
  `supportsCatalogsInTableDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCatalogsInIndexDefinitions

    public boolean supportsCatalogsInIndexDefinitions()

Returns whether the catalog name in CREATE INDEX is supported.

Specified by:
  `supportsCatalogsInIndexDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCatalogsInPrivilegeDefinitions

    public boolean supportsCatalogsInPrivilegeDefinitions()

Returns whether the catalog name in GRANT is supported.

Specified by:
  `supportsCatalogsInPrivilegeDefinitions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsPositionedDelete

    public boolean supportsPositionedDelete()

Returns whether positioned deletes are supported.

Specified by:
  `supportsPositionedDelete` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsPositionedUpdate

    public boolean supportsPositionedUpdate()

Returns whether positioned updates are supported.

Specified by:
  `supportsPositionedUpdate` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSelectForUpdate

    public boolean supportsSelectForUpdate()

Returns whether SELECT ... FOR UPDATE is supported.

Specified by:
  `supportsSelectForUpdate` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsStoredProcedures

    public boolean supportsStoredProcedures()

Returns whether stored procedures are supported.

Specified by:
  `supportsStoredProcedures` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsSubqueriesInComparisons

    public boolean supportsSubqueriesInComparisons()

Returns whether subqueries (SELECT) in comparisons are supported.

Specified by:
  `supportsSubqueriesInComparisons` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSubqueriesInExists

    public boolean supportsSubqueriesInExists()

Returns whether SELECT in EXISTS is supported.

Specified by:
  `supportsSubqueriesInExists` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSubqueriesInIns

    public boolean supportsSubqueriesInIns()

Returns whether IN(SELECT...) is supported.

Specified by:
  `supportsSubqueriesInIns` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsSubqueriesInQuantifieds

    public boolean supportsSubqueriesInQuantifieds()

Returns whether subqueries in quantified expression are supported.

Specified by:
  `supportsSubqueriesInQuantifieds` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsCorrelatedSubqueries

    public boolean supportsCorrelatedSubqueries()

Returns whether correlated subqueries are supported.

Specified by:
  `supportsCorrelatedSubqueries` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsUnion

    public boolean supportsUnion()

Returns whether UNION SELECT is supported.

Specified by:
  `supportsUnion` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsUnionAll

    public boolean supportsUnionAll()

Returns whether UNION ALL SELECT is supported.

Specified by:
  `supportsUnionAll` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsOpenCursorsAcrossCommit

    public boolean supportsOpenCursorsAcrossCommit()

Returns whether open result sets across commits are supported.

Specified by:
  `supportsOpenCursorsAcrossCommit` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsOpenCursorsAcrossRollback

    public boolean supportsOpenCursorsAcrossRollback()

Returns whether open result sets across rollback are supported.

Specified by:
  `supportsOpenCursorsAcrossRollback` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsOpenStatementsAcrossCommit

    public boolean supportsOpenStatementsAcrossCommit()

Returns whether open statements across commit are supported.

Specified by:
  `supportsOpenStatementsAcrossCommit` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsOpenStatementsAcrossRollback

    public boolean supportsOpenStatementsAcrossRollback()

Returns whether open statements across rollback are supported.

Specified by:
  `supportsOpenStatementsAcrossRollback` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsTransactions

    public boolean supportsTransactions()

Returns whether transactions are supported.

Specified by:
  `supportsTransactions` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsTransactionIsolationLevel

    public boolean supportsTransactionIsolationLevel(int level)
                                              throws java.sql.SQLException

Returns whether a specific transaction isolation level is supported.

Specified by:
  `supportsTransactionIsolationLevel` in interface `java.sql.DatabaseMetaData`
Parameters:
  `level` - the transaction isolation level (Connection.TRANSACTION_*)
Returns:
  true
Throws:
  `java.sql.SQLException`

#### supportsDataDefinitionAndDataManipulationTransactions

    public boolean supportsDataDefinitionAndDataManipulationTransactions()

Returns whether data manipulation and CREATE/DROP is supported in transactions.

Specified by:
  `supportsDataDefinitionAndDataManipulationTransactions` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsDataManipulationTransactionsOnly

    public boolean supportsDataManipulationTransactionsOnly()

Returns whether only data manipulations are supported in transactions.

Specified by:
  `supportsDataManipulationTransactionsOnly` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### dataDefinitionCausesTransactionCommit

    public boolean dataDefinitionCausesTransactionCommit()

Returns whether CREATE/DROP commit an open transaction.

Specified by:
  `dataDefinitionCausesTransactionCommit` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### dataDefinitionIgnoredInTransactions

    public boolean dataDefinitionIgnoredInTransactions()

Returns whether CREATE/DROP do not affect transactions.

Specified by:
  `dataDefinitionIgnoredInTransactions` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsResultSetType

    public boolean supportsResultSetType(int type)

Returns whether a specific result set type is supported. ResultSet.TYPE_SCROLL_SENSITIVE is not supported.

Specified by:
  `supportsResultSetType` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  true for all types except ResultSet.TYPE_FORWARD_ONLY

#### supportsResultSetConcurrency

    public boolean supportsResultSetConcurrency(int type,
                                       int concurrency)

Returns whether a specific result set concurrency is supported. ResultSet.TYPE_SCROLL_SENSITIVE is not supported.

Specified by:
  `supportsResultSetConcurrency` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
  `concurrency` - the result set concurrency
Returns:
  true if the type is not ResultSet.TYPE_SCROLL_SENSITIVE

#### ownUpdatesAreVisible

    public boolean ownUpdatesAreVisible(int type)

Returns whether own updates are visible.

Specified by:
  `ownUpdatesAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  true

#### ownDeletesAreVisible

    public boolean ownDeletesAreVisible(int type)

Returns whether own deletes are visible.

Specified by:
  `ownDeletesAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### ownInsertsAreVisible

    public boolean ownInsertsAreVisible(int type)

Returns whether own inserts are visible.

Specified by:
  `ownInsertsAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### othersUpdatesAreVisible

    public boolean othersUpdatesAreVisible(int type)

Returns whether other updates are visible.

Specified by:
  `othersUpdatesAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### othersDeletesAreVisible

    public boolean othersDeletesAreVisible(int type)

Returns whether other deletes are visible.

Specified by:
  `othersDeletesAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### othersInsertsAreVisible

    public boolean othersInsertsAreVisible(int type)

Returns whether other inserts are visible.

Specified by:
  `othersInsertsAreVisible` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### updatesAreDetected

    public boolean updatesAreDetected(int type)

Returns whether updates are detected.

Specified by:
  `updatesAreDetected` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### deletesAreDetected

    public boolean deletesAreDetected(int type)

Returns whether deletes are detected.

Specified by:
  `deletesAreDetected` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### insertsAreDetected

    public boolean insertsAreDetected(int type)

Returns whether inserts are detected.

Specified by:
  `insertsAreDetected` in interface `java.sql.DatabaseMetaData`
Parameters:
  `type` - the result set type
Returns:
  false

#### supportsBatchUpdates

    public boolean supportsBatchUpdates()

Returns whether batch updates are supported.

Specified by:
  `supportsBatchUpdates` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### doesMaxRowSizeIncludeBlobs

    public boolean doesMaxRowSizeIncludeBlobs()

Returns whether the maximum row size includes blobs.

Specified by:
  `doesMaxRowSizeIncludeBlobs` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### getDefaultTransactionIsolation

    public int getDefaultTransactionIsolation()

Returns the default transaction isolation level.

Specified by:
  `getDefaultTransactionIsolation` in interface `java.sql.DatabaseMetaData`
Returns:
  Connection.TRANSACTION_READ_COMMITTED

#### supportsMixedCaseIdentifiers

    public boolean supportsMixedCaseIdentifiers()
                                         throws java.sql.SQLException

Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are case sensitive.

Specified by:
  `supportsMixedCaseIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### storesUpperCaseIdentifiers

    public boolean storesUpperCaseIdentifiers()
                                       throws java.sql.SQLException

Checks if for CREATE TABLE Test(ID INT), getTables returns TEST as the table name.

Specified by:
  `storesUpperCaseIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### storesLowerCaseIdentifiers

    public boolean storesLowerCaseIdentifiers()
                                       throws java.sql.SQLException

Checks if for CREATE TABLE Test(ID INT), getTables returns test as the table name.

Specified by:
  `storesLowerCaseIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### storesMixedCaseIdentifiers

    public boolean storesMixedCaseIdentifiers()
                                       throws java.sql.SQLException

Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are not case sensitive.

Specified by:
  `storesMixedCaseIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### supportsMixedCaseQuotedIdentifiers

    public boolean supportsMixedCaseQuotedIdentifiers()
                                               throws java.sql.SQLException

Checks if a table created with CREATE TABLE "Test"(ID INT) is a different table than a table created with CREATE TABLE "TEST"(ID INT).

Specified by:
  `supportsMixedCaseQuotedIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### storesUpperCaseQuotedIdentifiers

    public boolean storesUpperCaseQuotedIdentifiers()
                                             throws java.sql.SQLException

Checks if for CREATE TABLE "Test"(ID INT), getTables returns TEST as the table name.

Specified by:
  `storesUpperCaseQuotedIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  false
Throws:
  `java.sql.SQLException`

#### storesLowerCaseQuotedIdentifiers

    public boolean storesLowerCaseQuotedIdentifiers()
                                             throws java.sql.SQLException

Checks if for CREATE TABLE "Test"(ID INT), getTables returns test as the table name.

Specified by:
  `storesLowerCaseQuotedIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  false
Throws:
  `java.sql.SQLException`

#### storesMixedCaseQuotedIdentifiers

    public boolean storesMixedCaseQuotedIdentifiers()
                                             throws java.sql.SQLException

Checks if for CREATE TABLE "Test"(ID INT), getTables returns Test as the table name and identifiers are case insensitive.

Specified by:
  `storesMixedCaseQuotedIdentifiers` in interface `java.sql.DatabaseMetaData`
Returns:
  true is so, false otherwise
Throws:
  `java.sql.SQLException`

#### getMaxBinaryLiteralLength

    public int getMaxBinaryLiteralLength()

Returns the maximum length for hex values (characters).

Specified by:
  `getMaxBinaryLiteralLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxCharLiteralLength

    public int getMaxCharLiteralLength()

Returns the maximum length for literals.

Specified by:
  `getMaxCharLiteralLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnNameLength

    public int getMaxColumnNameLength()

Returns the maximum length for column names.

Specified by:
  `getMaxColumnNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnsInGroupBy

    public int getMaxColumnsInGroupBy()

Returns the maximum number of columns in GROUP BY.

Specified by:
  `getMaxColumnsInGroupBy` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnsInIndex

    public int getMaxColumnsInIndex()

Returns the maximum number of columns in CREATE INDEX.

Specified by:
  `getMaxColumnsInIndex` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnsInOrderBy

    public int getMaxColumnsInOrderBy()

Returns the maximum number of columns in ORDER BY.

Specified by:
  `getMaxColumnsInOrderBy` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnsInSelect

    public int getMaxColumnsInSelect()

Returns the maximum number of columns in SELECT.

Specified by:
  `getMaxColumnsInSelect` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxColumnsInTable

    public int getMaxColumnsInTable()

Returns the maximum number of columns in CREATE TABLE.

Specified by:
  `getMaxColumnsInTable` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxConnections

    public int getMaxConnections()

Returns the maximum number of open connection.

Specified by:
  `getMaxConnections` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxCursorNameLength

    public int getMaxCursorNameLength()

Returns the maximum length for a cursor name.

Specified by:
  `getMaxCursorNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxIndexLength

    public int getMaxIndexLength()

Returns the maximum length for an index (in bytes).

Specified by:
  `getMaxIndexLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxSchemaNameLength

    public int getMaxSchemaNameLength()

Returns the maximum length for a schema name.

Specified by:
  `getMaxSchemaNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxProcedureNameLength

    public int getMaxProcedureNameLength()

Returns the maximum length for a procedure name.

Specified by:
  `getMaxProcedureNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxCatalogNameLength

    public int getMaxCatalogNameLength()

Returns the maximum length for a catalog name.

Specified by:
  `getMaxCatalogNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxRowSize

    public int getMaxRowSize()

Returns the maximum size of a row (in bytes).

Specified by:
  `getMaxRowSize` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxStatementLength

    public int getMaxStatementLength()

Returns the maximum length of a statement.

Specified by:
  `getMaxStatementLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxStatements

    public int getMaxStatements()

Returns the maximum number of open statements.

Specified by:
  `getMaxStatements` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxTableNameLength

    public int getMaxTableNameLength()

Returns the maximum length for a table name.

Specified by:
  `getMaxTableNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxTablesInSelect

    public int getMaxTablesInSelect()

Returns the maximum number of tables in a SELECT.

Specified by:
  `getMaxTablesInSelect` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### getMaxUserNameLength

    public int getMaxUserNameLength()

Returns the maximum length for a user name.

Specified by:
  `getMaxUserNameLength` in interface `java.sql.DatabaseMetaData`
Returns:
  0 for limit is unknown

#### supportsSavepoints

    public boolean supportsSavepoints()

Does the database support savepoints.

Specified by:
  `supportsSavepoints` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsNamedParameters

    public boolean supportsNamedParameters()

Does the database support named parameters.

Specified by:
  `supportsNamedParameters` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsMultipleOpenResults

    public boolean supportsMultipleOpenResults()

Does the database support multiple open result sets.

Specified by:
  `supportsMultipleOpenResults` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### supportsGetGeneratedKeys

    public boolean supportsGetGeneratedKeys()

Does the database support getGeneratedKeys.

Specified by:
  `supportsGetGeneratedKeys` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### getSuperTypes

    public java.sql.ResultSet getSuperTypes(java.lang.String catalog,
                                   java.lang.String schemaPattern,
                                   java.lang.String typeNamePattern)
                                     throws java.sql.SQLException

[Not supported]

Specified by:
  `getSuperTypes` in interface `java.sql.DatabaseMetaData`
Throws:
  `java.sql.SQLException`

#### getSuperTables

    public java.sql.ResultSet getSuperTables(java.lang.String catalog,
                                    java.lang.String schemaPattern,
                                    java.lang.String tableNamePattern)
                                      throws java.sql.SQLException

Get the list of super tables of a table. This method currently returns an empty result set.

1. TABLE_CAT (String) table catalog
2. TABLE_SCHEM (String) table schema
3. TABLE_NAME (String) table name
4. SUPERTABLE_NAME (String) the name of the super table

Specified by:
  `getSuperTables` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalog` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableNamePattern` - null (to get all objects) or a table name pattern (uppercase for unquoted names)
Returns:
  an empty result set
Throws:
  `java.sql.SQLException`

#### getAttributes

    public java.sql.ResultSet getAttributes(java.lang.String catalog,
                                   java.lang.String schemaPattern,
                                   java.lang.String typeNamePattern,
                                   java.lang.String attributeNamePattern)
                                     throws java.sql.SQLException

[Not supported]

Specified by:
  `getAttributes` in interface `java.sql.DatabaseMetaData`
Throws:
  `java.sql.SQLException`

#### supportsResultSetHoldability

    public boolean supportsResultSetHoldability(int holdability)

Does this database supports a result set holdability.

Specified by:
  `supportsResultSetHoldability` in interface `java.sql.DatabaseMetaData`
Parameters:
  `holdability` - ResultSet.HOLD_CURSORS_OVER_COMMIT or CLOSE_CURSORS_AT_COMMIT
Returns:
  true if the holdability is ResultSet.CLOSE_CURSORS_AT_COMMIT

#### getResultSetHoldability

    public int getResultSetHoldability()

Gets the result set holdability.

Specified by:
  `getResultSetHoldability` in interface `java.sql.DatabaseMetaData`
Returns:
  ResultSet.CLOSE_CURSORS_AT_COMMIT

#### getDatabaseMajorVersion

    public int getDatabaseMajorVersion()

Gets the major version of the database.

Specified by:
  `getDatabaseMajorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the major version

#### getDatabaseMinorVersion

    public int getDatabaseMinorVersion()

Gets the minor version of the database.

Specified by:
  `getDatabaseMinorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the minor version

#### getJDBCMajorVersion

    public int getJDBCMajorVersion()

Gets the major version of the supported JDBC API.

Specified by:
  `getJDBCMajorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the major version (4)

#### getJDBCMinorVersion

    public int getJDBCMinorVersion()

Gets the minor version of the supported JDBC API.

Specified by:
  `getJDBCMinorVersion` in interface `java.sql.DatabaseMetaData`
Returns:
  the minor version (1)

#### getSQLStateType

    public int getSQLStateType()

Gets the SQL State type.

Specified by:
  `getSQLStateType` in interface `java.sql.DatabaseMetaData`
Returns:
  DatabaseMetaData.sqlStateSQL99

#### locatorsUpdateCopy

    public boolean locatorsUpdateCopy()

Does the database make a copy before updating.

Specified by:
  `locatorsUpdateCopy` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### supportsStatementPooling

    public boolean supportsStatementPooling()

Does the database support statement pooling.

Specified by:
  `supportsStatementPooling` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### getRowIdLifetime

    public java.sql.RowIdLifetime getRowIdLifetime()

Get the lifetime of a rowid.

Specified by:
  `getRowIdLifetime` in interface `java.sql.DatabaseMetaData`
Returns:
  ROWID_UNSUPPORTED

#### getSchemas

    public java.sql.ResultSet getSchemas(java.lang.String catalogPattern,
                                java.lang.String schemaPattern)
                                  throws java.sql.SQLException

Gets the list of schemas in the database. The result set is sorted by TABLE_SCHEM.

1. TABLE_SCHEM (String) schema name
2. TABLE_CATALOG (String) catalog name
3. IS_DEFAULT (boolean) if this is the default schema

Specified by:
  `getSchemas` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalogPattern` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
Returns:
  the schema list
Throws:
  `java.sql.SQLException` - if the connection is closed

#### supportsStoredFunctionsUsingCallSyntax

    public boolean supportsStoredFunctionsUsingCallSyntax()

Returns whether the database supports calling functions using the call syntax.

Specified by:
  `supportsStoredFunctionsUsingCallSyntax` in interface `java.sql.DatabaseMetaData`
Returns:
  true

#### autoCommitFailureClosesAllResultSets

    public boolean autoCommitFailureClosesAllResultSets()

Returns whether an exception while auto commit is on closes all result sets.

Specified by:
  `autoCommitFailureClosesAllResultSets` in interface `java.sql.DatabaseMetaData`
Returns:
  false

#### getClientInfoProperties

    public java.sql.ResultSet getClientInfoProperties()
                                               throws java.sql.SQLException

Specified by:
  `getClientInfoProperties` in interface `java.sql.DatabaseMetaData`
Throws:
  `java.sql.SQLException`

#### unwrap

    public <T> T unwrap(java.lang.Class<T> iface)
             throws java.sql.SQLException

Return an object of this class if possible.

Specified by:
  `unwrap` in interface `java.sql.Wrapper`
Parameters:
  `iface` - the class
Returns:
  this
Throws:
  `java.sql.SQLException`

#### isWrapperFor

    public boolean isWrapperFor(java.lang.Class<?> iface)
                         throws java.sql.SQLException

Checks if unwrap can return an object of this class.

Specified by:
  `isWrapperFor` in interface `java.sql.Wrapper`
Parameters:
  `iface` - the class
Returns:
  whether or not the interface is assignable from this class
Throws:
  `java.sql.SQLException`

#### getFunctionColumns

    public java.sql.ResultSet getFunctionColumns(java.lang.String catalog,
                                        java.lang.String schemaPattern,
                                        java.lang.String functionNamePattern,
                                        java.lang.String columnNamePattern)
                                          throws java.sql.SQLException

[Not supported] Gets the list of function columns.

Specified by:
  `getFunctionColumns` in interface `java.sql.DatabaseMetaData`
Throws:
  `java.sql.SQLException`

#### getFunctions

    public java.sql.ResultSet getFunctions(java.lang.String catalog,
                                  java.lang.String schemaPattern,
                                  java.lang.String functionNamePattern)
                                    throws java.sql.SQLException

[Not supported] Gets the list of functions.

Specified by:
  `getFunctions` in interface `java.sql.DatabaseMetaData`
Throws:
  `java.sql.SQLException`

#### generatedKeyAlwaysReturned

    public boolean generatedKeyAlwaysReturned()

[Not supported]

Specified by:
  `generatedKeyAlwaysReturned` in interface `java.sql.DatabaseMetaData`

#### getPseudoColumns

    public java.sql.ResultSet getPseudoColumns(java.lang.String catalog,
                                      java.lang.String schemaPattern,
                                      java.lang.String tableNamePattern,
                                      java.lang.String columnNamePattern)

[Not supported]

Specified by:
  `getPseudoColumns` in interface `java.sql.DatabaseMetaData`
Parameters:
  `catalog` - null (to get all objects) or the catalog name
  `schemaPattern` - null (to get all objects) or a schema name (uppercase for unquoted names)
  `tableNamePattern` - null (to get all objects) or a table name (uppercase for unquoted names)
  `columnNamePattern` - null (to get all objects) or a column name (uppercase for unquoted names)

#### toString

    public java.lang.String toString()

INTERNAL

Overrides:
  `toString` in class `java.lang.Object`