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

getMaxIndexLength

public int getMaxIndexLength()
                      throws SQLException
Retrieves the maximum number of bytes for an index, including all of the parts of the index. Mimer support index lengths up to 16000 bytes.

Specified by:
getMaxIndexLength in interface DatabaseMetaData
Returns:
max index length in bytes, which includes the composite of all the constituent parts of the index; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxProcedureNameLength

public int getMaxProcedureNameLength()
                              throws SQLException
What's the maximum length of a procedure name? Mimer limit procedure name lengths to at most 128 characters.

Specified by:
getMaxProcedureNameLength 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

getMaxRowSize

public int getMaxRowSize()
                  throws SQLException
What's the maximum length of a single row? Mimer supports row sizes of up to 16000 bytes.

Specified by:
getMaxRowSize in interface DatabaseMetaData
Returns:
max row size 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

getMaxSchemaNameLength

public int getMaxSchemaNameLength()
                           throws SQLException
What's the maximum length allowed for a schema name? Mimer limits schema name lengths to at most 128 characters.

Specified by:
getMaxSchemaNameLength 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

getMaxStatementLength

public int getMaxStatementLength()
                          throws SQLException
What's the maximum length of an SQL statement? Mimer employs no statement length limit.

Specified by:
getMaxStatementLength in interface DatabaseMetaData
Returns:
max 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

getMaxStatements

public int getMaxStatements()
                     throws SQLException
How many active statements can we have open at one time to this database? Mimer uses no limit, the maximum number of concurrently open Statement objects is only limited by the amount of memory available.

Specified by:
getMaxStatements in interface DatabaseMetaData
Returns:
the maximum number of statements that can be open at one time; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxTableNameLength

public int getMaxTableNameLength()
                          throws SQLException
What's the maximum length of a table name? Mimer may be used with table name lengths up to 128 characters.

Specified by:
getMaxTableNameLength 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

getMaxTablesInSelect

public int getMaxTablesInSelect()
                         throws SQLException
What's the maximum number of tables in a SELECT statement? There is no limit in Mimer.

Specified by:
getMaxTablesInSelect in interface DatabaseMetaData
Returns:
the maximum number of tables allowed in a SELECT statement; a result of zero means that there is no limit or the limit is not known
Throws:
SQLException - if a database access error occurs

getMaxUserNameLength

public int getMaxUserNameLength()
                         throws SQLException
What's the maximum length of a user name? Mimer limit user name lengths to 128 characters.

Specified by:
getMaxUserNameLength in interface DatabaseMetaData
Returns:
max user 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

getNumericFunctions

public String getNumericFunctions()
                           throws SQLException
Gets a comma-separated list of math functions. These are the X/Open CLI math function names used in the JDBC function escape clause.

Specified by:
getNumericFunctions in interface DatabaseMetaData
Returns:
the list
Throws:
SQLException - if a database access error occurs

getPrimaryKeys

public ResultSet getPrimaryKeys(String catalog,
                                String schema,
                                String table)
                         throws SQLException
Gets a description of a table's primary key columns. They are ordered by COLUMN_NAME.

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

Specified by:
getPrimaryKeys in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since it doesn't implement 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

getProcedureColumns

public ResultSet getProcedureColumns(String catalog,
                                     String schemaPattern,
                                     String procedureNamePattern,
                                     String columnNamePattern)
                              throws SQLException
Gets a description of a catalog's stored procedure parameters and result columns.

Only descriptions matching the schema, procedure and parameter name criteria are returned. They are ordered by PROCEDURE_SCHEM and PROCEDURE_NAME. Within this, the return value, if any, is first. Next are the parameter descriptions in call order. The column descriptions follow in column number order.

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

Specified by:
getProcedureColumns in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since it doesn't support the notion of catalogs.
schemaPattern - a schema name pattern; "" retrieves those without a schema
procedureNamePattern - a procedure name pattern
columnNamePattern - a column name pattern
Returns:
ResultSet - each row describes a stored procedure parameter or column
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getProcedures

public ResultSet getProcedures(String catalog,
                               String schemaPattern,
                               String procedureNamePattern)
                        throws SQLException
Gets a description of the stored procedures available in a catalog.

Only procedure descriptions matching the schema and procedure name criteria are returned. They are ordered by PROCEDURE_SCHEM, and PROCEDURE_NAME.

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

Specified by:
getProcedures in interface DatabaseMetaData
Parameters:
catalog - a catalog name; this parameter is ignored since the notion of catalogs is not supported by Mimer.
schemaPattern - a schema name pattern; "" retrieves those without a schema
procedureNamePattern - a procedure name pattern
Returns:
ResultSet - each row is a procedure description
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getProcedureTerm

public String getProcedureTerm()
                        throws SQLException
What's the database vendor's preferred term for "procedure"? All Mimer users call a procedure a "procedure".

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

getSchemas

public ResultSet getSchemas()
                     throws SQLException
Gets the schema names available in this database. The results are ordered by schema name.

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

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

getSchemaTerm

public String getSchemaTerm()
                     throws SQLException
What's the database vendor's preferred term for "schema"? All Mimer database professionals use the word "schema" to denote a schema.

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

getSearchStringEscape

public String getSearchStringEscape()
                             throws SQLException
Gets the string that can be used to escape wildcard characters. This is the string that can be used to escape '_' or '%' in the string pattern style catalog search parameters.

The '_' character represents any single character.

The '%' character represents any sequence of zero or more characters.

Specified by:
getSearchStringEscape in interface DatabaseMetaData
Returns:
the string used to escape wildcard characters
Throws:
SQLException - if a database access error occurs

getSQLKeywords

public String getSQLKeywords()
                      throws SQLException
Gets a comma-separated list of all a database's SQL keywords that are NOT also SQL92 keywords.

Mimer SQL only reserves those keywords stipulated by the SQL standard. The reason Mimer returns a few words here is that these words are reserved in SQL-99 or SQL-2003 but not in SQL-92.

For more information on reserved words in SQL see .

Specified by:
getSQLKeywords in interface DatabaseMetaData
Returns:
the list
Throws:
SQLException - if a database access error occurs

getStringFunctions

public String getStringFunctions()
                          throws SQLException
Gets a comma-separated list of string functions. These are the X/Open CLI string function names used in the JDBC function escape clause.

Specified by:
getStringFunctions in interface DatabaseMetaData
Returns:
the list
Throws:
SQLException - if a database access error occurs

getSystemFunctions

public String getSystemFunctions()
                          throws SQLException
Gets a comma-separated list of system functions. These are the X/Open CLI system function names used in the JDBC function escape clause.

Specified by:
getSystemFunctions in interface DatabaseMetaData
Returns:
the list
Throws:
SQLException - if a database access error occurs

getTablePrivileges

public ResultSet getTablePrivileges(String catalog,
                                    String schemaPattern,
                                    String tableNamePattern)
                             throws SQLException
Gets a description of the access rights for each table available in a catalog. Note that a table privilege applies to one or more columns in the table. It would be wrong to assume that this priviledge applies to all columns (this may be true for some systems but is not true for all.)

Only privileges matching the schema and table name criteria are returned. They are ordered by TABLE_SCHEM, TABLE_NAME, and PRIVILEGE.

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

Specified by:
getTablePrivileges in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignoresthis parameter since the concept of catalogs is not implemented.
schemaPattern - a schema name pattern; "" retrieves those without a schema
tableNamePattern - a table name pattern
Returns:
ResultSet - each row is a table privilege description
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getTables

public ResultSet getTables(String catalog,
                           String schemaPattern,
                           String tableNamePattern,
                           String[] types)
                    throws SQLException
Gets a description of tables available in a catalog.

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

Specified by:
getTables in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since the concept of catalogs is not supported.
schemaPattern - a schema name pattern; "" retrieves those without a schema
tableNamePattern - a table name pattern
types - a list of table types to include; null returns all types
Returns:
ResultSet - each row is a table description
Throws:
SQLException - if a database access error occurs
See Also:
getSearchStringEscape()

getTableTypes

public ResultSet getTableTypes()
                        throws SQLException
Gets the table types available in this database. The results are ordered by table type.

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

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

getTimeDateFunctions

public String getTimeDateFunctions()
                            throws SQLException
Gets a comma-separated list of time and date functions.

Specified by:
getTimeDateFunctions in interface DatabaseMetaData
Returns:
the list
Throws:
SQLException - if a database access error occurs

getTypeInfo

public ResultSet getTypeInfo()
                      throws SQLException
Gets a description of all the standard SQL types supported by this database. They are ordered by DATA_TYPE and then by how closely the data type maps to the corresponding JDBC SQL type.

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

Specified by:
getTypeInfo in interface DatabaseMetaData
Returns:
ResultSet - each row is an SQL type description
Throws:
SQLException - if a database access error occurs

getUDTs

public ResultSet getUDTs(String catalog,
                         String schemaPattern,
                         String typeNamePattern,
                         int[] types)
                  throws SQLException
Gets a description of the user-defined types defined in a particular schema. Schema-specific UDTs may have type JAVA_OBJECT, STRUCT, or DISTINCT.

See DatabaseMetaData.getUDTs(java.lang.String, java.lang.String, java.lang.String, int[]) for detailed information about the columns returned in the ResultSet.

Specified by:
getUDTs in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since the concept of catalogs is not supported.
schemaPattern - a schema name pattern; "" retrieves those without a schema
typeNamePattern - a type name pattern; may be a fully-qualified name
types - a list of user-named types to include (JAVA_OBJECT, STRUCT, or DISTINCT); null returns all types
Returns:
ResultSet - each row is a type description
Throws:
SQLException - if a database access error occurs

getURL

public String getURL()
              throws SQLException
The url for this database?

Specified by:
getURL in interface DatabaseMetaData
Returns:
the url or null if it cannot be generated
Throws:
SQLException - if a database access error occurs

getUserName

public String getUserName()
                   throws SQLException
The user name used to log into Mimer.

Specified by:
getUserName in interface DatabaseMetaData
Returns:
our database user name
Throws:
SQLException - if a database access error occurs

getVersionColumns

public ResultSet getVersionColumns(String catalog,
                                   String schema,
                                   String table)
                            throws SQLException
Gets a description of a table's columns that are automatically updated when any value in a row is updated. They are unordered.

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

Specified by:
getVersionColumns in interface DatabaseMetaData
Parameters:
catalog - a catalog name; Mimer ignores this parameter since the concept of catalogs is not supported.
schema - a schema name; "" retrieves those without a schema
table - a table name
Returns:
ResultSet - each row is a column description
Throws:
SQLException - if a database access error occurs

insertsAreDetected

public boolean insertsAreDetected(int type)
                           throws SQLException
Indicates whether or not a visible row insert can be detected by calling ResultSet.rowInserted().

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:
insertsAreDetected in interface DatabaseMetaData
Returns:
true if changes are detected by the resultset type
Throws:
SQLException - if a database access error occurs

isCatalogAtStart

public boolean isCatalogAtStart()
                         throws SQLException
Does a catalog appear at the start of a qualified table name?

Mimer does not support the use of catalogs, but returns false.

Specified by:
isCatalogAtStart in interface DatabaseMetaData
Returns:
true if it appears at the start
Throws:
SQLException - if a database access error occurs

isReadOnly

public boolean isReadOnly()
                   throws SQLException
Is the database in read-only mode?

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

nullPlusNonNullIsNull

public boolean nullPlusNonNullIsNull()
                              throws SQLException
Are concatenations between NULL and non-NULL values NULL? For SQL-92 compliance, a JDBC technology-enabled driver will return true.

Mimer SQL follows the SQL standard in this respect so this call returns true.

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

nullsAreSortedAtEnd

public boolean nullsAreSortedAtEnd()
                            throws SQLException
Are NULL values sorted at the end regardless of sort order? Mimer returns false.

No, Mimer SQL NULL values are always sorted low.

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

nullsAreSortedAtStart

public boolean nullsAreSortedAtStart()
                              throws SQLException
Are NULL values sorted at the start regardless of sort order?

No, Mimer SQL NULL values are always sorted low.

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

nullsAreSortedHigh

public boolean nullsAreSortedHigh()
                           throws SQLException
Are NULL values sorted high?

No, Mimer SQL NULL values are always sorted low.

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

nullsAreSortedLow

public boolean nullsAreSortedLow()
                          throws SQLException
Are NULL values sorted low?

Yes, Mimer SQL NULL values are always sorted low.

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

othersDeletesAreVisible

public boolean othersDeletesAreVisible(int type)
                                throws SQLException
Indicates whether deletes made by others are visible.

Specified by:
othersDeletesAreVisible in interface DatabaseMetaData
Returns:
true if deletes made by others are visible for the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

othersInsertsAreVisible

public boolean othersInsertsAreVisible(int type)
                                throws SQLException
Indicates whether inserts made by others are visible.

Specified by:
othersInsertsAreVisible in interface DatabaseMetaData
Returns:
true if updates are visible for the result set type
Throws:
SQLException - if a database access error occurs

othersUpdatesAreVisible

public boolean othersUpdatesAreVisible(int type)
                                throws SQLException
Indicates whether updates made by others are visible.

Specified by:
othersUpdatesAreVisible in interface DatabaseMetaData
Returns:
true if updates made by others are visible for the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

ownDeletesAreVisible

public boolean ownDeletesAreVisible(int type)
                             throws SQLException
Indicates whether a result set's own deletes are visible.

Specified by:
ownDeletesAreVisible in interface DatabaseMetaData
Returns:
true if deletes are visible for the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

ownInsertsAreVisible

public boolean ownInsertsAreVisible(int type)
                             throws SQLException
Indicates whether a result set's own inserts are visible.

Specified by:
ownInsertsAreVisible in interface DatabaseMetaData
Returns:
true if inserts are visible for the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

ownUpdatesAreVisible

public boolean ownUpdatesAreVisible(int type)
                             throws SQLException
Indicates whether a result set's own updates are visible.

Specified by:
ownUpdatesAreVisible in interface DatabaseMetaData
Returns:
true if updates are visible for the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

storesLowerCaseIdentifiers

public boolean storesLowerCaseIdentifiers()
                                   throws SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in lower case?

No, Mimer SQL treats such identifiers as case insensitive and stores them in uppercase.

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

storesLowerCaseQuotedIdentifiers

public boolean storesLowerCaseQuotedIdentifiers()
                                         throws SQLException
Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in lower case?

No, Mimer SQL treats such identifiers as case sensitive and stores them in mixed case.

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

storesMixedCaseIdentifiers

public boolean storesMixedCaseIdentifiers()
                                   throws SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in mixed case?

No, Mimer SQL treats such identifiers as case insensitive and stores them in uppercase.

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

storesMixedCaseQuotedIdentifiers

public boolean storesMixedCaseQuotedIdentifiers()
                                         throws SQLException
Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC CompliantTM driver will always return true.

Yes, Mimer SQL treats such identifiers as case sensitive and stores them in mixed case.

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

storesUpperCaseIdentifiers

public boolean storesUpperCaseIdentifiers()
                                   throws SQLException
Does the database treat mixed case unquoted SQL identifiers as case insensitive and store them in upper case?

Yes, Mimer SQL treats such identifiers as case insensitive and stores them in uppercase.

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

storesUpperCaseQuotedIdentifiers

public boolean storesUpperCaseQuotedIdentifiers()
                                         throws SQLException
Does the database treat mixed case quoted SQL identifiers as case insensitive and store them in upper case?

No, Mimer SQL treats such identifiers as case sensitive and stores them in mixed case.

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

supportsAlterTableWithAddColumn

public boolean supportsAlterTableWithAddColumn()
                                        throws SQLException
Is "ALTER TABLE" with add column supported?

Yes, Mimer SQL supports ALTER TABLE ADD.

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

supportsAlterTableWithDropColumn

public boolean supportsAlterTableWithDropColumn()
                                         throws SQLException
Is "ALTER TABLE" with drop column supported?

Yes, Mimer SQL supports ALTER TABLE DROP.

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

supportsANSI92EntryLevelSQL

public boolean supportsANSI92EntryLevelSQL()
                                    throws SQLException
Is the ANSI92 entry level SQL grammar supported? Yes, Mimer SQL supports this grammar. All JDBC CompliantTM drivers must return true.

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

supportsANSI92FullSQL

public boolean supportsANSI92FullSQL()
                              throws SQLException
Is the ANSI92 full SQL grammar supported?

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

supportsANSI92IntermediateSQL

public boolean supportsANSI92IntermediateSQL()
                                      throws SQLException
Is the ANSI92 intermediate SQL grammar supported?

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

supportsBatchUpdates

public boolean supportsBatchUpdates()
                             throws SQLException
Indicates whether the driver supports batch updates.

Mimer SQL supports batch queries up to a total of about 10 MB in size.

Specified by:
supportsBatchUpdates in interface DatabaseMetaData
Returns:
true if the driver supports batch updates; false otherwise
SQLException

supportsCatalogsInDataManipulation

public boolean supportsCatalogsInDataManipulation()
                                           throws SQLException
Can a catalog name be used in a data manipulation statement?

No, Mimer SQL does not implement the notion of catalogs.

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

supportsCatalogsInIndexDefinitions

public boolean supportsCatalogsInIndexDefinitions()
                                           throws SQLException
Can a schema name be used in an index definition statement?

Yes, Mimer SQL supports SQL-92 schemas since 8.2.

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

supportsCatalogsInPrivilegeDefinitions

public boolean supportsCatalogsInPrivilegeDefinitions()
                                               throws SQLException
Can a schema name be used in a privilege definition statement?

No, Mimer SQL does not implement the notion of catalogs.

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

supportsCatalogsInProcedureCalls

public boolean supportsCatalogsInProcedureCalls()
                                         throws SQLException
Can a catalog name be used in a procedure call statement?

No, Mimer SQL does not implement the notion of catalogs.

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

supportsCatalogsInTableDefinitions

public boolean supportsCatalogsInTableDefinitions()
                                           throws SQLException
Can a catalog name be used in a table definition statement?

No, Mimer SQL does not implement the notion of catalogs.

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

supportsColumnAliasing

public boolean supportsColumnAliasing()
                               throws SQLException
Is column aliasing supported?

If so, the SQL AS clause can be used to provide names for computed columns or to provide alias names for columns as required. A JDBC CompliantTM driver always returns true.

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

supportsConvert

public boolean supportsConvert()
                        throws SQLException
Is the CONVERT function between SQL types supported?

Yes, Mimer SQL supports the CONVERT escape clause function.

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

supportsConvert

public boolean supportsConvert(int fromType,
                               int toType)
                        throws SQLException
Is CONVERT between the given SQL types supported? That is, this is the escape clause convert, like {fn CONVERT(...)}.

Specified by:
supportsConvert in interface DatabaseMetaData
Parameters:
fromType - the type to convert from
toType - the type to convert to
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs
See Also:
Types

supportsCoreSQLGrammar

public boolean supportsCoreSQLGrammar()
                               throws SQLException
Is the ODBC Core SQL grammar supported?

Yes, The ODBC Core SQL grammar is supported by Mimer SQL.

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

supportsCorrelatedSubqueries

public boolean supportsCorrelatedSubqueries()
                                     throws SQLException
Are correlated subqueries supported? A JDBC CompliantTM driver always returns true.

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

supportsDataDefinitionAndDataManipulationTransactions

public boolean supportsDataDefinitionAndDataManipulationTransactions()
                                                              throws SQLException
Are both data definition and data manipulation statements within a transaction supported?

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

supportsDataManipulationTransactionsOnly

public boolean supportsDataManipulationTransactionsOnly()
                                                 throws SQLException
Are only data manipulation statements within a transaction supported?

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

supportsDifferentTableCorrelationNames

public boolean supportsDifferentTableCorrelationNames()
                                               throws SQLException
If table correlation names are supported, are they restricted to be different from the names of the tables?

Mimer SQL always returns false, this is in line with the SQL-99 standard.

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

supportsExpressionsInOrderBy

public boolean supportsExpressionsInOrderBy()
                                     throws SQLException
Are expressions in "ORDER BY" lists supported?

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

supportsExtendedSQLGrammar

public boolean supportsExtendedSQLGrammar()
                                   throws SQLException
Is the ODBC Extended SQL grammar supported?

Yes, The ODBC Extended SQL grammar is supported by Mimer SQL. The below is a list of features included in ODBC Extended SQL grammar.

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

supportsFullOuterJoins

public boolean supportsFullOuterJoins()
                               throws SQLException
Are full nested outer joins supported?

Mimer SQL does not supports the FULL OUTER JOIN operator. See Retrieving Data from More than One Table in the Mimer 9.2 reference manual for more information about OUTER JOIN.

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

supportsGroupBy

public boolean supportsGroupBy()
                        throws SQLException
Is some form of "GROUP BY" clause supported?

Yes, GROUP BY is supported by Mimer SQL.

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

supportsGroupByBeyondSelect

public boolean supportsGroupByBeyondSelect()
                                    throws SQLException
Can a "GROUP BY" clause add columns not in the SELECT provided it specifies all the columns in the SELECT?

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

supportsGroupByUnrelated

public boolean supportsGroupByUnrelated()
                                 throws SQLException
Can a "GROUP BY" clause use columns not in the SELECT?

No, Mimer SQL requires GROUP BY columns to be in the select list. This is in line with the SQL-99 standard.

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

supportsIntegrityEnhancementFacility

public boolean supportsIntegrityEnhancementFacility()
                                             throws SQLException
Is the SQL Integrity Enhancement Facility supported?

Yes, Mimer SQL always validates the integrity of the database.

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

supportsLikeEscapeClause

public boolean supportsLikeEscapeClause()
                                 throws SQLException
Is the escape character in "LIKE" clauses supported? A JDBC CompliantTM driver always returns true.

Yes, Mimer SQL supports the escape character in the LIKE clause. See in the Mimer SQL Reference Manual for more information about the LIKE-clause.

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

supportsLimitedOuterJoins

public boolean supportsLimitedOuterJoins()
                                  throws SQLException
Is there limited support for outer joins? (This will be true if supportFullOuterJoins is true.)

Yes, Mimer SQL supports the LEFT OUTER JOIN and RIGHT OUTER JOIN operators. See Retrieving Data from More than One Table in the Mimer 9.2 reference manual for more information about OUTER JOIN.

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

supportsMinimumSQLGrammar

public boolean supportsMinimumSQLGrammar()
                                  throws SQLException
Is the ODBC Minimum SQL grammar supported? All JDBC CompliantTM drivers must return true.

Mimer SQL supports the ODBC minimum SQL grammar.

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

supportsMixedCaseIdentifiers

public boolean supportsMixedCaseIdentifiers()
                                     throws SQLException
Does the database treat mixed case unquoted SQL identifiers as case sensitive and as a result store them in mixed case?

A JDBC CompliantTM driver will always return false.

No, Mimer SQL requires case sensitive identifiers to be quoted. This is in line with the SQL-99 standard.

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

supportsMixedCaseQuotedIdentifiers

public boolean supportsMixedCaseQuotedIdentifiers()
                                           throws SQLException
Does the database treat mixed case quoted SQL identifiers as case sensitive and as a result store them in mixed case? A JDBC CompliantTM driver will always return true.

Yes, Mimer SQL supports quoted case sensitive identifiers. This is in line with the SQL-99 standard.

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

supportsMultipleResultSets

public boolean supportsMultipleResultSets()
                                   throws SQLException
Are multiple ResultSet from a single execute supported?

No, Mimer SQL only returns one result set per statement through the JDBC interface.

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

supportsMultipleTransactions

public boolean supportsMultipleTransactions()
                                     throws SQLException
Can we have multiple transactions open at once (on different connections)?

Yes, Mimer SQL supports one open transaction on each connection.

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

supportsNonNullableColumns

public boolean supportsNonNullableColumns()
                                   throws SQLException
Can columns be defined as non-nullable?

A JDBC CompliantTM driver always returns true.

Yes, Mimer SQL columns may be defined as NOT NULL. This is in line with the SQL-99 standard.

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

supportsOpenCursorsAcrossCommit

public boolean supportsOpenCursorsAcrossCommit()
                                        throws SQLException
Can cursors remain open across commits?

No, Mimer SQL cursors are automatically closed upon commit.

Specified by:
supportsOpenCursorsAcrossCommit in interface DatabaseMetaData
Returns:
true if cursors always remain open; false if they might not remain open
Throws:
SQLException - if a database access error occurs

supportsOpenCursorsAcrossRollback

public boolean supportsOpenCursorsAcrossRollback()
                                          throws SQLException
Can cursors remain open across rollbacks?

No, Mimer SQL cursors are automatically closed upon rollback.

Specified by:
supportsOpenCursorsAcrossRollback in interface DatabaseMetaData
Returns:
true if cursors always remain open; false if they might not remain open
Throws:
SQLException - if a database access error occurs

supportsOpenStatementsAcrossCommit

public boolean supportsOpenStatementsAcrossCommit()
                                           throws SQLException
Can statements remain open across commits?

Yes, Mimer SQL always let statements remain open for as long as the duration of the connection.

Specified by:
supportsOpenStatementsAcrossCommit in interface DatabaseMetaData
Returns:
true if statements always remain open; false if they might not remain open
Throws:
SQLException - if a database access error occurs

supportsOpenStatementsAcrossRollback

public boolean supportsOpenStatementsAcrossRollback()
                                             throws SQLException
Can statements remain open across rollbacks?

Yes, Mimer SQL always let statements remain open for as long as the duration of the connection.

Specified by:
supportsOpenStatementsAcrossRollback in interface DatabaseMetaData
Returns:
true if statements always remain open; false if they might not remain open
Throws:
SQLException - if a database access error occurs

supportsOrderByUnrelated

public boolean supportsOrderByUnrelated()
                                 throws SQLException
Can an "ORDER BY" clause use columns not in the SELECT statement?

Mimer SQL requires columns in ORDER BY to be in the select-list. This is in line with the SQL-99 standard.

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

supportsOuterJoins

public boolean supportsOuterJoins()
                           throws SQLException
Is some form of outer join supported?

Mimer SQL does not supports the FULL OUTER JOIN operator. See Retrieving Data from More than One Table in the Mimer 9.2 reference manual for more information about OUTER JOIN.

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

supportsPositionedDelete

public boolean supportsPositionedDelete()
                                 throws SQLException
Is positioned DELETE supported?

Yes, Mimer SQL supports deletes through DELETE WHERE CURRENT statements. See the DELETE WHERE CURRENT section of the Mimer SQL 9.2 manual for more information.

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

supportsPositionedUpdate

public boolean supportsPositionedUpdate()
                                 throws SQLException
Is positioned UPDATE supported?

Yes, Mimer SQL supports deletes through UPDATE WHERE CURRENT statements. See the UPDATE WHERE CURRENT section of the Mimer SQL 9.2 manual for more information.

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

supportsResultSetConcurrency

public boolean supportsResultSetConcurrency(int type,
                                            int concurrency)
                                     throws SQLException
Does the database support the concurrency type in combination with the given result set type?

Mimer SQL supports both read only and updatable cursors. This routine will therefore return true for both ResultSet.CONCUR_READ_ONLY as well as ResultSet.CONCUR_UPDATABLE. However, note that Mimer SQL currently don't support updatable cursors through the JDBC API, but only using the corresponding SQL-99 updatable cursor operations.

Specified by:
supportsResultSetConcurrency in interface DatabaseMetaData
Parameters:
type - defined in java.sql.ResultSet
concurrency - type defined in java.sql.ResultSet
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs
See Also:
Connection

supportsResultSetType

public boolean supportsResultSetType(int type)
                              throws SQLException
Does the database support the given result set type?

Mimer SQL only supports a cursor mode commonly known under the the name "cursor stability". This means that once the cursor is created, it does never change. It will always reflect the state of the database at the time of creation. Thus, ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE are supported while ResultSet.TYPE_SCROLL_SENSITIVE is not.

Specified by:
supportsResultSetType in interface DatabaseMetaData
Parameters:
type - defined in java.sql.ResultSet
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs
See Also:
Connection

supportsSchemasInDataManipulation

public boolean supportsSchemasInDataManipulation()
                                          throws SQLException
Can a schema name be used in a data manipulation statement?

Yes, Mimer SQL supports schemas since 8.2. See section on schemas in the Mimer SQL 9.2 reference manual for more information on schemas.

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

supportsSchemasInIndexDefinitions

public boolean supportsSchemasInIndexDefinitions()
                                          throws SQLException
Can a schema name be used in an index definition statement?

Yes, Mimer SQL supports schemas since 8.2. See section on schemas in the Mimer SQL 9.2 reference manual for more information on schemas.

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

supportsSchemasInPrivilegeDefinitions

public boolean supportsSchemasInPrivilegeDefinitions()
                                              throws SQLException
Can a schema name be used in a privilege definition statement?

Yes, Mimer SQL supports schemas since 8.2. See section on schemas in the Mimer SQL 9.2 reference manual for more information on schemas.

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

supportsSchemasInProcedureCalls

public boolean supportsSchemasInProcedureCalls()
                                        throws SQLException
Can a schema name be used in a procedure call statement?

Yes, Mimer SQL supports schemas since 8.2. See section on schemas in the Mimer SQL 9.2 reference manual for more information on schemas.

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

supportsSchemasInTableDefinitions

public boolean supportsSchemasInTableDefinitions()
                                          throws SQLException
Can a schema name be used in a table definition statement?

Yes, Mimer SQL supports schemas since 8.2. See section on schemas in the Mimer SQL 9.2 reference manual for more information on schemas.

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

supportsSelectForUpdate

public boolean supportsSelectForUpdate()
                                throws SQLException
Is SELECT for UPDATE supported?

Yes, Mimer SQL supports the SELECT for UPDATE clause. See SELECT statement in the Mimer SQL 9.2 reference manual for more information.

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

supportsStoredProcedures

public boolean supportsStoredProcedures()
                                 throws SQLException
Are stored procedure calls using the stored procedure escape syntax supported?

Yes, Mimer SQL procedures may be called using the escape clauses.

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

supportsSubqueriesInComparisons

public boolean supportsSubqueriesInComparisons()
                                        throws SQLException
Are subqueries in comparison expressions supported?

A JDBC CompliantTM driver always returns true.

Yes, Mimer SQL supports subqueries in comparison expressions.

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

supportsSubqueriesInExists

public boolean supportsSubqueriesInExists()
                                   throws SQLException
Are subqueries in 'exists' expressions supported? A JDBC CompliantTM driver always returns true.

Yes, Mimer SQL supports EXISTS subqueries.

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

supportsSubqueriesInIns

public boolean supportsSubqueriesInIns()
                                throws SQLException
Are subqueries in 'in' statements supported? A JDBC CompliantTM driver always returns true.

Yes, Mimer SQL supports IN subqueries.

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

supportsSubqueriesInQuantifieds

public boolean supportsSubqueriesInQuantifieds()
                                        throws SQLException
Are subqueries in quantified expressions supported? A JDBC CompliantTM driver always returns true.

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

supportsTableCorrelationNames

public boolean supportsTableCorrelationNames()
                                      throws SQLException
Are table correlation names supported? A JDBC CompliantTM driver always returns true.

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

supportsTransactionIsolationLevel

public boolean supportsTransactionIsolationLevel(int level)
                                          throws SQLException
Does this database support the given transaction isolation level?

Mimer SQL supports all transaction isolation levels. However, in practice Mimer SQL will never expose isolation less than REPEATABLE READ, but requirements for the levels lower than that are always fulfilled.

Specified by:
supportsTransactionIsolationLevel in interface DatabaseMetaData
Parameters:
level - the values are defined in java.sql.Connection
Returns:
true if so; false otherwise
Throws:
SQLException - if a database access error occurs
See Also:
Connection

supportsTransactions

public boolean supportsTransactions()
                             throws SQLException
Are transactions supported? If not, invoking the method commit is a noop and the isolation level is TRANSACTION_NONE.

Mimer SQL always support the notion of transactions. Database administrators may, however, choose to place tables in so called "NULL databanks". These are databanks which does not expose full ACID characteristics. Also, changes to tables in these databanks are not logged. See Databank Options in the Mimer SQL System Management manual for more information about databank options.

Specified by:
supportsTransactions in interface DatabaseMetaData
Returns:
true if transactions are supported; false otherwise
Throws:
SQLException - if a database access error occurs

supportsUnion

public boolean supportsUnion()
                      throws SQLException
Is SQL UNION supported?

Mimer SQL supports the UNION clause. See Retrieving Data from More than One Table in the Mimer 9.2 reference manual for more information about UNION.

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

supportsUnionAll

public boolean supportsUnionAll()
                         throws SQLException
Is SQL UNION ALL supported?

Mimer SQL supports the UNION ALL clause.

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

updatesAreDetected

public boolean updatesAreDetected(int type)
                           throws SQLException
Indicates whether or not a visible row update can be detected by calling the method ResultSet.rowUpdated.

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:
updatesAreDetected in interface DatabaseMetaData
Returns:
true if changes are detected by the result set type; false otherwise
Throws:
SQLException - if a database access error occurs

usesLocalFilePerTable

public boolean usesLocalFilePerTable()
                              throws SQLException
Does the database use a file for each table?

Mimer SQL will always store one or more tables in each databank (file system file), so this will always return false.

Specified by:
usesLocalFilePerTable in interface DatabaseMetaData
Returns:
true if the database uses a local file for each table
Throws:
SQLException - if a database access error occurs

usesLocalFiles

public boolean usesLocalFiles()
                       throws SQLException
Does the database store tables in a local file?

When Mimer is accessed using JDBC, the server always has to run in multiuser mode, and thus this always returns false.

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

Mimer JDBC Engine 2.12

Submit a comment or suggestion Version 2.12 of Mimer JDBC Engine
Copyright Upright Database Technology AB, Box 1713, SE-751 47 UPPSALA, Sweden. All Rights Reserved.