Mimer JDBC Engine 2.12

com.mimer.jdbc
Class DatabaseMetaData

java.lang.Object
  |
  +--com.mimer.jdbc.DatabaseMetaData
All Implemented Interfaces:
DatabaseMetaData

public final class DatabaseMetaData
extends Object
implements DatabaseMetaData

This class provides general information about the Mimer database. Both database abilities and database schema is targeted.

Many of the methods here return lists of information in ResultSets. You can use the normal ResultSet methods such as getString and getInt to retrieve the data from these ResultSets. If a given form of metadata is not available, these methods should throw a SQLException.

Some of these methods take arguments that are String patterns. These arguments all have names such as fooPattern. Within a pattern String, "%" means match any substring of 0 or more characters, and "_" means match any one character. Only metadata entries matching the search pattern are returned. If a search pattern argument is set to a null ref, it means that argument's criteria should be dropped from the search.

Please see {link java.sql.DatabaseMetaData} for information on methods in this class.


Field Summary
 
Fields inherited from interface java.sql.DatabaseMetaData
attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown
 
Method Summary
 boolean allProceduresAreCallable()
          Can all the procedures returned by getProcedures be called by the current user?
 boolean allTablesAreSelectable()
          Can all the tables returned by getTable be SELECTed by the current user?
 boolean dataDefinitionCausesTransactionCommit()
          Does a data definition statement within a transaction force the transaction to commit?
 boolean dataDefinitionIgnoredInTransactions()
          Is a data definition statement within a transaction ignored?
 boolean deletesAreDetected(int type)
          Indicates whether or not a visible row delete can be detected by calling ResultSet.rowDeleted().
 boolean doesMaxRowSizeIncludeBlobs()
          Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY blobs?
 ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable)
          Gets a description of a table's optimal set of columns that uniquely identifies a row.
 ResultSet getCatalogs()
          Gets the catalog names available in this database.
 String getCatalogSeparator()
          Returns the string that separates catalog from tables names.
 String getCatalogTerm()
          Returns the term used for catalogs in the system.
 ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern)
          Gets a description of the access rights for a table's columns.
 ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
          Gets a description of table columns available in the specified catalog.
 Connection getConnection()
          Retrieves the connection that produced this metadata object.
 ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable)
          Gets a description of the foreign key columns in the foreign key table that reference the primary key columns of the primary key table (describe how one table imports another's key.)
 String getDatabaseProductName()
          The name of the Mimer SQL server product.
 String getDatabaseProductVersion()
          The version of the Mimer server.
 int getDefaultTransactionIsolation()
          The default transaction isolation level of the Mimer server.
 int getDriverMajorVersion()
          The JDBC major version of the driver.
 int getDriverMinorVersion()
          The JDBC minor version of the driver.
 String getDriverName()
          Gives the name of this driver.
 String getDriverVersion()
          What's the version of this JDBC driver?
 ResultSet getExportedKeys(String catalog, String schema, String table)
          Gets a description of the foreign key columns that reference a table's primary key columns (the foreign keys exported by a table).
 String getExtraNameCharacters()
          Gets all the "extra" characters that can be used in unquoted identifier names (those beyond a-z, A-Z, 0-9 and _).
 String getIdentifierQuoteString()
          What's the string used to quote SQL identifiers?
 ResultSet getImportedKeys(String catalog, String schema, String table)
          Gets a description of the primary key columns that are referenced by a table's foreign key columns (the primary keys imported by a table).
 ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)
          Gets a description of a table's indices and statistics.
 int getMaxBinaryLiteralLength()
          How many hex characters can you have in an inline binary literal?
 int getMaxCatalogNameLength()
          What's the maximum length of a catalog name?
 int getMaxCharLiteralLength()
          What's the max length for a character literal?
 int getMaxColumnNameLength()
          What's the limit on column name length?
 int getMaxColumnsInGroupBy()
          What's the maximum number of columns in a "GROUP BY" clause?
 int getMaxColumnsInIndex()
          What's the maximum number of columns allowed in an index?
 int getMaxColumnsInOrderBy()
          What's the maximum number of columns in an "ORDER BY" clause?
 int getMaxColumnsInSelect()
          What's the maximum number of columns in a "SELECT" list?
 int getMaxColumnsInTable()
          What's the maximum number of columns in a table?
 int getMaxConnections()
          How many active connections can we have at a time to this database?
 int getMaxCursorNameLength()
          What's the maximum cursor name length?
 int getMaxIndexLength()
          Retrieves the maximum number of bytes for an index, including all of the parts of the index.
 int getMaxProcedureNameLength()
          What's the maximum length of a procedure name?
 int getMaxRowSize()
          What's the maximum length of a single row?
 int getMaxSchemaNameLength()
          What's the maximum length allowed for a schema name?
 int getMaxStatementLength()
          What's the maximum length of an SQL statement?
 int getMaxStatements()
          How many active statements can we have open at one time to this database?
 int getMaxTableNameLength()
          What's the maximum length of a table name?
 int getMaxTablesInSelect()
          What's the maximum number of tables in a SELECT statement?
 int getMaxUserNameLength()
          What's the maximum length of a user name?
 String getNumericFunctions()
          Gets a comma-separated list of math functions.
 ResultSet getPrimaryKeys(String catalog, String schema, String table)
          Gets a description of a table's primary key columns.
 ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)
          Gets a description of a catalog's stored procedure parameters and result columns.
 ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern)
          Gets a description of the stored procedures available in a catalog.
 String getProcedureTerm()
          What's the database vendor's preferred term for "procedure"?
 ResultSet getSchemas()
          Gets the schema names available in this database.
 String getSchemaTerm()
          What's the database vendor's preferred term for "schema"?
 String getSearchStringEscape()
          Gets the string that can be used to escape wildcard characters.
 String getSQLKeywords()
          Gets a comma-separated list of all a database's SQL keywords that are NOT also SQL92 keywords.
 String getStringFunctions()
          Gets a comma-separated list of string functions.
 String getSystemFunctions()
          Gets a comma-separated list of system functions.
 ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)
          Gets a description of the access rights for each table available in a catalog.
 ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
          Gets a description of tables available in a catalog.
 ResultSet getTableTypes()
          Gets the table types available in this database.
 String getTimeDateFunctions()
          Gets a comma-separated list of time and date functions.
 ResultSet getTypeInfo()
          Gets a description of all the standard SQL types supported by this database.
 ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types)
          Gets a description of the user-defined types defined in a particular schema.
 String getURL()
          The url for this database?
 String getUserName()
          The user name used to log into Mimer.
 ResultSet getVersionColumns(String catalog, String schema, String table)
          Gets a description of a table's columns that are automatically updated when any value in a row is updated.
 boolean insertsAreDetected(int type)
          Indicates whether or not a visible row insert can be detected by calling ResultSet.rowInserted().
 boolean isCatalogAtStart()
          Does a catalog appear at the start of a qualified table name?
 boolean isReadOnly()
          Is the database in read-only mode?
 boolean nullPlusNonNullIsNull()
          Are concatenations between NULL and non-NULL values NULL?
 boolean nullsAreSortedAtEnd()
          Are NULL values sorted at the end regardless of sort order?
 boolean nullsAreSortedAtStart()
          Are NULL values sorted at the start regardless of sort order?
 boolean nullsAreSortedHigh()
          Are NULL values sorted high?
 boolean nullsAreSortedLow()
          Are NULL values sorted low?
 boolean othersDeletesAreVisible(int type)
          Indicates whether deletes made by others are visible.
 boolean othersInsertsAreVisible(int type)
          Indicates whether inserts made by others are visible.
 boolean othersUpdatesAreVisible(int type)
          Indicates whether updates made by others are visible.
 boolean ownDeletesAreVisible(int type)
          Indicates whether a result set's own deletes are visible.
 boolean ownInsertsAreVisible(int type)
          Indicates whether a result set's own inserts are visible.
 boolean ownUpdatesAreVisible(int type)
          Indicates whether a result set's own updates are visible.
 boolean storesLowerCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in lower case?
 boolean storesLowerCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in lower case?
 boolean storesMixedCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in mixed case?
 boolean storesMixedCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case?
 boolean storesUpperCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in upper case?
 boolean storesUpperCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in upper case?
 boolean supportsAlterTableWithAddColumn()
          Is "ALTER TABLE" with add column supported?
 boolean supportsAlterTableWithDropColumn()
          Is "ALTER TABLE" with drop column supported?
 boolean supportsANSI92EntryLevelSQL()
          Is the ANSI92 entry level SQL grammar supported?
 boolean supportsANSI92FullSQL()
          Is the ANSI92 full SQL grammar supported?
 boolean supportsANSI92IntermediateSQL()
          Is the ANSI92 intermediate SQL grammar supported?
 boolean supportsBatchUpdates()
          Indicates whether the driver supports batch updates.
 boolean supportsCatalogsInDataManipulation()
          Can a catalog name be used in a data manipulation statement?
 boolean supportsCatalogsInIndexDefinitions()
          Can a schema name be used in an index definition statement?
 boolean supportsCatalogsInPrivilegeDefinitions()
          Can a schema name be used in a privilege definition statement?
 boolean supportsCatalogsInProcedureCalls()
          Can a catalog name be used in a procedure call statement?
 boolean supportsCatalogsInTableDefinitions()
          Can a catalog name be used in a table definition statement?
 boolean supportsColumnAliasing()
          Is column aliasing supported?
 boolean supportsConvert()
          Is the CONVERT function between SQL types supported?
 boolean supportsConvert(int fromType, int toType)
          Is CONVERT between the given SQL types supported?
 boolean supportsCoreSQLGrammar()
          Is the ODBC Core SQL grammar supported?
 boolean supportsCorrelatedSubqueries()
          Are correlated subqueries supported?
 boolean supportsDataDefinitionAndDataManipulationTransactions()
          Are both data definition and data manipulation statements within a transaction supported?
 boolean supportsDataManipulationTransactionsOnly()
          Are only data manipulation statements within a transaction supported?
 boolean supportsDifferentTableCorrelationNames()
          If table correlation names are supported, are they restricted to be different from the names of the tables?
 boolean supportsExpressionsInOrderBy()
          Are expressions in "ORDER BY" lists supported?
 boolean supportsExtendedSQLGrammar()
          Is the ODBC Extended SQL grammar supported?
 boolean supportsFullOuterJoins()
          Are full nested outer joins supported?
 boolean supportsGroupBy()
          Is some form of "GROUP BY" clause supported?
 boolean supportsGroupByBeyondSelect()
          Can a "GROUP BY" clause add columns not in the SELECT provided it specifies all the columns in the SELECT?
 boolean supportsGroupByUnrelated()
          Can a "GROUP BY" clause use columns not in the SELECT?
 boolean supportsIntegrityEnhancementFacility()
          Is the SQL Integrity Enhancement Facility supported?
 boolean supportsLikeEscapeClause()
          Is the escape character in "LIKE" clauses supported?
 boolean supportsLimitedOuterJoins()
          Is there limited support for outer joins?
 boolean supportsMinimumSQLGrammar()
          Is the ODBC Minimum SQL grammar supported?
 boolean supportsMixedCaseIdentifiers()
          Does the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case?
 boolean supportsMixedCaseQuotedIdentifiers()
          Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case?
 boolean supportsMultipleResultSets()
          Are multiple ResultSet from a single execute supported?
 boolean supportsMultipleTransactions()
          Can we have multiple transactions open at once (on different connections)?
 boolean supportsNonNullableColumns()
          Can columns be defined as non-nullable?
 boolean supportsOpenCursorsAcrossCommit()
          Can cursors remain open across commits?
 boolean supportsOpenCursorsAcrossRollback()
          Can cursors remain open across rollbacks?
 boolean supportsOpenStatementsAcrossCommit()
          Can statements remain open across commits?
 boolean supportsOpenStatementsAcrossRollback()
          Can statements remain open across rollbacks?
 boolean supportsOrderByUnrelated()
          Can an "ORDER BY" clause use columns not in the SELECT statement?
 boolean supportsOuterJoins()
          Is some form of outer join supported?
 boolean supportsPositionedDelete()
          Is positioned DELETE supported?
 boolean supportsPositionedUpdate()
          Is positioned UPDATE supported?
 boolean supportsResultSetConcurrency(int type, int concurrency)
          Does the database support the concurrency type in combination with the given result set type?
 boolean supportsResultSetType(int type)
          Does the database support the given result set type?
 boolean supportsSchemasInDataManipulation()
          Can a schema name be used in a data manipulation statement?
 boolean supportsSchemasInIndexDefinitions()
          Can a schema name be used in an index definition statement?
 boolean supportsSchemasInPrivilegeDefinitions()
          Can a schema name be used in a privilege definition statement?
 boolean supportsSchemasInProcedureCalls()
          Can a schema name be used in a procedure call statement?
 boolean supportsSchemasInTableDefinitions()
          Can a schema name be used in a table definition statement?
 boolean supportsSelectForUpdate()
          Is SELECT for UPDATE supported?
 boolean supportsStoredProcedures()
          Are stored procedure calls using the stored procedure escape syntax supported?
 boolean supportsSubqueriesInComparisons()
          Are subqueries in comparison expressions supported?
 boolean supportsSubqueriesInExists()
          Are subqueries in 'exists' expressions supported?
 boolean supportsSubqueriesInIns()
          Are subqueries in 'in' statements supported?
 boolean supportsSubqueriesInQuantifieds()
          Are subqueries in quantified expressions supported?
 boolean supportsTableCorrelationNames()
          Are table correlation names supported?
 boolean supportsTransactionIsolationLevel(int level)
          Does this database support the given transaction isolation level?
 boolean supportsTransactions()
          Are transactions supported?
 boolean supportsUnion()
          Is SQL UNION supported?
 boolean supportsUnionAll()
          Is SQL UNION ALL supported?
 boolean updatesAreDetected(int type)
          Indicates whether or not a visible row update can be detected by calling the method ResultSet.rowUpdated.
 boolean usesLocalFilePerTable()
          Does the database use a file for each table?
 boolean usesLocalFiles()
          Does the database store tables in a local file?
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.DatabaseMetaData
getAttributes, getDatabaseMajorVersion, getDatabaseMinorVersion, getJDBCMajorVersion, getJDBCMinorVersion, getResultSetHoldability, getSQLStateType, getSuperTables, getSuperTypes, locatorsUpdateCopy, supportsGetGeneratedKeys, supportsMultipleOpenResults, supportsNamedParameters, supportsResultSetHoldability, supportsSavepoints, supportsStatementPooling
 

Method Detail

allProceduresAreCallable

public boolean allProceduresAreCallable()
                                 throws SQLException
Can all the procedures returned by getProcedures be called by the current user? Mimer always returns true.

Specified by:
allProceduresAreCallable in interface DatabaseMetaData
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs

allTablesAreSelectable

public boolean allTablesAreSelectable()
                               throws SQLException
Can all the tables returned by getTable be SELECTed by the current user? Mimer always returns true.

Specified by:
allTablesAreSelectable in interface DatabaseMetaData
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs

dataDefinitionCausesTransactionCommit

public boolean dataDefinitionCausesTransactionCommit()
                                              throws SQLException
Does a data definition statement within a transaction force the transaction to commit? Mimer returns false

Note. Mimer SQL executes DDL statement within transactions, but DML and DDL statements may not be mixed within the same transaction. If a DDL statement is issued in a transaction that previously had executed DML statements, an SQLException is thrown.

Specified by:
dataDefinitionCausesTransactionCommit in interface DatabaseMetaData
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs

dataDefinitionIgnoredInTransactions

public boolean dataDefinitionIgnoredInTransactions()
                                            throws SQLException
Is a data definition statement within a transaction ignored? Mimer returns false.

Note. Mimer SQL executes DDL statement within transactions, but DML and DDL statements may not be mixed within the same transaction. If a DDL statement is issued in a transaction that previously had executed DML statements, an SQLException is thrown.

Specified by:
dataDefinitionIgnoredInTransactions in interface DatabaseMetaData
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs

deletesAreDetected

public boolean deletesAreDetected(int type)
                           throws SQLException
Indicates whether or not a visible row delete can be detected by calling ResultSet.rowDeleted(). If deletesAreDetected() returns false, then deleted rows are removed from the result set.

Current Mimer SQL cursors are all completely stable (Mimer SQL cursors always achieve what is commonly known under the name "cursor stability"), which means that any updates or deletes performed by others are invisible.

Specified by:
deletesAreDetected in interface DatabaseMetaData
Returns:
true if changes are detected by the resultset type
Throws:
SQLException - if a database access error occurs

doesMaxRowSizeIncludeBlobs

public boolean doesMaxRowSizeIncludeBlobs()
                                   throws SQLException
Did getMaxRowSize() include LONGVARCHAR and LONGVARBINARY blobs? Mimer returns false.

Note: There was a bug in 9.1-servers up until 9.2.1 which made this erronously return true.

Specified by:
doesMaxRowSizeIncludeBlobs in interface DatabaseMetaData
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs

getBestRowIdentifier

public ResultSet getBestRowIdentifier(String catalog,
                                      String schema,
                                      String table,
                                      int scope,
                                      boolean nullable)
                               throws SQLException
Gets a description of a table's optimal set of columns that uniquely identifies a row. They are ordered by SCOPE.

See DatabaseMetaData.getBestRowIdentifier(java.lang.String, java.lang.String, java.lang.String, int, boolean) for detailed information about the columns returned in the ResultSet.

Specified by:
getBestRowIdentifier in interface DatabaseMetaData
Parameters:
catalog - a catalog name. This is ignored since Mimer does not support the notion of catalogs.
schema - a schema name; "" retrieves those without a schema
table - a table name
scope - the scope of interest; use same values as SCOPE
nullable - include columns that are nullable?
Returns:
ResultSet - each row is a column description
Throws:
SQLException - if a database access error occurs

getCatalogs

public ResultSet getCatalogs()
                      throws SQLException
Gets the catalog names available in this database. The results are ordered by catalog name. Since Mimer does not support catalogs this result set is always empty.

See DatabaseMetaData.getCatalogs() for detailed information about the columns returned in the ResultSet.

Specified by:
getCatalogs in interface DatabaseMetaData
Returns:
ResultSet - each row has a single String column that is a catalog name
Throws:
SQLException - if a database access error occurs

getCatalogSeparator

public String getCatalogSeparator()
                           throws SQLException
Returns the string that separates catalog from tables names. Mimer returns an empty string since the notion of catalogs is not supported.

Specified by:
getCatalogSeparator in interface DatabaseMetaData
Returns:
the separator string
Throws:
SQLException - if a database access error occurs

getCatalogTerm

public String getCatalogTerm()
                      throws SQLException
Returns the term used for catalogs in the system. Mimer returns an empty string since the notion of catalogs is not supported.

Specified by:
getCatalogTerm in interface DatabaseMetaData
Returns:
the vendor term
Throws:
SQLException - if a database access error occurs

getColumnPrivileges

public ResultSet getColumnPrivileges(String catalog,
                                     String schema,
                                     String table,
                                     String columnNamePattern)
                              throws SQLException
Gets a description of the access rights for a table's columns.

See DatabaseMetaData.getColumnPrivileges(java.lang.String, java.lang.String, java.lang.String, java.lang.String) for detailed information about the columns returned in the ResultSet.

Specified by:
getColumnPrivileges in interface DatabaseMetaData
Parameters:
catalog - a catalog name. Mimer ignores this parameter since it does not support the notion of catalogs.
schema - a schema name; "" retrieves those without a schema
table - a table name
columnNamePattern - a column name pattern
Returns:
ResultSet - each row is a column privilege description
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getColumns

public ResultSet getColumns(String catalog,
                            String schemaPattern,
                            String tableNamePattern,
                            String columnNamePattern)
                     throws SQLException
Gets a description of table columns available in the specified catalog.

See DatabaseMetaData.getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String) for detailed information about the columns returned in the ResultSet.

Specified by:
getColumns in interface DatabaseMetaData
Parameters:
catalog - a catalog name. Mimer ignores this since it does not support the notion of catalogs.
schemaPattern - a schema name pattern; "" retrieves those without a schema
tableNamePattern - a table name pattern
columnNamePattern - a column name pattern
Returns:
ResultSet - each row is a column description
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getConnection

public Connection getConnection()
                         throws SQLException
Retrieves the connection that produced this metadata object.

Specified by:
getConnection in interface DatabaseMetaData
Returns:
the connection that produced this metadata object
SQLException

getCrossReference

public ResultSet getCrossReference(String primaryCatalog,
                                   String primarySchema,
                                   String primaryTable,
                                   String foreignCatalog,
                                   String foreignSchema,
                                   String foreignTable)
                            throws SQLException
Gets a description of the foreign key columns in the foreign key table that reference the primary key columns of the primary key table (describe how one table imports another's key.) This should normally return a single foreign key/primary key pair (most tables only import a foreign key from a table once.) They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ.

See DatabaseMetaData.getColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String) for detailed information about the columns returned in the ResultSet.

Specified by:
getCrossReference in interface DatabaseMetaData
Parameters:
primaryCatalog - a catalog name; Mimer ignores this parameter since it does not support the notion of catalogs.
primarySchema - a schema name; "" retrieves those without a schema
primaryTable - the table name that exports the key
foreignCatalog - a catalog name; "" retrieves those without a catalog; null means drop catalog name from the selection criteria
foreignSchema - a schema name; "" retrieves those without a schema
foreignTable - the table name that imports the key
Returns:
ResultSet - each row is a foreign key column description
Throws:
SQLException - if a database access error occurs
See Also:
getImportedKeys(java.lang.String, java.lang.String, java.lang.String)

getDatabaseProductName

public String getDatabaseProductName()
                              throws SQLException
The name of the Mimer SQL server product.

Specified by:
getDatabaseProductName in interface DatabaseMetaData
Returns:
database product name
Throws:
SQLException - if a database access error occurs

getDatabaseProductVersion

public String getDatabaseProductVersion()
                                 throws SQLException
The version of the Mimer server.

Specified by:
getDatabaseProductVersion in interface DatabaseMetaData
Returns:
database version
Throws:
SQLException - if a database access error occurs

getDefaultTransactionIsolation

public int getDefaultTransactionIsolation()
                                   throws SQLException
The default transaction isolation level of the Mimer server. The values are defined in java.sql.Connection.

The default isolation level of Mimer is Connection.TRANSACTION_REPEATABLE_READ.

Specified by:
getDefaultTransactionIsolation in interface DatabaseMetaData
Returns:
the default isolation level
Throws:
SQLException - if a database access error occurs
See Also:
Connection

getDriverMajorVersion

public int getDriverMajorVersion()
The JDBC major version of the driver. The Mimer system is is to have this number identical to the JDBC level supported. A major version of 3 indicates that the driver implements the JDBC 3 specification.

Specified by:
getDriverMajorVersion in interface DatabaseMetaData
Returns:
JDBC driver major version

getDriverMinorVersion

public int getDriverMinorVersion()
The JDBC minor version of the driver. The Mimer system is to use this number as a version number across major versions. Unlike the major version number, which indicates which JDBC spec is implemented, the minor version indicates which features are are supported.

Mimer JDBC versions 1.12, 2.12 and 3.12 will implement the same database features within the scope of their respective JDBC specifications.

Specified by:
getDriverMinorVersion in interface DatabaseMetaData
Returns:
JDBC driver major version

getDriverName

public String getDriverName()
                     throws SQLException
Gives the name of this driver.

Specified by:
getDriverName in interface DatabaseMetaData
Returns:
JDBC driver name
Throws:
SQLException - if a database access error occurs

getDriverVersion

public String getDriverVersion()
                        throws SQLException
What's the version of this JDBC driver?

Specified by:
getDriverVersion in interface DatabaseMetaData
Returns:
JDBC driver version
Throws:
SQLException - if a database access error occurs

getExportedKeys

public ResultSet getExportedKeys(String catalog,
                                 String schema,
                                 String table)
                          throws SQLException
Gets a description of the foreign key columns that reference a table's primary key columns (the foreign keys exported by a table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and KEY_SEQ.

See DatabaseMetaData.getExportedKeys(java.lang.String, java.lang.String, java.lang.String) for detailed information about the columns returned in the ResultSet.

Specified by:
getExportedKeys in interface DatabaseMetaData
Parameters:
catalog - a catalog name. Mimer ignores this parameter since it does not support the notion of catalogs.
schema - a schema name; "" retrieves those without a schema
table - a table name
Returns:
ResultSet - each row is a foreign key column description
Throws:
SQLException - if a database access error occurs
See Also:
getImportedKeys(java.lang.String, java.lang.String, java.lang.String)

getExtraNameCharacters

public String getExtraNameCharacters()
                              throws SQLException
Gets all the "extra" characters that can be used in unquoted identifier names (those beyond a-z, A-Z, 0-9 and _). Besides those mentioned Mimer accepts # and $ in unquoted identifier names.

Specified by:
getExtraNameCharacters in interface DatabaseMetaData
Returns:
the string containing the extra characters
Throws:
SQLException - if a database access error occurs

getIdentifierQuoteString

public String getIdentifierQuoteString()
                                throws SQLException
What's the string used to quote SQL identifiers? Mimer returns a double quote character (").

Specified by:
getIdentifierQuoteString in interface DatabaseMetaData
Returns:
the quoting string
Throws:
SQLException - if a database access error occurs

getImportedKeys

public ResultSet getImportedKeys(String catalog,
                                 String schema,
                                 String table)
                          throws SQLException
Gets a description of the primary key columns that are referenced by a table's foreign key columns (the primary keys imported by a table). They are ordered by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.

See DatabaseMetaData.getImportedKeys(java.lang.String, java.lang.String, java.lang.String) for detailed information about the columns returned in the ResultSet.

Specified by:
getImportedKeys in interface DatabaseMetaData
Parameters:
catalog - a catalog name. Mimer ignores this parameter since it does not support the notion of catalogs.
schema - a schema name; "" retrieves those without a schema
table - a table name
Returns:
ResultSet - each row is a primary key column description
Throws:
SQLException - if a database access error occurs
See Also:
getExportedKeys(java.lang.String, java.lang.String, java.lang.String)

getIndexInfo

public ResultSet getIndexInfo(String catalog,
                              String schema,
                              String table,
                              boolean unique,
                              boolean approximate)
                       throws SQLException
Gets a description of a table's indices and statistics. They are ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.

See DatabaseMetaData.getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean) for detailed information about the columns returned in the ResultSet.

Specified by:
getIndexInfo in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since it does not support the notion of catalogs.
schema - a schema name; "" retrieves those without a schema
table - a table name
unique - when true, return only indices for unique values; when false, return indices regardless of whether unique or not
approximate - when true, result is allowed to reflect approximate or out of data values; when false, results are requested to be accurate
Returns:
ResultSet - each row is an index column description
Throws:
SQLException - if a database access error occurs

getMaxBinaryLiteralLength

public int getMaxBinaryLiteralLength()
                              throws SQLException
How many hex characters can you have in an inline binary literal? Mimer accepts 15000 characters.

Specified by:
getMaxBinaryLiteralLength in interface DatabaseMetaData
Returns:
max binary literal length in hex characters;
Throws:
SQLException - if a database access error occurs

getMaxCatalogNameLength

public int getMaxCatalogNameLength()
                            throws SQLException
What's the maximum length of a catalog name? Since Mimer does not support the notion of catalogs, 0 is returned.

Specified by:
getMaxCatalogNameLength in interface DatabaseMetaData
Returns:
max name length in bytes; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxCharLiteralLength

public int getMaxCharLiteralLength()
                            throws SQLException
What's the max length for a character literal? Mimer accepts no longer than 15000 characters in character literals.

Specified by:
getMaxCharLiteralLength in interface DatabaseMetaData
Returns:
max literal length; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxColumnNameLength

public int getMaxColumnNameLength()
                           throws SQLException
What's the limit on column name length? Mimer supports column name lengths of up to 128 characters.

Specified by:
getMaxColumnNameLength in interface DatabaseMetaData
Returns:
max column name length
Throws:
SQLException - if a database access error occurs

getMaxColumnsInGroupBy

public int getMaxColumnsInGroupBy()
                           throws SQLException
What's the maximum number of columns in a "GROUP BY" clause? Mimer has no limit.

Specified by:
getMaxColumnsInGroupBy in interface DatabaseMetaData
Returns:
max number of columns; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxColumnsInIndex

public int getMaxColumnsInIndex()
                         throws SQLException
What's the maximum number of columns allowed in an index? Mimer allows up to 32 columns in an index.

Specified by:
getMaxColumnsInIndex in interface DatabaseMetaData
Returns:
max number of columns; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxColumnsInOrderBy

public int getMaxColumnsInOrderBy()
                           throws SQLException
What's the maximum number of columns in an "ORDER BY" clause? Mimer has no limit.

Specified by:
getMaxColumnsInOrderBy in interface DatabaseMetaData
Returns:
max number of columns; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxColumnsInSelect

public int getMaxColumnsInSelect()
                          throws SQLException
What's the maximum number of columns in a "SELECT" list? Mimer returns 0 since it has no limit.

Specified by:
getMaxColumnsInSelect in interface DatabaseMetaData
Returns:
max number of columns; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxColumnsInTable

public int getMaxColumnsInTable()
                         throws SQLException
What's the maximum number of columns in a table? Mimer limits tables to at most 252 columns.

Specified by:
getMaxColumnsInTable in interface DatabaseMetaData
Returns:
max number of columns; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxConnections

public int getMaxConnections()
                      throws SQLException
How many active connections can we have at a time to this database? Mimer uses no limit other than what is stipulated by the server configuration or the license key. Neither of those are known by the client.

Specified by:
getMaxConnections in interface DatabaseMetaData
Returns:
max number of active connections; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxCursorNameLength

public int getMaxCursorNameLength()
                           throws SQLException
What's the maximum cursor name length? Mimer support cursor name lengths up to 128 characters.

Specified by:
getMaxCursorNameLength in interface DatabaseMetaData
Returns:
max cursor name length i