| /* |
| * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0, which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * This Source Code may also be made available under the following Secondary |
| * Licenses when the conditions for such availability set forth in the |
| * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| * version 2 with the GNU Classpath Exception, which is available at |
| * https://www.gnu.org/software/classpath/license.html. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| */ |
| |
| package com.sun.gjc.spi.base; |
| |
| import java.sql.Connection; |
| import java.sql.DatabaseMetaData; |
| import java.sql.ResultSet; |
| import java.sql.SQLException; |
| import java.util.logging.Logger; |
| |
| import com.sun.gjc.util.MethodExecutor; |
| import com.sun.logging.LogDomains; |
| |
| /** |
| * Abstract class for wrapping DatabaseMetaData<br> |
| */ |
| public abstract class DatabaseMetaDataWrapper implements DatabaseMetaData { |
| |
| protected final static Logger _logger = LogDomains.getLogger(MethodExecutor.class, LogDomains.RSR_LOGGER); |
| |
| protected DatabaseMetaData databaseMetaData; |
| protected Connection connection; |
| private MethodExecutor executor; |
| |
| /** |
| * Abstract class for wrapping DatabaseMetaData |
| * |
| * @param con Connection that is wrapped.<br> |
| * @param metaData DatabaseMetaData that is wrapped <br> |
| */ |
| public DatabaseMetaDataWrapper(Connection con, DatabaseMetaData metaData) { |
| connection = con; |
| databaseMetaData = metaData; |
| executor = new MethodExecutor(); |
| } |
| |
| /** |
| * Retrieves whether the current user can call all the procedures returned by |
| * the method <code>getProcedures</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean allProceduresAreCallable() throws SQLException { |
| return databaseMetaData.allProceduresAreCallable(); |
| } |
| |
| /** |
| * Retrieves whether the current user can use all the tables returned by the |
| * method <code>getTables</code> in a <code>SELECT</code> statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean allTablesAreSelectable() throws SQLException { |
| return databaseMetaData.allTablesAreSelectable(); |
| } |
| |
| /** |
| * Retrieves the URL for this DBMS. |
| * |
| * @return the URL for this DBMS or <code>null</code> if it cannot be generated |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getURL() throws SQLException { |
| return databaseMetaData.getURL(); |
| } |
| |
| /** |
| * Retrieves the user name as known to this database. |
| * |
| * @return the database user name |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getUserName() throws SQLException { |
| return databaseMetaData.getUserName(); |
| } |
| |
| /** |
| * Retrieves whether this database is in read-only mode. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean isReadOnly() throws SQLException { |
| return databaseMetaData.isReadOnly(); |
| } |
| |
| /** |
| * Retrieves whether <code>NULL</code> values are sorted high. Sorted high means |
| * that <code>NULL</code> values sort higher than any other value in a domain. |
| * In an ascending order, if this method returns <code>true</code>, |
| * <code>NULL</code> values will appear at the end. By contrast, the method |
| * <code>nullsAreSortedAtEnd</code> indicates whether <code>NULL</code> values |
| * are sorted at the end regardless of sort order. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean nullsAreSortedHigh() throws SQLException { |
| return databaseMetaData.nullsAreSortedHigh(); |
| } |
| |
| /** |
| * Retrieves whether <code>NULL</code> values are sorted low. Sorted low means |
| * that <code>NULL</code> values sort lower than any other value in a domain. In |
| * an ascending order, if this method returns <code>true</code>, |
| * <code>NULL</code> values will appear at the beginning. By contrast, the |
| * method <code>nullsAreSortedAtStart</code> indicates whether <code>NULL</code> |
| * values are sorted at the beginning regardless of sort order. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean nullsAreSortedLow() throws SQLException { |
| return databaseMetaData.nullsAreSortedLow(); |
| } |
| |
| /** |
| * Retrieves whether <code>NULL</code> values are sorted at the start regardless |
| * of sort order. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean nullsAreSortedAtStart() throws SQLException { |
| return databaseMetaData.nullsAreSortedAtStart(); |
| } |
| |
| /** |
| * Retrieves whether <code>NULL</code> values are sorted at the end regardless |
| * of sort order. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean nullsAreSortedAtEnd() throws SQLException { |
| return databaseMetaData.nullsAreSortedAtEnd(); |
| } |
| |
| /** |
| * Retrieves the name of this database product. |
| * |
| * @return database product name |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getDatabaseProductName() throws SQLException { |
| return databaseMetaData.getDatabaseProductName(); |
| } |
| |
| /** |
| * Retrieves the version number of this database product. |
| * |
| * @return database version number |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getDatabaseProductVersion() throws SQLException { |
| return databaseMetaData.getDatabaseProductVersion(); |
| } |
| |
| /** |
| * Retrieves the name of this JDBC driver. |
| * |
| * @return JDBC driver name |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getDriverName() throws SQLException { |
| return databaseMetaData.getDriverName(); |
| } |
| |
| /** |
| * Retrieves the version number of this JDBC driver as a <code>String</code>. |
| * |
| * @return JDBC driver version |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getDriverVersion() throws SQLException { |
| return databaseMetaData.getDriverVersion(); |
| } |
| |
| /** |
| * Retrieves this JDBC driver's major version number. |
| * |
| * @return JDBC driver major version |
| */ |
| public int getDriverMajorVersion() { |
| return databaseMetaData.getDriverMajorVersion(); |
| } |
| |
| /** |
| * Retrieves this JDBC driver's minor version number. |
| * |
| * @return JDBC driver minor version number |
| */ |
| public int getDriverMinorVersion() { |
| return databaseMetaData.getDriverMinorVersion(); |
| } |
| |
| /** |
| * Retrieves whether this database stores tables in a local file. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean usesLocalFiles() throws SQLException { |
| return databaseMetaData.usesLocalFiles(); |
| } |
| |
| /** |
| * Retrieves whether this database uses a file for each table. |
| * |
| * @return <code>true</code> if this database uses a local file for each table; |
| * <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean usesLocalFilePerTable() throws SQLException { |
| return databaseMetaData.usesLocalFilePerTable(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case unquoted SQL identifiers as |
| * case sensitive and as a result stores them in mixed case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsMixedCaseIdentifiers() throws SQLException { |
| return databaseMetaData.supportsMixedCaseIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case unquoted SQL identifiers as |
| * case insensitive and stores them in upper case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesUpperCaseIdentifiers() throws SQLException { |
| return databaseMetaData.storesUpperCaseIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case unquoted SQL identifiers as |
| * case insensitive and stores them in lower case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesLowerCaseIdentifiers() throws SQLException { |
| return databaseMetaData.storesLowerCaseIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case unquoted SQL identifiers as |
| * case insensitive and stores them in mixed case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesMixedCaseIdentifiers() throws SQLException { |
| return databaseMetaData.storesMixedCaseIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case quoted SQL identifiers as |
| * case sensitive and as a result stores them in mixed case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException { |
| return databaseMetaData.supportsMixedCaseQuotedIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case quoted SQL identifiers as |
| * case insensitive and stores them in upper case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesUpperCaseQuotedIdentifiers() throws SQLException { |
| return databaseMetaData.storesUpperCaseQuotedIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case quoted SQL identifiers as |
| * case insensitive and stores them in lower case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesLowerCaseQuotedIdentifiers() throws SQLException { |
| return databaseMetaData.storesLowerCaseQuotedIdentifiers(); |
| } |
| |
| /** |
| * Retrieves whether this database treats mixed case quoted SQL identifiers as |
| * case insensitive and stores them in mixed case. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean storesMixedCaseQuotedIdentifiers() throws SQLException { |
| return databaseMetaData.storesMixedCaseQuotedIdentifiers(); |
| } |
| |
| /** |
| * Retrieves the string used to quote SQL identifiers. This method returns a |
| * space " " if identifier quoting is not supported. |
| * |
| * @return the quoting string or a space if quoting is not supported |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getIdentifierQuoteString() throws SQLException { |
| return databaseMetaData.getIdentifierQuoteString(); |
| } |
| |
| /** |
| * Retrieves a comma-separated list of all of this database's SQL keywords that |
| * are NOT also SQL92 keywords. |
| * |
| * @return the list of this database's keywords that are not also SQL92 keywords |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getSQLKeywords() throws SQLException { |
| return databaseMetaData.getSQLKeywords(); |
| } |
| |
| /** |
| * Retrieves a comma-separated list of math functions available with this |
| * database. These are the Open /Open CLI math function names used in the JDBC |
| * function escape clause. |
| * |
| * @return the list of math functions supported by this database |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getNumericFunctions() throws SQLException { |
| return databaseMetaData.getNumericFunctions(); |
| } |
| |
| /** |
| * Retrieves a comma-separated list of string functions available with this |
| * database. These are the Open Group CLI string function names used in the JDBC |
| * function escape clause. |
| * |
| * @return the list of string functions supported by this database |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getStringFunctions() throws SQLException { |
| return databaseMetaData.getStringFunctions(); |
| } |
| |
| /** |
| * Retrieves a comma-separated list of system functions available with this |
| * database. These are the Open Group CLI system function names used in the JDBC |
| * function escape clause. |
| * |
| * @return a list of system functions supported by this database |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getSystemFunctions() throws SQLException { |
| return databaseMetaData.getSystemFunctions(); |
| } |
| |
| /** |
| * Retrieves a comma-separated list of the time and date functions available |
| * with this database. |
| * |
| * @return the list of time and date functions supported by this database |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getTimeDateFunctions() throws SQLException { |
| return databaseMetaData.getTimeDateFunctions(); |
| } |
| |
| /** |
| * Retrieves the string that can be used to escape wildcard characters. This is |
| * the string that can be used to escape '_' or '%' in the catalog search |
| * parameters that are a pattern (and therefore use one of the wildcard |
| * characters). |
| * <p/> |
| * <P> |
| * The '_' character represents any single character; the '%' character |
| * represents any sequence of zero or more characters. |
| * |
| * @return the string used to escape wildcard characters |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getSearchStringEscape() throws SQLException { |
| return databaseMetaData.getSearchStringEscape(); |
| } |
| |
| /** |
| * Retrieves all the "extra" characters that can be used in unquoted identifier |
| * names (those beyond a-z, A-Z, 0-9 and _). |
| * |
| * @return the string containing the extra characters |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getExtraNameCharacters() throws SQLException { |
| return databaseMetaData.getExtraNameCharacters(); |
| } |
| |
| /** |
| * Retrieves whether this database supports <code>ALTER TABLE</code> with add |
| * column. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsAlterTableWithAddColumn() throws SQLException { |
| return databaseMetaData.supportsAlterTableWithAddColumn(); |
| } |
| |
| /** |
| * Retrieves whether this database supports <code>ALTER TABLE</code> with drop |
| * column. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsAlterTableWithDropColumn() throws SQLException { |
| return databaseMetaData.supportsAlterTableWithDropColumn(); |
| } |
| |
| /** |
| * Retrieves whether this database supports column aliasing. |
| * <p/> |
| * <P> |
| * If so, the SQL AS clause can be used to provide names for computed columns or |
| * to provide alias names for columns as required. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsColumnAliasing() throws SQLException { |
| return databaseMetaData.supportsColumnAliasing(); |
| } |
| |
| /** |
| * Retrieves whether this database supports concatenations between |
| * <code>NULL</code> and non-<code>NULL</code> values being <code>NULL</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean nullPlusNonNullIsNull() throws SQLException { |
| return databaseMetaData.nullPlusNonNullIsNull(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the <code>CONVERT</code> function |
| * between SQL types. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsConvert() throws SQLException { |
| return databaseMetaData.supportsConvert(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the <code>CONVERT</code> for two |
| * given SQL types. |
| * |
| * @param fromType the type to convert from; one of the type codes from the |
| * class <code>java.sql.Types</code> |
| * @param toType the type to convert to; one of the type codes from the class |
| * <code>java.sql.Types</code> |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Types |
| */ |
| public boolean supportsConvert(int fromType, int toType) throws SQLException { |
| return databaseMetaData.supportsConvert(fromType, toType); |
| } |
| |
| /** |
| * Retrieves whether this database supports table correlation names. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsTableCorrelationNames() throws SQLException { |
| return databaseMetaData.supportsTableCorrelationNames(); |
| } |
| |
| /** |
| * Retrieves whether, when table correlation names are supported, they are |
| * restricted to being different from the names of the tables. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsDifferentTableCorrelationNames() throws SQLException { |
| return databaseMetaData.supportsDifferentTableCorrelationNames(); |
| } |
| |
| /** |
| * Retrieves whether this database supports expressions in <code>ORDER BY</code> |
| * lists. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsExpressionsInOrderBy() throws SQLException { |
| return databaseMetaData.supportsExpressionsInOrderBy(); |
| } |
| |
| /** |
| * Retrieves whether this database supports using a column that is not in the |
| * <code>SELECT</code> statement in an <code>ORDER BY</code> clause. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOrderByUnrelated() throws SQLException { |
| return databaseMetaData.supportsOrderByUnrelated(); |
| } |
| |
| /** |
| * Retrieves whether this database supports some form of <code>GROUP BY</code> |
| * clause. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsGroupBy() throws SQLException { |
| return databaseMetaData.supportsGroupBy(); |
| } |
| |
| /** |
| * Retrieves whether this database supports using a column that is not in the |
| * <code>SELECT</code> statement in a <code>GROUP BY</code> clause. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsGroupByUnrelated() throws SQLException { |
| return databaseMetaData.supportsGroupByUnrelated(); |
| } |
| |
| /** |
| * Retrieves whether this database supports using columns not included in the |
| * <code>SELECT</code> statement in a <code>GROUP BY</code> clause provided that |
| * all of the columns in the <code>SELECT</code> statement are included in the |
| * <code>GROUP BY</code> clause. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsGroupByBeyondSelect() throws SQLException { |
| return databaseMetaData.supportsGroupByBeyondSelect(); |
| } |
| |
| /** |
| * Retrieves whether this database supports specifying a <code>LIKE</code> |
| * escape clause. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsLikeEscapeClause() throws SQLException { |
| return databaseMetaData.supportsLikeEscapeClause(); |
| } |
| |
| /** |
| * Retrieves whether this database supports getting multiple |
| * <code>ResultSet</code> objects from a single call to the method |
| * <code>execute</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsMultipleResultSets() throws SQLException { |
| return databaseMetaData.supportsMultipleResultSets(); |
| } |
| |
| /** |
| * Retrieves whether this database allows having multiple transactions open at |
| * once (on different connections). |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsMultipleTransactions() throws SQLException { |
| return databaseMetaData.supportsMultipleTransactions(); |
| } |
| |
| /** |
| * Retrieves whether columns in this database may be defined as non-nullable. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsNonNullableColumns() throws SQLException { |
| return databaseMetaData.supportsNonNullableColumns(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ODBC Minimum SQL grammar. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsMinimumSQLGrammar() throws SQLException { |
| return databaseMetaData.supportsMinimumSQLGrammar(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ODBC Core SQL grammar. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCoreSQLGrammar() throws SQLException { |
| return databaseMetaData.supportsCoreSQLGrammar(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ODBC Extended SQL grammar. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsExtendedSQLGrammar() throws SQLException { |
| return databaseMetaData.supportsExtendedSQLGrammar(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ANSI92 entry level SQL grammar. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsANSI92EntryLevelSQL() throws SQLException { |
| return databaseMetaData.supportsANSI92EntryLevelSQL(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ANSI92 intermediate SQL grammar |
| * supported. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsANSI92IntermediateSQL() throws SQLException { |
| return databaseMetaData.supportsANSI92IntermediateSQL(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the ANSI92 full SQL grammar |
| * supported. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsANSI92FullSQL() throws SQLException { |
| return databaseMetaData.supportsANSI92FullSQL(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the SQL Integrity Enhancement |
| * Facility. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsIntegrityEnhancementFacility() throws SQLException { |
| return databaseMetaData.supportsIntegrityEnhancementFacility(); |
| } |
| |
| /** |
| * Retrieves whether this database supports some form of outer join. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOuterJoins() throws SQLException { |
| return databaseMetaData.supportsOuterJoins(); |
| } |
| |
| /** |
| * Retrieves whether this database supports full nested outer joins. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsFullOuterJoins() throws SQLException { |
| return databaseMetaData.supportsFullOuterJoins(); |
| } |
| |
| /** |
| * Retrieves whether this database provides limited support for outer joins. |
| * (This will be <code>true</code> if the method |
| * <code>supportsFullOuterJoins</code> returns <code>true</code>). |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsLimitedOuterJoins() throws SQLException { |
| return databaseMetaData.supportsLimitedOuterJoins(); |
| } |
| |
| /** |
| * Retrieves the database vendor's preferred term for "schema". |
| * |
| * @return the vendor term for "schema" |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getSchemaTerm() throws SQLException { |
| return databaseMetaData.getSchemaTerm(); |
| } |
| |
| /** |
| * Retrieves the database vendor's preferred term for "procedure". |
| * |
| * @return the vendor term for "procedure" |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getProcedureTerm() throws SQLException { |
| return databaseMetaData.getProcedureTerm(); |
| } |
| |
| /** |
| * Retrieves the database vendor's preferred term for "catalog". |
| * |
| * @return the vendor term for "catalog" |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getCatalogTerm() throws SQLException { |
| return databaseMetaData.getCatalogTerm(); |
| } |
| |
| /** |
| * Retrieves whether a catalog appears at the start of a fully qualified table |
| * name. If not, the catalog appears at the end. |
| * |
| * @return <code>true</code> if the catalog name appears at the beginning of a |
| * fully qualified table name; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean isCatalogAtStart() throws SQLException { |
| return databaseMetaData.isCatalogAtStart(); |
| } |
| |
| /** |
| * Retrieves the <code>String</code> that this database uses as the separator |
| * between a catalog and table name. |
| * |
| * @return the separator string |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public String getCatalogSeparator() throws SQLException { |
| return databaseMetaData.getCatalogSeparator(); |
| } |
| |
| /** |
| * Retrieves whether a schema name can be used in a data manipulation statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSchemasInDataManipulation() throws SQLException { |
| return databaseMetaData.supportsSchemasInDataManipulation(); |
| } |
| |
| /** |
| * Retrieves whether a schema name can be used in a procedure call statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSchemasInProcedureCalls() throws SQLException { |
| return databaseMetaData.supportsSchemasInProcedureCalls(); |
| } |
| |
| /** |
| * Retrieves whether a schema name can be used in a table definition statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSchemasInTableDefinitions() throws SQLException { |
| return databaseMetaData.supportsSchemasInTableDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether a schema name can be used in an index definition statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSchemasInIndexDefinitions() throws SQLException { |
| return databaseMetaData.supportsSchemasInIndexDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether a schema name can be used in a privilege definition |
| * statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException { |
| return databaseMetaData.supportsSchemasInPrivilegeDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether a catalog name can be used in a data manipulation |
| * statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCatalogsInDataManipulation() throws SQLException { |
| return databaseMetaData.supportsCatalogsInDataManipulation(); |
| } |
| |
| /** |
| * Retrieves whether a catalog name can be used in a procedure call statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCatalogsInProcedureCalls() throws SQLException { |
| return databaseMetaData.supportsCatalogsInProcedureCalls(); |
| } |
| |
| /** |
| * Retrieves whether a catalog name can be used in a table definition statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCatalogsInTableDefinitions() throws SQLException { |
| return databaseMetaData.supportsCatalogsInTableDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether a catalog name can be used in an index definition |
| * statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCatalogsInIndexDefinitions() throws SQLException { |
| return databaseMetaData.supportsCatalogsInIndexDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether a catalog name can be used in a privilege definition |
| * statement. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException { |
| return databaseMetaData.supportsCatalogsInPrivilegeDefinitions(); |
| } |
| |
| /** |
| * Retrieves whether this database supports positioned <code>DELETE</code> |
| * statements. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsPositionedDelete() throws SQLException { |
| return databaseMetaData.supportsPositionedDelete(); |
| } |
| |
| /** |
| * Retrieves whether this database supports positioned <code>UPDATE</code> |
| * statements. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsPositionedUpdate() throws SQLException { |
| return databaseMetaData.supportsPositionedUpdate(); |
| } |
| |
| /** |
| * Retrieves whether this database supports <code>SELECT FOR UPDATE</code> |
| * statements. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSelectForUpdate() throws SQLException { |
| return databaseMetaData.supportsSelectForUpdate(); |
| } |
| |
| /** |
| * Retrieves whether this database supports stored procedure calls that use the |
| * stored procedure escape syntax. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsStoredProcedures() throws SQLException { |
| return databaseMetaData.supportsStoredProcedures(); |
| } |
| |
| /** |
| * Retrieves whether this database supports subqueries in comparison |
| * expressions. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSubqueriesInComparisons() throws SQLException { |
| return databaseMetaData.supportsSubqueriesInComparisons(); |
| } |
| |
| /** |
| * Retrieves whether this database supports subqueries in <code>EXISTS</code> |
| * expressions. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSubqueriesInExists() throws SQLException { |
| return databaseMetaData.supportsSubqueriesInExists(); |
| } |
| |
| /** |
| * Retrieves whether this database supports subqueries in <code>IN</code> |
| * statements. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSubqueriesInIns() throws SQLException { |
| return databaseMetaData.supportsSubqueriesInIns(); |
| } |
| |
| /** |
| * Retrieves whether this database supports subqueries in quantified |
| * expressions. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsSubqueriesInQuantifieds() throws SQLException { |
| return databaseMetaData.supportsSubqueriesInQuantifieds(); |
| } |
| |
| /** |
| * Retrieves whether this database supports correlated subqueries. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsCorrelatedSubqueries() throws SQLException { |
| return databaseMetaData.supportsCorrelatedSubqueries(); |
| } |
| |
| /** |
| * Retrieves whether this database supports SQL <code>UNION</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsUnion() throws SQLException { |
| return databaseMetaData.supportsUnion(); |
| } |
| |
| /** |
| * Retrieves whether this database supports SQL <code>UNION ALL</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsUnionAll() throws SQLException { |
| return databaseMetaData.supportsUnionAll(); |
| } |
| |
| /** |
| * Retrieves whether this database supports keeping cursors open across commits. |
| * |
| * @return <code>true</code> if cursors always remain open; <code>false</code> |
| * if they might not remain open |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOpenCursorsAcrossCommit() throws SQLException { |
| return databaseMetaData.supportsOpenCursorsAcrossCommit(); |
| } |
| |
| /** |
| * Retrieves whether this database supports keeping cursors open across |
| * rollbacks. |
| * |
| * @return <code>true</code> if cursors always remain open; <code>false</code> |
| * if they might not remain open |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOpenCursorsAcrossRollback() throws SQLException { |
| return databaseMetaData.supportsOpenCursorsAcrossRollback(); |
| } |
| |
| /** |
| * Retrieves whether this database supports keeping statements open across |
| * commits. |
| * |
| * @return <code>true</code> if statements always remain open; |
| * <code>false</code> if they might not remain open |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOpenStatementsAcrossCommit() throws SQLException { |
| return databaseMetaData.supportsOpenStatementsAcrossCommit(); |
| } |
| |
| /** |
| * Retrieves whether this database supports keeping statements open across |
| * rollbacks. |
| * |
| * @return <code>true</code> if statements always remain open; |
| * <code>false</code> if they might not remain open |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsOpenStatementsAcrossRollback() throws SQLException { |
| return databaseMetaData.supportsOpenStatementsAcrossRollback(); |
| } |
| |
| /** |
| * Retrieves the maximum number of hex characters this database allows in an |
| * inline binary literal. |
| * |
| * @return max the maximum length (in hex characters) for a binary literal; a |
| * result of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxBinaryLiteralLength() throws SQLException { |
| return databaseMetaData.getMaxBinaryLiteralLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters this database allows for a |
| * character literal. |
| * |
| * @return the maximum number of characters allowed for a character literal; a |
| * result of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxCharLiteralLength() throws SQLException { |
| return databaseMetaData.getMaxCharLiteralLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters this database allows for a column |
| * name. |
| * |
| * @return the maximum number of characters allowed for a column name; a result |
| * of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnNameLength() throws SQLException { |
| return databaseMetaData.getMaxColumnNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of columns this database allows in a |
| * <code>GROUP BY</code> clause. |
| * |
| * @return the maximum number of columns allowed; a result of zero means that |
| * there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnsInGroupBy() throws SQLException { |
| return databaseMetaData.getMaxColumnsInGroupBy(); |
| } |
| |
| /** |
| * Retrieves the maximum number of columns this database allows in an index. |
| * |
| * @return the maximum number of columns allowed; a result of zero means that |
| * there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnsInIndex() throws SQLException { |
| return databaseMetaData.getMaxColumnsInIndex(); |
| } |
| |
| /** |
| * Retrieves the maximum number of columns this database allows in an |
| * <code>ORDER BY</code> clause. |
| * |
| * @return the maximum number of columns allowed; a result of zero means that |
| * there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnsInOrderBy() throws SQLException { |
| return databaseMetaData.getMaxColumnsInOrderBy(); |
| } |
| |
| /** |
| * Retrieves the maximum number of columns this database allows in a |
| * <code>SELECT</code> list. |
| * |
| * @return the maximum number of columns allowed; a result of zero means that |
| * there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnsInSelect() throws SQLException { |
| return databaseMetaData.getMaxColumnsInSelect(); |
| } |
| |
| /** |
| * Retrieves the maximum number of columns this database allows in a table. |
| * |
| * @return the maximum number of columns allowed; a result of zero means that |
| * there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxColumnsInTable() throws SQLException { |
| return databaseMetaData.getMaxColumnsInTable(); |
| } |
| |
| /** |
| * Retrieves the maximum number of concurrent connections to this database that |
| * are possible. |
| * |
| * @return the maximum number of active connections possible at one time; a |
| * result of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxConnections() throws SQLException { |
| return databaseMetaData.getMaxConnections(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters that this database allows in a |
| * cursor name. |
| * |
| * @return the maximum number of characters allowed in a cursor name; a result |
| * of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxCursorNameLength() throws SQLException { |
| return databaseMetaData.getMaxCursorNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of bytes this database allows for an index, |
| * including all of the parts of the index. |
| * |
| * @return the maximum number of bytes allowed; this limit 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 java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxIndexLength() throws SQLException { |
| return databaseMetaData.getMaxIndexLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters that this database allows in a |
| * schema name. |
| * |
| * @return the maximum number of characters allowed in a schema name; a result |
| * of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxSchemaNameLength() throws SQLException { |
| return databaseMetaData.getMaxSchemaNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters that this database allows in a |
| * procedure name. |
| * |
| * @return the maximum number of characters allowed in a procedure name; a |
| * result of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxProcedureNameLength() throws SQLException { |
| return databaseMetaData.getMaxProcedureNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters that this database allows in a |
| * catalog name. |
| * |
| * @return the maximum number of characters allowed in a catalog name; a result |
| * of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxCatalogNameLength() throws SQLException { |
| return databaseMetaData.getMaxCatalogNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of bytes this database allows in a single row. |
| * |
| * @return the maximum number of bytes allowed for a row; a result of zero means |
| * that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxRowSize() throws SQLException { |
| return databaseMetaData.getMaxRowSize(); |
| } |
| |
| /** |
| * Retrieves whether the return value for the method <code>getMaxRowSize</code> |
| * includes the SQL data types <code>LONGVARCHAR</code> and |
| * <code>LONGVARBINARY</code>. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean doesMaxRowSizeIncludeBlobs() throws SQLException { |
| return databaseMetaData.doesMaxRowSizeIncludeBlobs(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters this database allows in an SQL |
| * statement. |
| * |
| * @return the maximum number of characters allowed for an SQL statement; a |
| * result of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxStatementLength() throws SQLException { |
| return databaseMetaData.getMaxStatementLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of active statements to this database that can |
| * be open at the same time. |
| * |
| * @return 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 java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxStatements() throws SQLException { |
| return databaseMetaData.getMaxStatements(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters this database allows in a table |
| * name. |
| * |
| * @return the maximum number of characters allowed for a table name; a result |
| * of zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxTableNameLength() throws SQLException { |
| return databaseMetaData.getMaxTableNameLength(); |
| } |
| |
| /** |
| * Retrieves the maximum number of tables this database allows in a |
| * <code>SELECT</code> statement. |
| * |
| * @return the maximum number of tables allowed in a <code>SELECT</code> |
| * statement; a result of zero means that there is no limit or the limit is not |
| * known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxTablesInSelect() throws SQLException { |
| return databaseMetaData.getMaxTablesInSelect(); |
| } |
| |
| /** |
| * Retrieves the maximum number of characters this database allows in a user |
| * name. |
| * |
| * @return the maximum number of characters allowed for a user name; a result of |
| * zero means that there is no limit or the limit is not known |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public int getMaxUserNameLength() throws SQLException { |
| return databaseMetaData.getMaxUserNameLength(); |
| } |
| |
| /** |
| * Retrieves this database's default transaction isolation level. The possible |
| * values are defined in <code>java.sql.Connection</code>. |
| * |
| * @return the default isolation level |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Connection |
| */ |
| public int getDefaultTransactionIsolation() throws SQLException { |
| return databaseMetaData.getDefaultTransactionIsolation(); |
| } |
| |
| /** |
| * Retrieves whether this database supports transactions. If not, invoking the |
| * method <code>commit</code> is a noop, and the isolation level is |
| * <code>TRANSACTION_NONE</code>. |
| * |
| * @return <code>true</code> if transactions are supported; <code>false</code> |
| * otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsTransactions() throws SQLException { |
| return databaseMetaData.supportsTransactions(); |
| } |
| |
| /** |
| * Retrieves whether this database supports the given transaction isolation |
| * level. |
| * |
| * @param level one of the transaction isolation levels defined in |
| * <code>java.sql.Connection</code> |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Connection |
| */ |
| public boolean supportsTransactionIsolationLevel(int level) throws SQLException { |
| return databaseMetaData.supportsTransactionIsolationLevel(level); |
| } |
| |
| /** |
| * Retrieves whether this database supports both data definition and data |
| * manipulation statements within a transaction. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException { |
| return databaseMetaData.supportsDataDefinitionAndDataManipulationTransactions(); |
| } |
| |
| /** |
| * Retrieves whether this database supports only data manipulation statements |
| * within a transaction. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean supportsDataManipulationTransactionsOnly() throws SQLException { |
| return databaseMetaData.supportsDataManipulationTransactionsOnly(); |
| } |
| |
| /** |
| * Retrieves whether a data definition statement within a transaction forces the |
| * transaction to commit. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean dataDefinitionCausesTransactionCommit() throws SQLException { |
| return databaseMetaData.dataDefinitionCausesTransactionCommit(); |
| } |
| |
| /** |
| * Retrieves whether this database ignores a data definition statement within a |
| * transaction. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public boolean dataDefinitionIgnoredInTransactions() throws SQLException { |
| return databaseMetaData.dataDefinitionIgnoredInTransactions(); |
| } |
| |
| /** |
| * Retrieves a description of the stored procedures available in the given |
| * catalog. |
| * <p/> |
| * Only procedure descriptions matching the schema and procedure name criteria |
| * are returned. They are ordered by <code>PROCEDURE_SCHEM</code> and |
| * <code>PROCEDURE_NAME</code>. |
| * <p/> |
| * <P> |
| * Each procedure description has the the following columns: |
| * <OL> |
| * <LI><B>PROCEDURE_CAT</B> String => procedure catalog (may be |
| * <code>null</code>) |
| * <LI><B>PROCEDURE_SCHEM</B> String => procedure schema (may be |
| * <code>null</code>) |
| * <LI><B>PROCEDURE_NAME</B> String => procedure name |
| * <LI>reserved for future use |
| * <LI>reserved for future use |
| * <LI>reserved for future use |
| * <LI><B>REMARKS</B> String => explanatory comment on the procedure |
| * <LI><B>PROCEDURE_TYPE</B> short => kind of procedure: |
| * <UL> |
| * <LI>procedureResultUnknown - May return a result |
| * <LI>procedureNoResult - Does not return a result |
| * <LI>procedureReturnsResult - Returns a result |
| * </UL> |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param procedureNamePattern a procedure name pattern; must match the |
| * procedure name as it is stored in the database |
| * @return <code>ResultSet</code> - each row is a procedure description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) |
| throws SQLException { |
| return databaseMetaData.getProcedures(catalog, schemaPattern, procedureNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of the given catalog's stored procedure parameter and |
| * result columns. |
| * <p/> |
| * <P> |
| * 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. |
| * <p/> |
| * <P> |
| * Each row in the <code>ResultSet</code> is a parameter description or column |
| * description with the following fields: |
| * <OL> |
| * <LI><B>PROCEDURE_CAT</B> String => procedure catalog (may be |
| * <code>null</code>) |
| * <LI><B>PROCEDURE_SCHEM</B> String => procedure schema (may be |
| * <code>null</code>) |
| * <LI><B>PROCEDURE_NAME</B> String => procedure name |
| * <LI><B>COLUMN_NAME</B> String => column/parameter name |
| * <LI><B>COLUMN_TYPE</B> Short => kind of column/parameter: |
| * <UL> |
| * <LI>procedureColumnUnknown - nobody knows |
| * <LI>procedureColumnIn - IN parameter |
| * <LI>procedureColumnInOut - INOUT parameter |
| * <LI>procedureColumnOut - OUT parameter |
| * <LI>procedureColumnReturn - procedure return value |
| * <LI>procedureColumnResult - result column in <code>ResultSet</code> |
| * </UL> |
| * <LI><B>DATA_TYPE</B> int => SQL type from java.sql.Types |
| * <LI><B>TYPE_NAME</B> String => SQL type name, for a UDT type the type name is |
| * fully qualified |
| * <LI><B>PRECISION</B> int => precision |
| * <LI><B>LENGTH</B> int => length in bytes of data |
| * <LI><B>SCALE</B> short => scale |
| * <LI><B>RADIX</B> short => radix |
| * <LI><B>NULLABLE</B> short => can it contain NULL. |
| * <UL> |
| * <LI>procedureNoNulls - does not allow NULL values |
| * <LI>procedureNullable - allows NULL values |
| * <LI>procedureNullableUnknown - nullability unknown |
| * </UL> |
| * <LI><B>REMARKS</B> String => comment describing parameter/column |
| * </OL> |
| * <p/> |
| * <P> |
| * <B>Note:</B> Some databases may not return the column descriptions for a |
| * procedure. Additional columns beyond REMARKS can be defined by the database. |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param procedureNamePattern a procedure name pattern; must match the |
| * procedure name as it is stored in the database |
| * @param columnNamePattern a column name pattern; must match the column name as |
| * it is stored in the database |
| * @return <code>ResultSet</code> - each row describes a stored procedure |
| * parameter or column |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, |
| String columnNamePattern) throws SQLException { |
| return databaseMetaData.getProcedureColumns(catalog, schemaPattern, procedureNamePattern, columnNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of the tables available in the given catalog. Only |
| * table descriptions matching the catalog, schema, table name and type criteria |
| * are returned. They are ordered by TABLE_TYPE, TABLE_SCHEM and TABLE_NAME. |
| * <p/> |
| * Each table description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>TABLE_TYPE</B> String => table type. Typical types are "TABLE", |
| * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", |
| * "SYNONYM". |
| * <LI><B>REMARKS</B> String => explanatory comment on the table |
| * <LI><B>TYPE_CAT</B> String => the types catalog (may be <code>null</code>) |
| * <LI><B>TYPE_SCHEM</B> String => the types schema (may be <code>null</code>) |
| * <LI><B>TYPE_NAME</B> String => type name (may be <code>null</code>) |
| * <LI><B>SELF_REFERENCING_COL_NAME</B> String => name of the designated |
| * "identifier" column of a typed table (may be <code>null</code>) |
| * <LI><B>REF_GENERATION</B> String => specifies how values in |
| * SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", |
| * "DERIVED". (may be <code>null</code>) |
| * </OL> |
| * <p/> |
| * <P> |
| * <B>Note:</B> Some databases may not return information for all tables. |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param tableNamePattern a table name pattern; must match the table name as it |
| * is stored in the database |
| * @param types a list of table types to include; <code>null</code> returns all |
| * types |
| * @return <code>ResultSet</code> - each row is a table description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String types[]) |
| throws SQLException { |
| return databaseMetaData.getTables(catalog, schemaPattern, tableNamePattern, types); |
| } |
| |
| /** |
| * Retrieves the schema names available in this database. The results are |
| * ordered by schema name. |
| * <p/> |
| * <P> |
| * The schema column is: |
| * <OL> |
| * <LI><B>TABLE_SCHEM</B> String => schema name |
| * <LI><B>TABLE_CATALOG</B> String => catalog name (may be <code>null</code>) |
| * </OL> |
| * |
| * @return a <code>ResultSet</code> object in which each row is a schema |
| * decription |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getSchemas() throws SQLException { |
| return databaseMetaData.getSchemas(); |
| } |
| |
| /** |
| * Retrieves the catalog names available in this database. The results are |
| * ordered by catalog name. |
| * <p/> |
| * <P> |
| * The catalog column is: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => catalog name |
| * </OL> |
| * |
| * @return a <code>ResultSet</code> object in which each row has a single |
| * <code>String</code> column that is a catalog name |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getCatalogs() throws SQLException { |
| return databaseMetaData.getCatalogs(); |
| } |
| |
| /** |
| * Retrieves the table types available in this database. The results are ordered |
| * by table type. |
| * <p/> |
| * <P> |
| * The table type is: |
| * <OL> |
| * <LI><B>TABLE_TYPE</B> String => table type. Typical types are "TABLE", |
| * "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", |
| * "SYNONYM". |
| * </OL> |
| * |
| * @return a <code>ResultSet</code> object in which each row has a single |
| * <code>String</code> column that is a table type |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getTableTypes() throws SQLException { |
| return databaseMetaData.getTableTypes(); |
| } |
| |
| /** |
| * Retrieves a description of table columns available in the specified catalog. |
| * <p/> |
| * <P> |
| * Only column descriptions matching the catalog, schema, table and column name |
| * criteria are returned. They are ordered by <code>TABLE_SCHEM</code>, |
| * <code>TABLE_NAME</code>, and <code>ORDINAL_POSITION</code>. |
| * <p/> |
| * <P> |
| * Each column description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>COLUMN_NAME</B> String => column name |
| * <LI><B>DATA_TYPE</B> int => SQL type from java.sql.Types |
| * <LI><B>TYPE_NAME</B> String => Data source dependent type name, for a UDT the |
| * type name is fully qualified |
| * <LI><B>COLUMN_SIZE</B> int => column size. For char or date types this is the |
| * maximum number of characters, for numeric or decimal types this is precision. |
| * <LI><B>BUFFER_LENGTH</B> is not used. |
| * <LI><B>DECIMAL_DIGITS</B> int => the number of fractional digits |
| * <LI><B>NUM_PREC_RADIX</B> int => Radix (typically either 10 or 2) |
| * <LI><B>NULLABLE</B> int => is NULL allowed. |
| * <UL> |
| * <LI>columnNoNulls - might not allow <code>NULL</code> values |
| * <LI>columnNullable - definitely allows <code>NULL</code> values |
| * <LI>columnNullableUnknown - nullability unknown |
| * </UL> |
| * <LI><B>REMARKS</B> String => comment describing column (may be |
| * <code>null</code>) |
| * <LI><B>COLUMN_DEF</B> String => default value (may be <code>null</code>) |
| * <LI><B>SQL_DATA_TYPE</B> int => unused |
| * <LI><B>SQL_DATETIME_SUB</B> int => unused |
| * <LI><B>CHAR_OCTET_LENGTH</B> int => for char types the maximum number of |
| * bytes in the column |
| * <LI><B>ORDINAL_POSITION</B> int => index of column in table (starting at 1) |
| * <LI><B>IS_NULLABLE</B> String => "NO" means column definitely does not allow |
| * NULL values; "YES" means the column might allow NULL values. An empty string |
| * means nobody knows. |
| * <LI><B>SCOPE_CATLOG</B> String => catalog of table that is the scope of a |
| * reference attribute (<code>null</code> if DATA_TYPE isn't REF) |
| * <LI><B>SCOPE_SCHEMA</B> String => schema of table that is the scope of a |
| * reference attribute (<code>null</code> if the DATA_TYPE isn't REF) |
| * <LI><B>SCOPE_TABLE</B> String => table name that this the scope of a |
| * reference attribure (<code>null</code> if the DATA_TYPE isn't REF) |
| * <LI><B>SOURCE_DATA_TYPE</B> short => source type of a distinct type or |
| * user-generated Ref type, SQL type from java.sql.Types (<code>null</code> if |
| * DATA_TYPE isn't DISTINCT or user-generated REF) |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param tableNamePattern a table name pattern; must match the table name as it |
| * is stored in the database |
| * @param columnNamePattern a column name pattern; must match the column name as |
| * it is stored in the database |
| * @return <code>ResultSet</code> - each row is a column description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) |
| throws SQLException { |
| return databaseMetaData.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of the access rights for a table's columns. |
| * <p/> |
| * <P> |
| * Only privileges matching the column name criteria are returned. They are |
| * ordered by COLUMN_NAME and PRIVILEGE. |
| * <p/> |
| * <P> |
| * Each privilige description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>COLUMN_NAME</B> String => column name |
| * <LI><B>GRANTOR</B> => grantor of access (may be <code>null</code>) |
| * <LI><B>GRANTEE</B> String => grantee of access |
| * <LI><B>PRIVILEGE</B> String => name of access (SELECT, INSERT, UPDATE, |
| * REFRENCES, ...) |
| * <LI><B>IS_GRANTABLE</B> String => "YES" if grantee is permitted to grant to |
| * others; "NO" if not; <code>null</code> if unknown |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in the |
| * database |
| * @param columnNamePattern a column name pattern; must match the column name as |
| * it is stored in the database |
| * @return <code>ResultSet</code> - each row is a column privilege description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) |
| throws SQLException { |
| return databaseMetaData.getColumnPrivileges(catalog, schema, table, columnNamePattern); |
| } |
| |
| /** |
| * Retrieves 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 privilege applies to all columns |
| * (this may be true for some systems but is not true for all.) |
| * <p/> |
| * <P> |
| * Only privileges matching the schema and table name criteria are returned. |
| * They are ordered by TABLE_SCHEM, TABLE_NAME, and PRIVILEGE. |
| * <p/> |
| * <P> |
| * Each privilige description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>GRANTOR</B> => grantor of access (may be <code>null</code>) |
| * <LI><B>GRANTEE</B> String => grantee of access |
| * <LI><B>PRIVILEGE</B> String => name of access (SELECT, INSERT, UPDATE, |
| * REFRENCES, ...) |
| * <LI><B>IS_GRANTABLE</B> String => "YES" if grantee is permitted to grant to |
| * others; "NO" if not; <code>null</code> if unknown |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param tableNamePattern a table name pattern; must match the table name as it |
| * is stored in the database |
| * @return <code>ResultSet</code> - each row is a table privilege description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getSearchStringEscape |
| */ |
| public ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) |
| throws SQLException { |
| return databaseMetaData.getTablePrivileges(catalog, schemaPattern, tableNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of a table's optimal set of columns that uniquely |
| * identifies a row. They are ordered by SCOPE. |
| * <p/> |
| * <P> |
| * Each column description has the following columns: |
| * <OL> |
| * <LI><B>SCOPE</B> short => actual scope of result |
| * <UL> |
| * <LI>bestRowTemporary - very temporary, while using row |
| * <LI>bestRowTransaction - valid for remainder of current transaction |
| * <LI>bestRowSession - valid for remainder of current session |
| * </UL> |
| * <LI><B>COLUMN_NAME</B> String => column name |
| * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types |
| * <LI><B>TYPE_NAME</B> String => Data source dependent type name, for a UDT the |
| * type name is fully qualified |
| * <LI><B>COLUMN_SIZE</B> int => precision |
| * <LI><B>BUFFER_LENGTH</B> int => not used |
| * <LI><B>DECIMAL_DIGITS</B> short => scale |
| * <LI><B>PSEUDO_COLUMN</B> short => is this a pseudo column like an Oracle |
| * ROWID |
| * <UL> |
| * <LI>bestRowUnknown - may or may not be pseudo column |
| * <LI>bestRowNotPseudo - is NOT a pseudo column |
| * <LI>bestRowPseudo - is a pseudo column |
| * </UL> |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in the |
| * database |
| * @param scope the scope of interest; use same values as SCOPE |
| * @param nullable include columns that are nullable. |
| * @return <code>ResultSet</code> - each row is a column description |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) |
| throws SQLException { |
| return databaseMetaData.getBestRowIdentifier(catalog, schema, table, scope, nullable); |
| } |
| |
| /** |
| * Retrieves a description of a table's columns that are automatically updated |
| * when any value in a row is updated. They are unordered. |
| * <p/> |
| * <P> |
| * Each column description has the following columns: |
| * <OL> |
| * <LI><B>SCOPE</B> short => is not used |
| * <LI><B>COLUMN_NAME</B> String => column name |
| * <LI><B>DATA_TYPE</B> int => SQL data type from <code>java.sql.Types</code> |
| * <LI><B>TYPE_NAME</B> String => Data source-dependent type name |
| * <LI><B>COLUMN_SIZE</B> int => precision |
| * <LI><B>BUFFER_LENGTH</B> int => length of column value in bytes |
| * <LI><B>DECIMAL_DIGITS</B> short => scale |
| * <LI><B>PSEUDO_COLUMN</B> short => whether this is pseudo column like an |
| * Oracle ROWID |
| * <UL> |
| * <LI>versionColumnUnknown - may or may not be pseudo column |
| * <LI>versionColumnNotPseudo - is NOT a pseudo column |
| * <LI>versionColumnPseudo - is a pseudo column |
| * </UL> |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in the |
| * database |
| * @return a <code>ResultSet</code> object in which each row is a column |
| * description |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getVersionColumns(String catalog, String schema, String table) throws SQLException { |
| return databaseMetaData.getVersionColumns(catalog, schema, table); |
| } |
| |
| /** |
| * Retrieves a description of the given table's primary key columns. They are |
| * ordered by COLUMN_NAME. |
| * <p/> |
| * <P> |
| * Each primary key column description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>COLUMN_NAME</B> String => column name |
| * <LI><B>KEY_SEQ</B> short => sequence number within primary key |
| * <LI><B>PK_NAME</B> String => primary key name (may be <code>null</code>) |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in the |
| * database |
| * @return <code>ResultSet</code> - each row is a primary key column description |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException { |
| return databaseMetaData.getPrimaryKeys(catalog, schema, table); |
| } |
| |
| /** |
| * Retrieves 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. |
| * <p/> |
| * <P> |
| * Each primary key column description has the following columns: |
| * <OL> |
| * <LI><B>PKTABLE_CAT</B> String => primary key table catalog being imported |
| * (may be <code>null</code>) |
| * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema being imported |
| * (may be <code>null</code>) |
| * <LI><B>PKTABLE_NAME</B> String => primary key table name being imported |
| * <LI><B>PKCOLUMN_NAME</B> String => primary key column name being imported |
| * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be |
| * <code>null</code>) |
| * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be |
| * <code>null</code>) |
| * <LI><B>FKTABLE_NAME</B> String => foreign key table name |
| * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name |
| * <LI><B>KEY_SEQ</B> short => sequence number within a foreign key |
| * <LI><B>UPDATE_RULE</B> short => What happens to a foreign key when the |
| * primary key is updated: |
| * <UL> |
| * <LI>importedNoAction - do not allow update of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - change imported key to agree with primary key update |
| * <LI>importedKeySetNull - change imported key to <code>NULL</code> if its |
| * primary key has been updated |
| * <LI>importedKeySetDefault - change imported key to default values if its |
| * primary key has been updated |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * </UL> |
| * <LI><B>DELETE_RULE</B> short => What happens to the foreign key when primary |
| * is deleted. |
| * <UL> |
| * <LI>importedKeyNoAction - do not allow delete of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - delete rows that import a deleted key |
| * <LI>importedKeySetNull - change imported key to NULL if its primary key has |
| * been deleted |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * <LI>importedKeySetDefault - change imported key to default if its primary key |
| * has been deleted |
| * </UL> |
| * <LI><B>FK_NAME</B> String => foreign key name (may be <code>null</code>) |
| * <LI><B>PK_NAME</B> String => primary key name (may be <code>null</code>) |
| * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key |
| * constraints be deferred until commit |
| * <UL> |
| * <LI>importedKeyInitiallyDeferred - see SQL92 for definition |
| * <LI>importedKeyInitiallyImmediate - see SQL92 for definition |
| * <LI>importedKeyNotDeferrable - see SQL92 for definition |
| * </UL> |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in the |
| * database |
| * @return <code>ResultSet</code> - each row is a primary key column description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getExportedKeys |
| */ |
| public ResultSet getImportedKeys(String catalog, String schema, String table) throws SQLException { |
| return databaseMetaData.getImportedKeys(catalog, schema, table); |
| } |
| |
| /** |
| * Retrieves a description of the foreign key columns that reference the given |
| * 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. |
| * <p/> |
| * <P> |
| * Each foreign key column description has the following columns: |
| * <OL> |
| * <LI><B>PKTABLE_CAT</B> String => primary key table catalog (may be |
| * <code>null</code>) |
| * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema (may be |
| * <code>null</code>) |
| * <LI><B>PKTABLE_NAME</B> String => primary key table name |
| * <LI><B>PKCOLUMN_NAME</B> String => primary key column name |
| * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be |
| * <code>null</code>) being exported (may be <code>null</code>) |
| * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be |
| * <code>null</code>) being exported (may be <code>null</code>) |
| * <LI><B>FKTABLE_NAME</B> String => foreign key table name being exported |
| * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name being exported |
| * <LI><B>KEY_SEQ</B> short => sequence number within foreign key |
| * <LI><B>UPDATE_RULE</B> short => What happens to foreign key when primary is |
| * updated: |
| * <UL> |
| * <LI>importedNoAction - do not allow update of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - change imported key to agree with primary key update |
| * <LI>importedKeySetNull - change imported key to <code>NULL</code> if its |
| * primary key has been updated |
| * <LI>importedKeySetDefault - change imported key to default values if its |
| * primary key has been updated |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * </UL> |
| * <LI><B>DELETE_RULE</B> short => What happens to the foreign key when primary |
| * is deleted. |
| * <UL> |
| * <LI>importedKeyNoAction - do not allow delete of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - delete rows that import a deleted key |
| * <LI>importedKeySetNull - change imported key to <code>NULL</code> if its |
| * primary key has been deleted |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * <LI>importedKeySetDefault - change imported key to default if its primary key |
| * has been deleted |
| * </UL> |
| * <LI><B>FK_NAME</B> String => foreign key name (may be <code>null</code>) |
| * <LI><B>PK_NAME</B> String => primary key name (may be <code>null</code>) |
| * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key |
| * constraints be deferred until commit |
| * <UL> |
| * <LI>importedKeyInitiallyDeferred - see SQL92 for definition |
| * <LI>importedKeyInitiallyImmediate - see SQL92 for definition |
| * <LI>importedKeyNotDeferrable - see SQL92 for definition |
| * </UL> |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * this database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * the database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in this |
| * database |
| * @return a <code>ResultSet</code> object in which each row is a foreign key |
| * column description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getImportedKeys |
| */ |
| public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException { |
| return databaseMetaData.getExportedKeys(catalog, schema, table); |
| } |
| |
| /** |
| * Retrieves a description of the foreign key columns in the given foreign key |
| * table that reference the primary key columns of the given primary key table |
| * (describe how one table imports another's key). This should normally return a |
| * single foreign key/primary key pair because most tables import a foreign key |
| * from a table only once. They are ordered by FKTABLE_CAT, FKTABLE_SCHEM, |
| * FKTABLE_NAME, and KEY_SEQ. |
| * <p/> |
| * <P> |
| * Each foreign key column description has the following columns: |
| * <OL> |
| * <LI><B>PKTABLE_CAT</B> String => primary key table catalog (may be |
| * <code>null</code>) |
| * <LI><B>PKTABLE_SCHEM</B> String => primary key table schema (may be |
| * <code>null</code>) |
| * <LI><B>PKTABLE_NAME</B> String => primary key table name |
| * <LI><B>PKCOLUMN_NAME</B> String => primary key column name |
| * <LI><B>FKTABLE_CAT</B> String => foreign key table catalog (may be |
| * <code>null</code>) being exported (may be <code>null</code>) |
| * <LI><B>FKTABLE_SCHEM</B> String => foreign key table schema (may be |
| * <code>null</code>) being exported (may be <code>null</code>) |
| * <LI><B>FKTABLE_NAME</B> String => foreign key table name being exported |
| * <LI><B>FKCOLUMN_NAME</B> String => foreign key column name being exported |
| * <LI><B>KEY_SEQ</B> short => sequence number within foreign key |
| * <LI><B>UPDATE_RULE</B> short => What happens to foreign key when primary is |
| * updated: |
| * <UL> |
| * <LI>importedNoAction - do not allow update of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - change imported key to agree with primary key update |
| * <LI>importedKeySetNull - change imported key to <code>NULL</code> if its |
| * primary key has been updated |
| * <LI>importedKeySetDefault - change imported key to default values if its |
| * primary key has been updated |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * </UL> |
| * <LI><B>DELETE_RULE</B> short => What happens to the foreign key when primary |
| * is deleted. |
| * <UL> |
| * <LI>importedKeyNoAction - do not allow delete of primary key if it has been |
| * imported |
| * <LI>importedKeyCascade - delete rows that import a deleted key |
| * <LI>importedKeySetNull - change imported key to <code>NULL</code> if its |
| * primary key has been deleted |
| * <LI>importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x |
| * compatibility) |
| * <LI>importedKeySetDefault - change imported key to default if its primary key |
| * has been deleted |
| * </UL> |
| * <LI><B>FK_NAME</B> String => foreign key name (may be <code>null</code>) |
| * <LI><B>PK_NAME</B> String => primary key name (may be <code>null</code>) |
| * <LI><B>DEFERRABILITY</B> short => can the evaluation of foreign key |
| * constraints be deferred until commit |
| * <UL> |
| * <LI>importedKeyInitiallyDeferred - see SQL92 for definition |
| * <LI>importedKeyInitiallyImmediate - see SQL92 for definition |
| * <LI>importedKeyNotDeferrable - see SQL92 for definition |
| * </UL> |
| * </OL> |
| * |
| * @param primaryCatalog a catalog name; must match the catalog name as it is |
| * stored in the database; "" retrieves those without a catalog; |
| * <code>null</code> means drop catalog name from the selection criteria |
| * @param primarySchema a schema name; must match the schema name as it is |
| * stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means drop schema name from the selection criteria |
| * @param primaryTable the name of the table that exports the key; must match |
| * the table name as it is stored in the database |
| * @param foreignCatalog a catalog name; must match the catalog name as it is |
| * stored in the database; "" retrieves those without a catalog; |
| * <code>null</code> means drop catalog name from the selection criteria |
| * @param foreignSchema a schema name; must match the schema name as it is |
| * stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means drop schema name from the selection criteria |
| * @param foreignTable the name of the table that imports the key; must match |
| * the table name as it is stored in the database |
| * @return <code>ResultSet</code> - each row is a foreign key column description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see #getImportedKeys |
| */ |
| public ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, |
| String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException { |
| return databaseMetaData.getCrossReference(primaryCatalog, primarySchema, primaryTable, foreignCatalog, |
| foreignSchema, foreignTable); |
| } |
| |
| /** |
| * Retrieves 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. |
| * <p/> |
| * <P> |
| * Each type description has the following columns: |
| * <OL> |
| * <LI><B>TYPE_NAME</B> String => Type name |
| * <LI><B>DATA_TYPE</B> int => SQL data type from java.sql.Types |
| * <LI><B>PRECISION</B> int => maximum precision |
| * <LI><B>LITERAL_PREFIX</B> String => prefix used to quote a literal (may be |
| * <code>null</code>) |
| * <LI><B>LITERAL_SUFFIX</B> String => suffix used to quote a literal (may be |
| * <code>null</code>) |
| * <LI><B>CREATE_PARAMS</B> String => parameters used in creating the type (may |
| * be <code>null</code>) |
| * <LI><B>NULLABLE</B> short => can you use NULL for this type. |
| * <UL> |
| * <LI>typeNoNulls - does not allow NULL values |
| * <LI>typeNullable - allows NULL values |
| * <LI>typeNullableUnknown - nullability unknown |
| * </UL> |
| * <LI><B>CASE_SENSITIVE</B> boolean=> is it case sensitive. |
| * <LI><B>SEARCHABLE</B> short => can you use "WHERE" based on this type: |
| * <UL> |
| * <LI>typePredNone - No support |
| * <LI>typePredChar - Only supported with WHERE .. LIKE |
| * <LI>typePredBasic - Supported except for WHERE .. LIKE |
| * <LI>typeSearchable - Supported for all WHERE .. |
| * </UL> |
| * <LI><B>UNSIGNED_ATTRIBUTE</B> boolean => is it unsigned. |
| * <LI><B>FIXED_PREC_SCALE</B> boolean => can it be a money value. |
| * <LI><B>AUTO_INCREMENT</B> boolean => can it be used for an auto-increment |
| * value. |
| * <LI><B>LOCAL_TYPE_NAME</B> String => localized version of type name (may be |
| * <code>null</code>) |
| * <LI><B>MINIMUM_SCALE</B> short => minimum scale supported |
| * <LI><B>MAXIMUM_SCALE</B> short => maximum scale supported |
| * <LI><B>SQL_DATA_TYPE</B> int => unused |
| * <LI><B>SQL_DATETIME_SUB</B> int => unused |
| * <LI><B>NUM_PREC_RADIX</B> int => usually 2 or 10 |
| * </OL> |
| * |
| * @return a <code>ResultSet</code> object in which each row is an SQL type |
| * description |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getTypeInfo() throws SQLException { |
| return databaseMetaData.getTypeInfo(); |
| } |
| |
| /** |
| * Retrieves a description of the given table's indices and statistics. They are |
| * ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION. |
| * <p/> |
| * <P> |
| * Each index column description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => table catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => table schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => table name |
| * <LI><B>NON_UNIQUE</B> boolean => Can index values be non-unique. false when |
| * TYPE is tableIndexStatistic |
| * <LI><B>INDEX_QUALIFIER</B> String => index catalog (may be |
| * <code>null</code>); <code>null</code> when TYPE is tableIndexStatistic |
| * <LI><B>INDEX_NAME</B> String => index name; <code>null</code> when TYPE is |
| * tableIndexStatistic |
| * <LI><B>TYPE</B> short => index type: |
| * <UL> |
| * <LI>tableIndexStatistic - this identifies table statistics that are returned |
| * in conjuction with a table's index descriptions |
| * <LI>tableIndexClustered - this is a clustered index |
| * <LI>tableIndexHashed - this is a hashed index |
| * <LI>tableIndexOther - this is some other style of index |
| * </UL> |
| * <LI><B>ORDINAL_POSITION</B> short => column sequence number within index; |
| * zero when TYPE is tableIndexStatistic |
| * <LI><B>COLUMN_NAME</B> String => column name; <code>null</code> when TYPE is |
| * tableIndexStatistic |
| * <LI><B>ASC_OR_DESC</B> String => column sort sequence, "A" => ascending, "D" |
| * => descending, may be <code>null</code> if sort sequence is not supported; |
| * <code>null</code> when TYPE is tableIndexStatistic |
| * <LI><B>CARDINALITY</B> int => When TYPE is tableIndexStatistic, then this is |
| * the number of rows in the table; otherwise, it is the number of unique values |
| * in the index. |
| * <LI><B>PAGES</B> int => When TYPE is tableIndexStatisic then this is the |
| * number of pages used for the table, otherwise it is the number of pages used |
| * for the current index. |
| * <LI><B>FILTER_CONDITION</B> String => Filter condition, if any. (may be |
| * <code>null</code>) |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * this database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schema a schema name; must match the schema name as it is stored in |
| * this database; "" retrieves those without a schema; <code>null</code> means |
| * that the schema name should not be used to narrow the search |
| * @param table a table name; must match the table name as it is stored in this |
| * database |
| * @param unique when true, return only indices for unique values; when false, |
| * return indices regardless of whether unique or not |
| * @param approximate when true, result is allowed to reflect approximate or out |
| * of data values; when false, results are requested to be accurate |
| * @return <code>ResultSet</code> - each row is an index column description |
| * @throws java.sql.SQLException if a database access error occurs |
| */ |
| public ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) |
| throws SQLException { |
| return databaseMetaData.getIndexInfo(catalog, schema, table, unique, approximate); |
| } |
| |
| /** |
| * Retrieves whether this database supports the given result set type. |
| * |
| * @param type defined in <code>java.sql.ResultSet</code> |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Connection |
| * @since 1.2 |
| */ |
| public boolean supportsResultSetType(int type) throws SQLException { |
| return databaseMetaData.supportsResultSetType(type); |
| } |
| |
| /** |
| * Retrieves whether this database supports the given concurrency type in |
| * combination with the given result set type. |
| * |
| * @param type defined in <code>java.sql.ResultSet</code> |
| * @param concurrency type defined in <code>java.sql.ResultSet</code> |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Connection |
| * @since 1.2 |
| */ |
| public boolean supportsResultSetConcurrency(int type, int concurrency) throws SQLException { |
| return databaseMetaData.supportsResultSetConcurrency(type, concurrency); |
| } |
| |
| /** |
| * Retrieves whether for the given type of <code>ResultSet</code> object, the |
| * result set's own updates are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if updates are visible for the given result set |
| * type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean ownUpdatesAreVisible(int type) throws SQLException { |
| return databaseMetaData.ownUpdatesAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether a result set's own deletes are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if deletes are visible for the given result set |
| * type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean ownDeletesAreVisible(int type) throws SQLException { |
| return databaseMetaData.ownDeletesAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether a result set's own inserts are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if inserts are visible for the given result set |
| * type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean ownInsertsAreVisible(int type) throws SQLException { |
| return databaseMetaData.ownInsertsAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether updates made by others are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if updates made by others are visible for the given |
| * result set type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean othersUpdatesAreVisible(int type) throws SQLException { |
| return databaseMetaData.othersUpdatesAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether deletes made by others are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if deletes made by others are visible for the given |
| * result set type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean othersDeletesAreVisible(int type) throws SQLException { |
| return databaseMetaData.othersDeletesAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether inserts made by others are visible. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if inserts made by others are visible for the given |
| * result set type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean othersInsertsAreVisible(int type) throws SQLException { |
| return databaseMetaData.othersInsertsAreVisible(type); |
| } |
| |
| /** |
| * Retrieves whether or not a visible row update can be detected by calling the |
| * method <code>ResultSet.rowUpdated</code>. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if changes are detected by the result set type; |
| * <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean updatesAreDetected(int type) throws SQLException { |
| return databaseMetaData.updatesAreDetected(type); |
| } |
| |
| /** |
| * Retrieves whether or not a visible row delete can be detected by calling the |
| * method <code>ResultSet.rowDeleted</code>. If the method |
| * <code>deletesAreDetected</code> returns <code>false</code>, it means that |
| * deleted rows are removed from the result set. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if deletes are detected by the given result set |
| * type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean deletesAreDetected(int type) throws SQLException { |
| return databaseMetaData.deletesAreDetected(type); |
| } |
| |
| /** |
| * Retrieves whether or not a visible row insert can be detected by calling the |
| * method <code>ResultSet.rowInserted</code>. |
| * |
| * @param type the <code>ResultSet</code> type; one of |
| * <code>ResultSet.TYPE_FORWARD_ONLY</code>, |
| * <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or |
| * <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> |
| * @return <code>true</code> if changes are detected by the specified result set |
| * type; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean insertsAreDetected(int type) throws SQLException { |
| return databaseMetaData.insertsAreDetected(type); |
| } |
| |
| /** |
| * Retrieves whether this database supports batch updates. |
| * |
| * @return <code>true</code> if this database supports batch upcates; |
| * <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public boolean supportsBatchUpdates() throws SQLException { |
| return databaseMetaData.supportsBatchUpdates(); |
| } |
| |
| /** |
| * Retrieves a description of the user-defined types (UDTs) defined in a |
| * particular schema. Schema-specific UDTs may have type |
| * <code>JAVA_OBJECT</code>, <code>STRUCT</code>, or <code>DISTINCT</code>. |
| * <p/> |
| * <P> |
| * Only types matching the catalog, schema, type name and type criteria are |
| * returned. They are ordered by DATA_TYPE, TYPE_SCHEM and TYPE_NAME. The type |
| * name parameter may be a fully-qualified name. In this case, the catalog and |
| * schemaPattern parameters are ignored. |
| * <p/> |
| * <P> |
| * Each type description has the following columns: |
| * <OL> |
| * <LI><B>TYPE_CAT</B> String => the type's catalog (may be <code>null</code>) |
| * <LI><B>TYPE_SCHEM</B> String => type's schema (may be <code>null</code>) |
| * <LI><B>TYPE_NAME</B> String => type name |
| * <LI><B>CLASS_NAME</B> String => Java class name |
| * <LI><B>DATA_TYPE</B> int => type value defined in java.sql.Types. One of |
| * JAVA_OBJECT, STRUCT, or DISTINCT |
| * <LI><B>REMARKS</B> String => explanatory comment on the type |
| * <LI><B>BASE_TYPE</B> short => type code of the source type of a DISTINCT type |
| * or the type that implements the user-generated reference type of the |
| * SELF_REFERENCING_COLUMN of a structured type as defined in java.sql.Types |
| * (<code>null</code> if DATA_TYPE is not DISTINCT or not STRUCT with |
| * REFERENCE_GENERATION = USER_DEFINED) |
| * </OL> |
| * <p/> |
| * <P> |
| * <B>Note:</B> If the driver does not support UDTs, an empty result set is |
| * returned. |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema pattern name; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param typeNamePattern a type name pattern; must match the type name as it is |
| * stored in the database; may be a fully qualified name |
| * @param types a list of user-defined types (JAVA_OBJECT, STRUCT, or DISTINCT) |
| * to include; <code>null</code> returns all types |
| * @return <code>ResultSet</code> object in which each row describes a UDT |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) |
| throws SQLException { |
| return databaseMetaData.getUDTs(catalog, schemaPattern, typeNamePattern, types); |
| } |
| |
| /** |
| * Retrieves the connection that produced this metadata object. |
| * <p/> |
| * |
| * @return the connection that produced this metadata object |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.2 |
| */ |
| public Connection getConnection() throws SQLException { |
| return connection; |
| } |
| |
| /** |
| * Returns the actual connection that produced this metadata object<br> |
| * |
| * @return Connection |
| * @throws SQLException |
| */ |
| public Connection getActualConnection() throws SQLException { |
| return databaseMetaData.getConnection(); |
| } |
| |
| /** |
| * Retrieves whether this database supports savepoints. |
| * |
| * @return <code>true</code> if savepoints are supported; <code>false</code> |
| * otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public boolean supportsSavepoints() throws SQLException { |
| return databaseMetaData.supportsSavepoints(); |
| } |
| |
| /** |
| * Retrieves whether this database supports named parameters to callable |
| * statements. |
| * |
| * @return <code>true</code> if named parameters are supported; |
| * <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public boolean supportsNamedParameters() throws SQLException { |
| return databaseMetaData.supportsNamedParameters(); |
| } |
| |
| /** |
| * Retrieves whether it is possible to have multiple <code>ResultSet</code> |
| * objects returned from a <code>CallableStatement</code> object simultaneously. |
| * |
| * @return <code>true</code> if a <code>CallableStatement</code> object can |
| * return multiple <code>ResultSet</code> objects simultaneously; |
| * <code>false</code> otherwise |
| * @throws java.sql.SQLException if a datanase access error occurs |
| * @since 1.4 |
| */ |
| public boolean supportsMultipleOpenResults() throws SQLException { |
| return databaseMetaData.supportsMultipleOpenResults(); |
| } |
| |
| /** |
| * Retrieves whether auto-generated keys can be retrieved after a statement has |
| * been executed. |
| * |
| * @return <code>true</code> if auto-generated keys can be retrieved after a |
| * statement has executed; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public boolean supportsGetGeneratedKeys() throws SQLException { |
| return databaseMetaData.supportsGetGeneratedKeys(); |
| } |
| |
| /** |
| * Retrieves a description of the user-defined type (UDT) hierarchies defined in |
| * a particular schema in this database. Only the immediate super type/ sub type |
| * relationship is modeled. |
| * <p/> |
| * Only supertype information for UDTs matching the catalog, schema, and type |
| * name is returned. The type name parameter may be a fully-qualified name. When |
| * the UDT name supplied is a fully-qualified name, the catalog and |
| * schemaPattern parameters are ignored. |
| * <p/> |
| * If a UDT does not have a direct super type, it is not listed here. A row of |
| * the <code>ResultSet</code> object returned by this method describes the |
| * designated UDT and a direct supertype. A row has the following columns: |
| * <OL> |
| * <LI><B>TYPE_CAT</B> String => the UDT's catalog (may be <code>null</code>) |
| * <LI><B>TYPE_SCHEM</B> String => UDT's schema (may be <code>null</code>) |
| * <LI><B>TYPE_NAME</B> String => type name of the UDT |
| * <LI><B>SUPERTYPE_CAT</B> String => the direct super type's catalog (may be |
| * <code>null</code>) |
| * <LI><B>SUPERTYPE_SCHEM</B> String => the direct super type's schema (may be |
| * <code>null</code>) |
| * <LI><B>SUPERTYPE_NAME</B> String => the direct super type's name |
| * </OL> |
| * <p/> |
| * <P> |
| * <B>Note:</B> If the driver does not support type hierarchies, an empty result |
| * set is returned. |
| * |
| * @param catalog a catalog name; "" retrieves those without a catalog; |
| * <code>null</code> means drop catalog name from the selection criteria |
| * @param schemaPattern a schema name pattern; "" retrieves those without a |
| * schema |
| * @param typeNamePattern a UDT name pattern; may be a fully-qualified name |
| * @return a <code>ResultSet</code> object in which a row gives information |
| * about the designated UDT |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public ResultSet getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) throws SQLException { |
| return databaseMetaData.getSuperTypes(catalog, schemaPattern, typeNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of the table hierarchies defined in a particular |
| * schema in this database. |
| * <p/> |
| * <P> |
| * Only supertable information for tables matching the catalog, schema and table |
| * name are returned. The table name parameter may be a fully- qualified name, |
| * in which case, the catalog and schemaPattern parameters are ignored. If a |
| * table does not have a super table, it is not listed here. Supertables have to |
| * be defined in the same catalog and schema as the sub tables. Therefore, the |
| * type description does not need to include this information for the |
| * supertable. |
| * <p/> |
| * <P> |
| * Each type description has the following columns: |
| * <OL> |
| * <LI><B>TABLE_CAT</B> String => the type's catalog (may be <code>null</code>) |
| * <LI><B>TABLE_SCHEM</B> String => type's schema (may be <code>null</code>) |
| * <LI><B>TABLE_NAME</B> String => type name |
| * <LI><B>SUPERTABLE_NAME</B> String => the direct super type's name |
| * </OL> |
| * <p/> |
| * <P> |
| * <B>Note:</B> If the driver does not support type hierarchies, an empty result |
| * set is returned. |
| * |
| * @param catalog a catalog name; "" retrieves those without a catalog; |
| * <code>null</code> means drop catalog name from the selection criteria |
| * @param schemaPattern a schema name pattern; "" retrieves those without a |
| * schema |
| * @param tableNamePattern a table name pattern; may be a fully-qualified name |
| * @return a <code>ResultSet</code> object in which each row is a type |
| * description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern) throws SQLException { |
| return databaseMetaData.getSuperTables(catalog, schemaPattern, tableNamePattern); |
| } |
| |
| /** |
| * Retrieves a description of the given attribute of the given type for a |
| * user-defined type (UDT) that is available in the given schema and catalog. |
| * <p/> |
| * Descriptions are returned only for attributes of UDTs matching the catalog, |
| * schema, type, and attribute name criteria. They are ordered by TYPE_SCHEM, |
| * TYPE_NAME and ORDINAL_POSITION. This description does not contain inherited |
| * attributes. |
| * <p/> |
| * The <code>ResultSet</code> object that is returned has the following columns: |
| * <OL> |
| * <LI><B>TYPE_CAT</B> String => type catalog (may be <code>null</code>) |
| * <LI><B>TYPE_SCHEM</B> String => type schema (may be <code>null</code>) |
| * <LI><B>TYPE_NAME</B> String => type name |
| * <LI><B>ATTR_NAME</B> String => attribute name |
| * <LI><B>DATA_TYPE</B> int => attribute type SQL type from java.sql.Types |
| * <LI><B>ATTR_TYPE_NAME</B> String => Data source dependent type name. For a |
| * UDT, the type name is fully qualified. For a REF, the type name is fully |
| * qualified and represents the target type of the reference type. |
| * <LI><B>ATTR_SIZE</B> int => column size. For char or date types this is the |
| * maximum number of characters; for numeric or decimal types this is precision. |
| * <LI><B>DECIMAL_DIGITS</B> int => the number of fractional digits |
| * <LI><B>NUM_PREC_RADIX</B> int => Radix (typically either 10 or 2) |
| * <LI><B>NULLABLE</B> int => whether NULL is allowed |
| * <UL> |
| * <LI>attributeNoNulls - might not allow NULL values |
| * <LI>attributeNullable - definitely allows NULL values |
| * <LI>attributeNullableUnknown - nullability unknown |
| * </UL> |
| * <LI><B>REMARKS</B> String => comment describing column (may be |
| * <code>null</code>) |
| * <LI><B>ATTR_DEF</B> String => default value (may be <code>null</code>) |
| * <LI><B>SQL_DATA_TYPE</B> int => unused |
| * <LI><B>SQL_DATETIME_SUB</B> int => unused |
| * <LI><B>CHAR_OCTET_LENGTH</B> int => for char types the maximum number of |
| * bytes in the column |
| * <LI><B>ORDINAL_POSITION</B> int => index of column in table (starting at 1) |
| * <LI><B>IS_NULLABLE</B> String => "NO" means column definitely does not allow |
| * NULL values; "YES" means the column might allow NULL values. An empty string |
| * means unknown. |
| * <LI><B>SCOPE_CATALOG</B> String => catalog of table that is the scope of a |
| * reference attribute (<code>null</code> if DATA_TYPE isn't REF) |
| * <LI><B>SCOPE_SCHEMA</B> String => schema of table that is the scope of a |
| * reference attribute (<code>null</code> if DATA_TYPE isn't REF) |
| * <LI><B>SCOPE_TABLE</B> String => table name that is the scope of a reference |
| * attribute (<code>null</code> if the DATA_TYPE isn't REF) |
| * <LI><B>SOURCE_DATA_TYPE</B> short => source type of a distinct type or |
| * user-generated Ref type,SQL type from java.sql.Types (<code>null</code> if |
| * DATA_TYPE isn't DISTINCT or user-generated REF) |
| * </OL> |
| * |
| * @param catalog a catalog name; must match the catalog name as it is stored in |
| * the database; "" retrieves those without a catalog; <code>null</code> means |
| * that the catalog name should not be used to narrow the search |
| * @param schemaPattern a schema name pattern; must match the schema name as it |
| * is stored in the database; "" retrieves those without a schema; |
| * <code>null</code> means that the schema name should not be used to narrow the |
| * search |
| * @param typeNamePattern a type name pattern; must match the type name as it is |
| * stored in the database |
| * @param attributeNamePattern an attribute name pattern; must match the |
| * attribute name as it is declared in the database |
| * @return a <code>ResultSet</code> object in which each row is an attribute |
| * description |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public ResultSet getAttributes(String catalog, String schemaPattern, String typeNamePattern, |
| String attributeNamePattern) throws SQLException { |
| return databaseMetaData.getAttributes(catalog, schemaPattern, typeNamePattern, attributeNamePattern); |
| } |
| |
| /** |
| * Retrieves whether this database supports the given result set holdability. |
| * |
| * @param holdability one of the following constants: |
| * <code>ResultSet.HOLD_CURSORS_OVER_COMMIT</code> or |
| * <code>ResultSet.CLOSE_CURSORS_AT_COMMIT<code> |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws java.sql.SQLException if a database access error occurs |
| * @see java.sql.Connection |
| * @since 1.4 |
| */ |
| public boolean supportsResultSetHoldability(int holdability) throws SQLException { |
| return databaseMetaData.supportsResultSetHoldability(holdability); |
| } |
| |
| /** |
| * Retrieves the default holdability of this <code>ResultSet</code> object. |
| * |
| * @return the default holdability; either |
| * <code>ResultSet.HOLD_CURSORS_OVER_COMMIT</code> or |
| * <code>ResultSet.CLOSE_CURSORS_AT_COMMIT</code> |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getResultSetHoldability() throws SQLException { |
| return databaseMetaData.getResultSetHoldability(); |
| } |
| |
| /** |
| * Retrieves the major version number of the underlying database. |
| * |
| * @return the underlying database's major version |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getDatabaseMajorVersion() throws SQLException { |
| return databaseMetaData.getDatabaseMajorVersion(); |
| } |
| |
| /** |
| * Retrieves the minor version number of the underlying database. |
| * |
| * @return underlying database's minor version |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getDatabaseMinorVersion() throws SQLException { |
| return databaseMetaData.getDatabaseMinorVersion(); |
| } |
| |
| /** |
| * Retrieves the major JDBC version number for this driver. |
| * |
| * @return JDBC version major number |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getJDBCMajorVersion() throws SQLException { |
| return databaseMetaData.getJDBCMajorVersion(); |
| } |
| |
| /** |
| * Retrieves the minor JDBC version number for this driver. |
| * |
| * @return JDBC version minor number |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getJDBCMinorVersion() throws SQLException { |
| return databaseMetaData.getJDBCMinorVersion(); |
| } |
| |
| /** |
| * Indicates whether the SQLSTATE returned by |
| * <code>SQLException.getSQLState</code> is X/Open (now known as Open Group) SQL |
| * CLI or SQL99. |
| * |
| * @return the type of SQLSTATE; one of: sqlStateXOpen or sqlStateSQL99 |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public int getSQLStateType() throws SQLException { |
| return databaseMetaData.getSQLStateType(); |
| } |
| |
| /** |
| * Indicates whether updates made to a LOB are made on a copy or directly to the |
| * LOB. |
| * |
| * @return <code>true</code> if updates are made to a copy of the LOB; |
| * <code>false</code> if updates are made directly to the LOB |
| * @throws java.sql.SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public boolean locatorsUpdateCopy() throws SQLException { |
| return databaseMetaData.locatorsUpdateCopy(); |
| } |
| |
| /** |
| * Retrieves whether this database supports statement pooling. |
| * |
| * @return <code>true</code> if so; <code>false</code> otherwise |
| * @throws SQLException if a database access error occurs |
| * @since 1.4 |
| */ |
| public boolean supportsStatementPooling() throws SQLException { |
| return databaseMetaData.supportsStatementPooling(); |
| } |
| |
| protected MethodExecutor getMethodExecutor() { |
| return executor; |
| } |
| } |