org.h2.jdbc
Class JdbcDatabaseMetaData

java.lang.Object
  extended by org.h2.message.TraceObject
      extended by org.h2.jdbc.JdbcDatabaseMetaData
All Implemented Interfaces:
java.sql.DatabaseMetaData, java.sql.Wrapper

public class JdbcDatabaseMetaData
extends TraceObject
implements java.sql.DatabaseMetaData

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, SQL_EXCEPTION, STATEMENT, 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
 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.
 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()
          [Not supported] Returns the client info properties.
 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".
 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 catalog, java.lang.String schemaPattern)
          [Not supported] Gets the list of schemas.
 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-92 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)
          [Not supported] 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 is NULL values are sorted at the end (no matter if ASC or DESC is used).
 boolean nullsAreSortedAtStart()
          Checks is NULL values are sorted at the beginning (no matter if ASC or DESC is used).
 boolean nullsAreSortedHigh()
          Checks is NULL values are sorted high (bigger than any non-null values).
 boolean nullsAreSortedLow()
          Checks is NULL values are sorted low (smaller than any non-null values).
 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.
 boolean storesMixedCaseQuotedIdentifiers()
          Checks if for CREATE TABLE "Test"(ID INT), getTables returns Test as the table name.
 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.
 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)
          [Not supported] 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, getTrace, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, setTrace, toString
 
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

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

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.

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.

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.

Specified by:
getIndexInfo in interface java.sql.DatabaseMetaData
Parameters:
catalogPattern - null or the catalog name
schemaPattern - schema name (must be specified)
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).

Specified by:
getPrimaryKeys in interface java.sql.DatabaseMetaData
Parameters:
catalogPattern - null or the catalog name
schemaPattern - schema name (must be specified)
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 is NULL values are sorted high (bigger than any non-null values).

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 is NULL values are sorted low (smaller than any non-null values).

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 is NULL values are 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 is NULL values are 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.

Specified by:
getProcedures in interface java.sql.DatabaseMetaData
Parameters:
catalogPattern - null or the catalog name
schemaPattern - schema name (must be specified)
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.

Specified by:
getProcedureColumns in interface java.sql.DatabaseMetaData
Parameters:
catalogPattern - null or the catalog name
schemaPattern - schema name (must be specified)
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.

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.

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 three records: "SYSTEM TABLE", "TABLE", "and "VIEW". The result set is sorted by 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

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.

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.

Specified by:
getBestRowIdentifier in interface java.sql.DatabaseMetaData
Parameters:
catalogPattern - null (to get all objects) or the catalog name
schemaPattern - schema name (must be specified)
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.

Specified by:
getVersionColumns in interface java.sql.DatabaseMetaData
Parameters:
catalog - null (to get all objects) or the catalog name
schema - schema name (must be specified)
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.

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.

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.

Specified by:
getCrossReference in interface java.sql.DatabaseMetaData
Parameters:
primaryCatalogPattern - null or the catalog name
primarySchemaPattern - the schema name of the primary table (must be specified)
primaryTable - the name of the primary table (must be specified)
foreignCatalogPattern - null or the catalog name
foreignSchemaPattern - the schema name of the foreign table (must be specified)
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.

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).

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-92 keywords. The list returned is:
 LIMIT,MINUS,ROWNUM,SYSDATE,SYSTIME,SYSTIMESTAMP,TODAY
 
The complete list of keywords (including SQL-92 keywords) is:
 CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DISTINCT,
 EXCEPT, EXISTS, FALSE, FOR, FROM, FULL, GROUP, HAVING, INNER,
 INTERSECT, IS, JOIN, LIKE, LIMIT, MINUS, NATURAL, NOT, NULL, ON,
 ORDER, PRIMARY, ROWNUM, SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP,
 TODAY, TRUE, UNION, WHERE
 

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)
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

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()
Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name.

Specified by:
supportsMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false

supportsMixedCaseQuotedIdentifiers

public 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).

Specified by:
supportsMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
true

storesUpperCaseIdentifiers

public boolean storesUpperCaseIdentifiers()
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

storesLowerCaseIdentifiers

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

Specified by:
storesLowerCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false

storesMixedCaseIdentifiers

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

Specified by:
storesMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
Returns:
false

storesUpperCaseQuotedIdentifiers

public boolean storesUpperCaseQuotedIdentifiers()
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

storesLowerCaseQuotedIdentifiers

public boolean storesLowerCaseQuotedIdentifiers()
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

storesMixedCaseQuotedIdentifiers

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

Specified by:
storesMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
Returns:
true

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.

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

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

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 catalog,
                                     java.lang.String schemaPattern)
                              throws java.sql.SQLException
[Not supported] Gets the list of schemas.

Specified by:
getSchemas in interface java.sql.DatabaseMetaData
Throws:
java.sql.SQLException

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
[Not supported] Returns the client info properties.

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
[Not supported] Return an object of this class if possible.

Specified by:
unwrap in interface java.sql.Wrapper
Throws:
java.sql.SQLException

isWrapperFor

public boolean isWrapperFor(java.lang.Class<?> iface)
                     throws java.sql.SQLException
[Not supported] Checks if unwrap can return an object of this class.

Specified by:
isWrapperFor in interface java.sql.Wrapper
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

toString

public java.lang.String toString()
INTERNAL

Overrides:
toString in class java.lang.Object