/*************************************************************************
/* DatabaseMetaData.java -- Information about the database itself.
/*
/* Copyright (c) 1999 Free Software Foundation, Inc.
/* Written by Aaron M. Renn (arenn@urbanophile.com)
/*
/* This library is free software; you can redistribute it and/or modify
/* it under the terms of the GNU Library General Public License as published
/* by the Free Software Foundation, either version 2 of the License, or
/* (at your option) any later verion.
/*
/* This library is distributed in the hope that it will be useful, but
/* WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* GNU Library General Public License for more details.
/*
/* You should have received a copy of the GNU Library General Public License
/* along with this library; if not, write to the Free Software Foundation
/* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA
/*************************************************************************/
package java.sql;
/**
* This interface provides a mechanism for obtaining information about
* the database itself, as opposed to data in it.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
*/
public abstract interface DatabaseMetaData
{
/**
* The best row may or may not be a pseudo-column.
*/
public static final int bestRowUnknown = 0;
/**
* The best row identifier is not a pseudo-column.
*/
public static final int bestRowNotPseudo = 1;
/**
* The best row identifer is a pseudo-column.
*/
public static final int bestRowPseudo = 2;
/**
* The best row's scope is only guaranteed to be valid so long as the
* row is actually being used.
*/
public static final int bestRowTemporary = 0;
/**
* The best row identifer is valid to the end of the transaction.
*/
public static final int bestRowTransaction = 1;
/**
* The best row identifer is valid to the end of the session.
*/
public static final int bestRowSession = 2;
/**
* It is unknown whether or not the procedure returns a result.
*/
public static final int procedureResultUnknown = 0;
/**
* The procedure does not return a result.
*/
public static final int procedureNoResult = 1;
/**
* The procedure returns a result.
*/
public static final int procedureReturnsResult = 2;
/**
* The column type is unknown.
*/
public static final int procedureColumnUnknown = 0;
/**
* The column type is input.
*/
public static final int procedureColumnIn = 1;
/**
* The column type is input/output.
*/
public static final int procedureColumnInOut = 2;
/**
* The column type is output
*/
public static final int procedureColumnOut = 4;
/**
* The column is used for return values.
*/
public static final int procedureColumnReturn = 5;
/**
* The column is used for storing results
*/
public static final int procedureColumnResult = 3;
/**
* NULL values are not allowed.
*/
public static final int procedureNoNulls = 0;
/**
* NULL values are allowed.
*/
public static final int procedureNullable = 1;
/**
* It is unknown whether or not NULL values are allowed.
*/
public static final int procedureNullableUnknown = 2;
/**
* The column does not allow NULL
*/
public static final int columnNoNulls = 0;
/**
* The column does allow NULL
*/
public static final int columnNullable = 1;
/**
* It is unknown whether or not the column allows NULL
*/
public static final int columnNullableUnknown = 2;
/**
* It is unknown whether or not the version column is a pseudo-column.
*/
public static final int versionColumnUnknown = 0;
/**
* The version column is not a pseudo-column
*/
public static final int versionColumnNotPseudo = 1;
/**
* The version column is a pseudo-column
*/
public static final int versionColumnPseudo = 2;
/**
* Foreign key changes are cascaded in updates or deletes.
*/
public static final int importedKeyCascade = 0;
/**
* Column may not be updated or deleted in use as a foreign key.
*/
public static final int importedKeyRestrict = 1;
/**
* When primary key is updated or deleted, the foreign key is set to NULL.
*/
public static final int importedKeySetNull = 2;
/**
* If the primary key is a foreign key, it cannot be udpated or deleted.
*/
public static final int importedKeyNoAction = 3;
/**
* If the primary key is updated or deleted, the foreign key is set to
* a default value.
*/
public static final int importedKeySetDefault = 4;
/**
* Wish I knew what this meant.
*/
public static final int importedKeyInitiallyDeferred = 5;
/**
* Wish I knew what this meant.
*/
public static final int importedKeyInitiallyImmediate = 6;
/**
* Wish I knew what this meant.
*/
public static final int importedKeyNotDeferrable = 7;
/**
* A NULL value is not allowed for this data type.
*/
public static final int typeNoNulls = 0;
/**
* A NULL value is allowed for this data type.
*/
public static final int typeNullable = 1;
/**
* It is unknown whether or not NULL values are allowed for this data type.
*/
public static final int typeNullableUnknown = 2;
/**
* Where clauses are not supported for this type.
*/
public static final int typePredNone = 0;
/**
* Only "WHERE..LIKE" style WHERE clauses are allowed on this data type.
*/
public static final int typePredChar = 1;
/**
* All WHERE clauses except "WHERE..LIKE" style are allowed on this data type.
*/
public static final int typePredBasic = 2;
/**
* Any type of WHERE clause is allowed for this data type.
*/
public static final int typeSearchable = 3;
/**
* This column contains table statistics.
*/
public static final short tableIndexStatistic = 0;
/**
* This table index is clustered.
*/
public static final short tableIndexClustered = 1;
/**
* This table index is hashed.
*/
public static final short tableIndexHashed = 2;
/**
* This table index is of another type.
*/
public static final short tableIndexOther = 3;
/*************************************************************************/
/**
* This method tests whether or not all the procedures returned by
* the getProcedures method can be called by this user.
*
* @return true if all the procedures can be called,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
allProceduresAreCallable() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not all the table returned by the
* getTables method can be selected by this user.
*
* @return true if all the procedures can be called,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
allTablesAreSelectable() throws SQLException;
/*************************************************************************/
/**
* This method returns the URL for this database.
*
* @return The URL string for this database, or null if it
* is not known.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getURL() throws SQLException;
/*************************************************************************/
/**
* This method returns the database username for this connection.
*
* @return The database username.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getUserName() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database is in read only mode.
*
* @return true if the database is in read only mode,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
isReadOnly() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not NULL's sort as high values.
*
* @return true if NULL's sort as high values, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
nullsAreSortedHigh() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not NULL's sort as low values.
*
* @return true if NULL's sort as low values, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
nullsAreSortedLow() throws SQLException;
/*************************************************************************/
/**
* This method test whether or not NULL's are sorted to the beginning
* of the list regardless of ascending or descending sort order.
*
* @return true if NULL's always sort to the beginning,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
nullsAreSortedAtStart() throws SQLException;
/*************************************************************************/
/**
* This method test whether or not NULL's are sorted to the end
* of the list regardless of ascending or descending sort order.
*
* @return true if NULL's always sort to the end,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
nullsAreSortedAtEnd() throws SQLException;
/*************************************************************************/
/**
* This method returns the name of the database product.
*
* @return The database product.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getDatabaseProductName() throws SQLException;
/*************************************************************************/
/**
* This method returns the version of the database product.
*
* @return The version of the database product.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getDatabaseProductVersion() throws SQLException;
/*************************************************************************/
/**
* This method returns the name of the JDBC driver.
*
* @return The name of the JDBC driver.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getDriverName() throws SQLException;
/*************************************************************************/
/**
* This method returns the version of the JDBC driver.
*
* @return The version of the JDBC driver.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getDriverVersion() throws SQLException;
/*************************************************************************/
/**
* This method returns the major version number of the JDBC driver.
*
* @return The major version number of the JDBC driver.
*/
public abstract int
getDriverMajorVersion();
/*************************************************************************/
/**
* This method returns the minor version number of the JDBC driver.
*
* @return The minor version number of the JDBC driver.
*/
public abstract int
getDriverMinorVersion();
/*************************************************************************/
/**
* This method tests whether or not the database uses local files to
* store tables.
*
* @return true if the database uses local files,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
usesLocalFiles() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database uses a separate file for
* each table.
*
* @return true if the database uses a separate file for each
* table false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
usesLocalFilePerTable() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports identifiers
* with mixed case.
*
* @return true if the database supports mixed case identifiers,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsMixedCaseIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database treats mixed case
* identifiers as all upper case.
*
* @exception true if the database treats all identifiers as
* upper case, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesUpperCaseIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database treats mixed case
* identifiers as all lower case.
*
* @exception true if the database treats all identifiers as
* lower case, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesLowerCaseIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database stores mixed case
* identifers even if it treats them as case insensitive.
*
* @return true if the database stores mixed case identifiers,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesMixedCaseIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports quoted identifiers
* with mixed case.
*
* @return true if the database supports mixed case quoted
* identifiers, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsMixedCaseQuotedIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database treats mixed case
* quoted identifiers as all upper case.
*
* @exception true if the database treats all quoted identifiers
* as upper case, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesUpperCaseQuotedIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database treats mixed case
* quoted identifiers as all lower case.
*
* @exception true if the database treats all quoted identifiers
* as lower case, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesLowerCaseQuotedIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database stores mixed case
* quoted identifers even if it treats them as case insensitive.
*
* @return true if the database stores mixed case quoted
* identifiers, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
storesMixedCaseQuotedIdentifiers() throws SQLException;
/*************************************************************************/
/**
* This metohd returns the quote string for SQL identifiers.
*
* @return The quote string for SQL identifers, or a space if quoting
* is not supported.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getIdentiferQuoteString() throws SQLException;
/*************************************************************************/
/**
* This method returns a comma separated list of all the SQL keywords in
* the database that are not in SQL92.
*
* @return The list of SQL keywords not in SQL92.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getSQLKeywords() throws SQLException;
/*************************************************************************/
/**
* This method returns a comma separated list of math functions.
*
* @return The list of math functions.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getNumericFunctions() throws SQLException;
/*************************************************************************/
/**
* This method returns a comma separated list of string functions.
*
* @return The list of string functions.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getStringFunctions() throws SQLException;
/*************************************************************************/
/**
* This method returns a comma separated list of of system functions.
*
* @return A comma separated list of system functions.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getSystemFunctions() throws SQLException;
/*************************************************************************/
/**
* This method returns comma separated list of date/time functions.
*
* @return The list of date/time functions.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getDateTimeFunctions() throws SQLException;
/*************************************************************************/
/**
* This method returns the string used to escape wildcards in search strings.
*
* @return The string used to escape wildcards in search strings.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getSearchStringEscape() throws SQLException;
/*************************************************************************/
/**
* This methods returns non-standard characters that can appear in
* unquoted identifiers.
*
* @return Non-standard characters that can appear in unquoted identifiers.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getExtraNameCharacters() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports
* "ALTER TABLE ADD COLUMN"
*
* @return true if column add supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsAlterTableWithAddColumn() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports
* "ALTER TABLE DROP COLUMN"
*
* @return true if column drop supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsAlterTableWithDropColumn() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not column aliasing is supported.
*
* @return true if column aliasing is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsColumnAliasing() throws SQLException;
/*************************************************************************/
/**
* This method tests whether the concatenation of a NULL and non-NULL
* value results in a NULL. This will always be true in fully JDBC compliant
* drivers.
*
* @return true if concatenating NULL and a non-NULL value
* returns a NULL, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
nullPlusNonNullIsNull() throws SQLException;
/*************************************************************************/
/**
* Tests whether or not CONVERT is supported.
*
* @return true if CONVERT is supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsConvert() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not CONVERT can be performed between the
* specified types. The types are contants from Types.
*
* @param fromType The SQL type to convert from.
* @param toType The SQL type to convert to.
*
* @return true if the conversion can be performed,
* false otherwise.
*
* @see Types
*/
public abstract boolean
supportsConvert(int fromType, int toType) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not table correlation names are
* supported. This will be always be true in a fully JDBC
* compliant driver.
*
* @return true if table correlation names are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsTableCorrelationNames() throws SQLException;
/*************************************************************************/
/**
* This method tests whether correlation names must be different from the
* name of the table.
*
* @return true if the correlation name must be different from
* the table name, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsDifferentTableCorrelationNames() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not expressions are allowed in an
* ORDER BY lists.
*
* @return true if expressions are allowed in ORDER BY
* lists, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsExpressionsInOrderBy() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or ORDER BY on a non-selected column is
* allowed.
*
* @return true if a non-selected column can be used in an
* ORDER BY, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOrderByUnrelated() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not GROUP BY is supported.
*
* @return true if GROUP BY is supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsGroupBy() throws SQLException;
/*************************************************************************/
/**
* This method tests whether GROUP BY on a non-selected column is
* allowed.
*
* @return true if a non-selected column can be used in a
* GROUP BY, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsGroupByUnrelated() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not a GROUP BY can add columns not in the
* select if it includes all the columns in the select.
*
* @return true if GROUP BY an add columns provided it includes
* all columns in the select, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsGroupByBeyondSelect() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the escape character is supported in
* LIKE expressions. A fully JDBC compliant driver will always return
* true.
*
* @return true if escapes are supported in LIKE expressions,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean supportsLikeEscapeClause() throws SQLException;
/*************************************************************************/
/**
* This method tests whether multiple result sets for a single statement are
* supported.
*
* @return true if multiple result sets are supported for a
* single statement, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsMultipleResultSets() throws SQLException;
/*************************************************************************/
/**
* This method test whether or not multiple transactions may be open
* at once, as long as they are on different connections.
*
* @return true if multiple transactions on different
* connections are supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsMultipleTransactions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not columns can be defined as NOT NULL. A
* fully JDBC compliant driver always returns true.
*
* @return true if NOT NULL columns are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsNonNullableColumns() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the minimum grammer for ODBC is supported.
* A fully JDBC compliant driver will always return true.
*
* @return true if the ODBC minimum grammar is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsMinimumSQLGrammar() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the core grammer for ODBC is supported.
*
* @return true if the ODBC core grammar is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCoreSQLGrammar() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the extended grammer for ODBC is supported.
*
* @return true if the ODBC extended grammar is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsExtendedSQLGrammar() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the ANSI92 entry level SQL
* grammar is supported. A fully JDBC compliant drivers must return
* true.
*
* @return true if the ANSI92 entry level SQL grammar is
* supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsANSI92EntryLevelSQL() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the ANSI92 intermediate SQL
* grammar is supported.
*
* @return true if the ANSI92 intermediate SQL grammar is
* supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsANSI92IntermediateSQL() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the ANSI92 full SQL
* grammar is supported.
*
* @return true if the ANSI92 full SQL grammar is
* supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsANSI92FullSQL() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the SQL integrity enhancement
* facility is supported.
*
* @return true if the integrity enhancement facility is
* supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsIntegrityEnhancementFacility() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports outer joins.
*
* @return true if outer joins are supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOuterJoins() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports full outer joins.
*
* @return true if full outer joins are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsFullOuterJoins() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports limited outer joins.
*
* @return true if limited outer joins are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsLimitedOuterJoins() throws SQLException;
/*************************************************************************/
/**
* This method returns the vendor's term for "schema".
*
* @return The vendor's term for schema.
*
* @exception SQLException if an error occurs.
*/
public abstract String
getSchemaTerm() throws SQLException;
/*************************************************************************/
/**
* This method returns the vendor's term for "procedure".
*
* @return The vendor's term for procedure.
*
* @exception SQLException if an error occurs.
*/
public abstract String
getProcedureTerm() throws SQLException;
/*************************************************************************/
/**
* This method returns the vendor's term for "catalog".
*
* @return The vendor's term for catalog.
*
* @exception SQLException if an error occurs.
*/
public abstract String
getCatalogTerm() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name appears at the beginning of
* a fully qualified table name.
*
* @return true if the catalog name appears at the beginning,
* false if it appears at the end.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
isCatalogAtStart() throws SQLException;
/*************************************************************************/
/**
* This method returns the separator between the catalog name and the
* table name.
*
* @return The separator between the catalog name and the table name.
*
* @exception SQLException If an error occurs.
*/
public abstract String
getCatalogSeparator() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a data
* manipulation statement.
*
* @return true if a catalog name can appear in a data
* manipulation statement, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSchemasInDataManipulation() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a procedure
* call
*
* @return true if a catalog name can appear in a procedure
* call, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSchemasInProcedureCalls() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a table definition.
*
* @return true if a catalog name can appear in a table
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSchemasInTableDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in an index definition.
*
* @return true if a catalog name can appear in an index
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSchemasInIndexDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in privilege definitions.
*
* @return true if a catalog name can appear in privilege
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSchemasInPrivilegeDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a data
* manipulation statement.
*
* @return true if a catalog name can appear in a data
* manipulation statement, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCatalogsInDataManipulation() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a procedure
* call
*
* @return true if a catalog name can appear in a procedure
* call, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCatalogsInProcedureCalls() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in a table definition.
*
* @return true if a catalog name can appear in a table
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCatalogsInTableDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in an index definition.
*
* @return true if a catalog name can appear in an index
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCatalogsInIndexDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether a catalog name can appear in privilege definitions.
*
* @return true if a catalog name can appear in privilege
* definition, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCatalogInPrivilegeDefinitions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not that database supports positioned
* deletes.
*
* @return true if positioned deletes are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsPositionedDelete() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not that database supports positioned
* updates.
*
* @return true if positioned updates are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsPositionedUpdate() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not SELECT FOR UPDATE is supported by the
* database.
*
* @return true if SELECT FOR UPDATE is supported
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSelectForUpdate() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not stored procedures are supported on
* this database.
*
* @return true if stored procedures are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsStoredProcedures() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not subqueries are allowed in comparisons.
* A fully JDBC compliant driver will always return true.
*
* @return true if subqueries are allowed in comparisons,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSubqueriesInComparisons() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not subqueries are allowed in exists
* expressions. A fully JDBC compliant driver will always return
* true.
*
* @return true if subqueries are allowed in exists
* expressions, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSubqueriesInExists() throws SQLException;
/*************************************************************************/
/**
* This method tests whether subqueries are allowed in IN statements.
* A fully JDBC compliant driver will always return true.
*
* @return true if the driver supports subqueries in IN
* statements, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSubqueriesInIns() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not subqueries are allowed in quantified
* expressions. A fully JDBC compliant driver will always return
* true.
*
* @return true if subqueries are allowed in quantified
* expressions, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsSubqueriesInQuantifieds() throws SQLException;
/*************************************************************************/
/**
* This method test whether or not correlated subqueries are allowed. A
* fully JDBC compliant driver will always return true.
*
* @return true if correlated subqueries are allowed,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsCorrelatedSubqueries() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the UNION statement is supported.
*
* @return true if UNION is supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsUnion() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the UNION ALL statement is supported.
*
* @return true if UNION ALL is supported, false
* otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsUnionAll() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports cursors
* remaining open across commits.
*
* @return true if cursors can remain open across commits,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOpenCursorsAcrossCommit() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports cursors
* remaining open across rollbacks.
*
* @return true if cursors can remain open across rollbacks,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOpenCursorsAcrossRollback() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports statements
* remaining open across commits.
*
* @return true if statements can remain open across commits,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOpenStatementsAcrossCommit() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports statements
* remaining open across rollbacks.
*
* @return true if statements can remain open across rollbacks,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsOpenStatementsAcrossRollback() throws SQLException;
/*************************************************************************/
/**
* This method returns the number of hex characters allowed in an inline
* binary literal.
*
* @return The number of hex characters allowed in a binary literal, 0 meaning
* either an unknown or unlimited number.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxBinaryLiteralLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a character literal.
*
* @return The maximum length of a character literal.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxCharLiteralLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a column name.
*
* @return The maximum length of a column name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of columns in a GROUP BY statement.
*
* @return The maximum number of columns in a GROUP BY statement.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnsInGroupBy() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of columns in an index.
*
* @return The maximum number of columns in an index.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnsInIndex() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of columns in an ORDER BY statement.
*
* @return The maximum number of columns in an ORDER BY statement.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnsInOrderBy() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of columns in a SELECT statement.
*
* @return The maximum number of columns in a SELECT statement.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnsInSelect() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of columns in a table.
*
* @return The maximum number of columns in a table.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxColumnsInTable() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of connections this client
* can have to the database.
*
* @return The maximum number of database connections.
*
* @SQLException If an error occurs.
*/
public abstract int
getMaxConnections() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a cursor name.
*
* @return The maximum length of a cursor name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxCursorNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of an index.
*
* @return The maximum length of an index.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxIndexLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a schema name.
*
* @return The maximum length of a schema name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxSchemaNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a procedure name.
*
* @return The maximum length of a procedure name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxProcedureNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a catalog name.
*
* @return The maximum length of a catalog name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxCatalogNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum size of a row in bytes.
*
* @return The maximum size of a row.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxRowSize() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the maximum row size includes BLOB's
*
* @return true if the maximum row size includes BLOB's,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
doesMaxRowSizeIncludeBlobs() throws SQLException;
/*************************************************************************/
/**
* This method includes the maximum length of a SQL statement.
*
* @return The maximum length of a SQL statement.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxStatementLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of statements that can be
* active at any time.
*
* @return The maximum number of statements that can be active at any time.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxStatements() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a table name.
*
* @return The maximum length of a table name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxTableNameLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum number of tables that may be referenced
* in a SELECT statement.
*
* @return The maximum number of tables allowed in a SELECT statement.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxTablesInSelect() throws SQLException;
/*************************************************************************/
/**
* This method returns the maximum length of a user name.
*
* @return The maximum length of a user name.
*
* @exception SQLException If an error occurs.
*/
public abstract int
getMaxTableUserLength() throws SQLException;
/*************************************************************************/
/**
* This method returns the default transaction isolation level of the
* database.
*
* @return The default transaction isolation level of the database.
*
* @exception SQLException If an error occurs.
*
* @see Connection
*/
public abstract int
getDefaultTransactionIsolation() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports transactions.
*
* @return true if the database supports transactions,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsTransactions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports the specified
* transaction isolation level.
*
* @param level The transaction isolation level.
*
* @return true if the specified transaction isolation level
* is supported, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsTransactionIsolationLevel(int level) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not DDL and DML statements allowed within
* the same transaction.
*
* @return true if DDL and DML statements are allowed in the
* same transaction, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsDataDefinitionAndDataManipulationTransactions() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not only DML statement are allowed
* inside a transaction.
*
* @return true if only DML statements are allowed in
* transactions, false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsDataManipulationTransactionsOnly() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not a DDL statement will cause the
* current transaction to be automatically committed.
*
* @return true if DDL causes an immediate transaction commit,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
dataDefinitionCausesTransactionCommit() throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not DDL statements are ignored in
* transactions.
*
* @return true if DDL statements are ignored in transactions,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
dataDefinitionIgnoredInTransactions() throws SQLException;
/*************************************************************************/
/**
* This method returns a list of all the stored procedures matching the
* specified pattern in the given schema and catalog. This is returned
* a ResultSet with the following columns:
*
*
null.
* null.
* procedureResultUnknown, procedureNoResult, or
* procedureReturnsResult).
* ResultSet with all the requested procedures.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getProcedures(String catalog, String schemaPattern, String namePattern)
throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the parameter and result columns for
* the requested stored procedures. This is returned in the form of a
* ResultSet with the following columns:
* *
null.
* null.
* procedureColumnUnknown,
* procedureColumnIn, procedureColumnInOut,
* procedureColumnOut, procedureColumnReturn,
* or procedureColumnResult).
* Types.
* procedureNoNulls,
* procedureNullable, or procedureNullableUnknown)
* ResultSet with all the requested procedures.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getProcedureColumns(String catalog, String schemaPattern, String namePattern,
String columnPattern) throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the requested table as a
* ResultSet with the following columns:
* *
null.
* null.
* getTableTypes() method.
* ResultSet with all the requested tables.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getTables(String catalog, String schemaPattern, String namePattern)
throws SQLException;
/*************************************************************************/
/**
* This method returns the list of database schemas as a
* ResultSet, with one column - TABLE_SCHEM - that is the
* name of the schema.
*
* @return A ResultSet with all the requested schemas.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getSchemas() throws SQLException;
/*************************************************************************/
/**
* This method returns the list of database catalogs as a
* ResultSet with one column - TABLE_CAT - that is the
* name of the catalog.
*
* @return A ResultSet with all the requested catalogs.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getCatalogs() throws SQLException;
/*************************************************************************/
/**
* This method returns the list of database table types as a
* ResultSet with one column - TABLE_TYPE - that is the
* name of the table type.
*
* @return A ResultSet with all the requested table types.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getTableTypes() throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the tables columns for
* the requested tables. This is returned in the form of a
* ResultSet with the following columns:
* *
null.
* null.
* Types.
* tableNoNulls,
* tableNullable, or tableNullableUnknown)
* null.
* ResultSet with all the requested tables.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getColumns(String catalog, String schemaPattern, String namePattern,
String columnPattern) throws SQLException;
/*************************************************************************/
/**
* This method returns the access rights that have been granted to the
* requested columns. This information is returned as a ResultSet
* with the following columns:
* *
null.
* null.
* null if unknown.
* null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
* @param columnPattern A pattern of column names to return information for.
*
* @return A ResultSet with all the requested privileges.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getColumnPrivileges(String catalog, String schema, String table,
String columnPattern) throws SQLException;
/*************************************************************************/
/**
* This method returns the access rights that have been granted to the
* requested tables. This information is returned as a ResultSet
* with the following columns:
* *
null.
* null.
* null if unknown.
* null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param tablePattern The table name pattern of tables to return
* information for.
*
* @return A ResultSet with all the requested privileges.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getTablePrivileges(String catalog, String schema, String table)
throws SQLException;
/*************************************************************************/
/**
* This method returns the best set of columns for uniquely identifying
* a row. It returns this information as a ResultSet with
* the following columns:
* *
bestRowTemporary,
* bestRowTransaction, or bestRowSessionCOLUMN_NAME - The name of the column.
* Types.
* bestRowUnknown, bestRowNotPseudo, or
* bestRowPseudo).
* null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
* @param columnPattern A pattern of column names to return information for.
* @param scope One of the best row id scope constants from this class.
* @param nullable true to include columns that are nullable,
* false otherwise.
*
* @return A ResultSet with the best row identifier.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getBestRowIdentifier(String catalog, String schema, String table,
int scope, boolean nullable) throws SQLException;
/*************************************************************************/
/**
* This method returns the set of columns that are automatically updated
* when the row is update. It returns this information as a
* ResultSet with the following columns:
* *
Types.
* versionRowUnknown, versionRowNotPseudo, or
* versionRowPseudo).
* null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
* @param columnPattern A pattern of column names to return information for.
*
* @return A ResultSet with the version columns.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getVersionColumns(String catalog, String schema, String table)
throws SQLException;
/*************************************************************************/
/**
* This method returns a list of a table's primary key columns. These
* are returned as a ResultSet with the following columns.
* *
null.
* null.
* null.
*
* @param catalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
* @param columnPattern A pattern of column names to return information for.
*
* @return A ResultSet with the primary key columns.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getPrimaryKeys(String catalog, String schema, String table)
throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the table's foreign keys. These are
* returned as a ResultSet with the following columns:
* *
importedNoAction, importedKeyCascade,
* importedKeySetNull, importedKeySetDefault, or
* importedKeyRestrict).
* importedNoAction, importedKeyCascade,
* importedKeySetNull, or importedKeySetDefault)
* importedKeyInitiallyDeferred,
* importedKeyInitiallyImmediate, or
* importedKeyNotDeferrable).
*
* @param catalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
*
* @return A ResultSet with the foreign key columns.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getImportedKeys(String catalog, String schema, String table)
throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the table's which use this table's
* primary key as a foreign key. The information is
* returned as a ResultSet with the following columns:
* *
importedNoAction, importedKeyCascade,
* importedKeySetNull, importedKeySetDefault, or
* importedKeyRestrict).
* importedNoAction, importedKeyCascade,
* importedKeySetNull, or importedKeySetDefault)
* importedKeyInitiallyDeferred,
* importedKeyInitiallyImmediate, or
* importedKeyNotDeferrable).
*
* @param catalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
*
* @return A ResultSet with the requested information
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getExportedKeys(String catalog, String schema, String table)
throws SQLException;
/*************************************************************************/
/**
* This method returns a description of how one table imports another
* table's primary key as a foreign key. The information is
* returned as a ResultSet with the following columns:
* *
importedNoAction, importedKeyCascade,
* importedKeySetNull, importedKeySetDefault, or
* importedKeyRestrict).
* importedNoAction, importedKeyCascade,
* importedKeySetNull, or importedKeySetDefault)
* importedKeyInitiallyDeferred,
* importedKeyInitiallyImmediate, or
* importedKeyNotDeferrable).
*
* @param primCatalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs, on the exporting side.
* @param primSchema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema, on the exporting side.
* @param primTable The table name to return information for, on the exporting
* side.
* @param forCatalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs, on the importing side.
* @param forSchema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema on the importing side.
* @param forTable The table name to return information for on the importing
* side.
*
* @return A ResultSet with the requested information
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getCrossReference(String primCatalog, String primSchema, String primTable,
String forCatalog, String forSchema, String forTable)
throws SQLException;
/*************************************************************************/
/**
* This method returns a list of the SQL types supported by this
* database. The information is returned as a ResultSet
* with the following columns:
* *
Types for this
* type.
* null.
* null.
* null.
* typeNoNulls, typeNullable, or
* typeNullableUnknown).
* typePredNone, typePredChar,
* typePredBasic, or typeSearchable).
* ResultSet with the list of available data types.
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getTypeInfo() throws SQLException;
/*************************************************************************/
/**
* This method returns information about a tables indices and statistics.
* It is returned as a ResultSet with the following columns:
* *
null.
* null.
* null
* tableIndexStatistic,
* tableIndexClustered, tableIndexHashed, or
* tableIndexOther).
* tableIndexStatistic.
* null if a sort sequence is not
* supported.
* tableIndexStatistic.
* tableIndexStatistic.
* null.
*
* @param catalog The catalog to retrieve information from, or the empty string
* to return entities not associated with a catalog, or null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param table The table name to return information for.
* @param unique true to return only unique indexes,
* false otherwise.
* @param approx true if data values can be approximations,
* false otherwise.
*
* @return A ResultSet with the requested index information
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getIndexInfo(String catalog, String schema, String table, boolean unique,
boolean approx) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the datbase supports the specified
* result type.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
supportsResultType(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether the specified result set type and result set
* concurrency type are supported by the database.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
* @param concur The desired concurrency type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type is supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
supportsResultSetConcurrency(int type, int concur) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees its
* own updates.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees its own updates,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
ownUpdatesAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees its
* own deletes.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees its own deletes,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
ownDeletesAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees its
* own inserts.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees its own inserts,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
ownInsertsAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees
* updates committed by others.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees other updates,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
othersUpdatesAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees
* deletes committed by others.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees other deletes,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
othersDeletesAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type sees
* inserts committed by others.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type sees other inserts,
* false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
othersInsertsAreVisible(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type can detect
* a visible update by calling the rowUpdated method.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type can detect visible updates
* using rowUpdated, false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
updatesAreDetected(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type can detect
* a visible delete by calling the rowUpdated method.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type can detect visible deletes
* using rowUpdated, false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
deletesAreDetected(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the specified result set type can detect
* a visible insert by calling the rowUpdated method.
*
* @param type The desired result type, which is one of the constants
* defined in ResultSet.
*
* @return true if the result set type can detect visible inserts
* using rowUpdated, false otherwise.
*
* @exception SQLException If an error occurs.
*
* @see ResultSet
*/
public abstract boolean
insertsAreDetected(int type) throws SQLException;
/*************************************************************************/
/**
* This method tests whether or not the database supports batch updates.
*
* @return true if batch updates are supported,
* false otherwise.
*
* @exception SQLException If an error occurs.
*/
public abstract boolean
supportsBatchUpdates() throws SQLException;
/*************************************************************************/
/**
* This method returns the list of user defined data types in use. These
* are returned as a ResultSet with the following columns:
* *
null.
* null.
* Types for this type.
* This will be one of JAVA_OBJECT, STRUCT, or
* DISTINCT.
* null
* to return information from all catalogs.
* @param schema The schema to retrieve information from, or the empty string
* to return entities not associated with a schema.
* @param typePattern The type name pattern to match.
* @param types The type identifer patterns (from Types) to
* match.
*
* @return A ResultSet with the requested type information
*
* @exception SQLException If an error occurs.
*/
public abstract ResultSet
getUDTs(String catalog, String schema, String typePattern, int[] types)
throws SQLException;
/*************************************************************************/
/**
* This method returns the Connection object that was used
* to generate the metadata in this object.
*
* @return The connection for this object.
*
* @exception SQLException If an error occurs.
*/
public abstract Connection
getConnection() throws SQLException;
} // interface DatabaseMetaData