/* * Copyright 2007-2010 Brian S O'Neill * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.cojen.dirmi.jdbc; import java.rmi.Remote; import java.sql.RowIdLifetime; import java.sql.SQLException; import org.cojen.dirmi.RemoteFailure; /** * * * @author Brian S O'Neill */ @RemoteFailure(exception=SQLException.class) public interface RemoteDatabaseMetaData extends Remote { boolean allProceduresAreCallable() throws SQLException; boolean allTablesAreSelectable() throws SQLException; String getURL() throws SQLException; String getUserName() throws SQLException; boolean isReadOnly() throws SQLException; boolean nullsAreSortedHigh() throws SQLException; boolean nullsAreSortedLow() throws SQLException; boolean nullsAreSortedAtStart() throws SQLException; boolean nullsAreSortedAtEnd() throws SQLException; String getDatabaseProductName() throws SQLException; String getDatabaseProductVersion() throws SQLException; String getDriverName() throws SQLException; String getDriverVersion() throws SQLException; boolean usesLocalFiles() throws SQLException; boolean usesLocalFilePerTable() throws SQLException; boolean supportsMixedCaseIdentifiers() throws SQLException; boolean storesUpperCaseIdentifiers() throws SQLException; boolean storesLowerCaseIdentifiers() throws SQLException; boolean storesMixedCaseIdentifiers() throws SQLException; boolean supportsMixedCaseQuotedIdentifiers() throws SQLException; boolean storesUpperCaseQuotedIdentifiers() throws SQLException; boolean storesLowerCaseQuotedIdentifiers() throws SQLException; boolean storesMixedCaseQuotedIdentifiers() throws SQLException; String getIdentifierQuoteString() throws SQLException; String getSQLKeywords() throws SQLException; String getNumericFunctions() throws SQLException; String getStringFunctions() throws SQLException; String getSystemFunctions() throws SQLException; String getTimeDateFunctions() throws SQLException; String getSearchStringEscape() throws SQLException; String getExtraNameCharacters() throws SQLException; boolean supportsAlterTableWithAddColumn() throws SQLException; boolean supportsAlterTableWithDropColumn() throws SQLException; boolean supportsColumnAliasing() throws SQLException; boolean nullPlusNonNullIsNull() throws SQLException; boolean supportsConvert() throws SQLException; boolean supportsConvert(int fromType, int toType) throws SQLException; boolean supportsTableCorrelationNames() throws SQLException; boolean supportsDifferentTableCorrelationNames() throws SQLException; boolean supportsExpressionsInOrderBy() throws SQLException; boolean supportsOrderByUnrelated() throws SQLException; boolean supportsGroupBy() throws SQLException; boolean supportsGroupByUnrelated() throws SQLException; boolean supportsGroupByBeyondSelect() throws SQLException; boolean supportsLikeEscapeClause() throws SQLException; boolean supportsMultipleResultSets() throws SQLException; boolean supportsMultipleTransactions() throws SQLException; boolean supportsNonNullableColumns() throws SQLException; boolean supportsMinimumSQLGrammar() throws SQLException; boolean supportsCoreSQLGrammar() throws SQLException; boolean supportsExtendedSQLGrammar() throws SQLException; boolean supportsANSI92EntryLevelSQL() throws SQLException; boolean supportsANSI92IntermediateSQL() throws SQLException; boolean supportsANSI92FullSQL() throws SQLException; boolean supportsIntegrityEnhancementFacility() throws SQLException; boolean supportsOuterJoins() throws SQLException; boolean supportsFullOuterJoins() throws SQLException; boolean supportsLimitedOuterJoins() throws SQLException; String getSchemaTerm() throws SQLException; String getProcedureTerm() throws SQLException; String getCatalogTerm() throws SQLException; boolean isCatalogAtStart() throws SQLException; String getCatalogSeparator() throws SQLException; boolean supportsSchemasInDataManipulation() throws SQLException; boolean supportsSchemasInProcedureCalls() throws SQLException; boolean supportsSchemasInTableDefinitions() throws SQLException; boolean supportsSchemasInIndexDefinitions() throws SQLException; boolean supportsSchemasInPrivilegeDefinitions() throws SQLException; boolean supportsCatalogsInDataManipulation() throws SQLException; boolean supportsCatalogsInProcedureCalls() throws SQLException; boolean supportsCatalogsInTableDefinitions() throws SQLException; boolean supportsCatalogsInIndexDefinitions() throws SQLException; boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException; boolean supportsPositionedDelete() throws SQLException; boolean supportsPositionedUpdate() throws SQLException; boolean supportsSelectForUpdate() throws SQLException; boolean supportsStoredProcedures() throws SQLException; boolean supportsSubqueriesInComparisons() throws SQLException; boolean supportsSubqueriesInExists() throws SQLException; boolean supportsSubqueriesInIns() throws SQLException; boolean supportsSubqueriesInQuantifieds() throws SQLException; boolean supportsCorrelatedSubqueries() throws SQLException; boolean supportsUnion() throws SQLException; boolean supportsUnionAll() throws SQLException; boolean supportsOpenCursorsAcrossCommit() throws SQLException; boolean supportsOpenCursorsAcrossRollback() throws SQLException; boolean supportsOpenStatementsAcrossCommit() throws SQLException; boolean supportsOpenStatementsAcrossRollback() throws SQLException; int getMaxBinaryLiteralLength() throws SQLException; int getMaxCharLiteralLength() throws SQLException; int getMaxColumnNameLength() throws SQLException; int getMaxColumnsInGroupBy() throws SQLException; int getMaxColumnsInIndex() throws SQLException; int getMaxColumnsInOrderBy() throws SQLException; int getMaxColumnsInSelect() throws SQLException; int getMaxColumnsInTable() throws SQLException; int getMaxConnections() throws SQLException; int getMaxCursorNameLength() throws SQLException; int getMaxIndexLength() throws SQLException; int getMaxSchemaNameLength() throws SQLException; int getMaxProcedureNameLength() throws SQLException; int getMaxCatalogNameLength() throws SQLException; int getMaxRowSize() throws SQLException; boolean doesMaxRowSizeIncludeBlobs() throws SQLException; int getMaxStatementLength() throws SQLException; int getMaxStatements() throws SQLException; int getMaxTableNameLength() throws SQLException; int getMaxTablesInSelect() throws SQLException; int getMaxUserNameLength() throws SQLException; int getDefaultTransactionIsolation() throws SQLException; boolean supportsTransactions() throws SQLException; boolean supportsTransactionIsolationLevel(int level) throws SQLException; boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException; boolean supportsDataManipulationTransactionsOnly() throws SQLException; boolean dataDefinitionCausesTransactionCommit() throws SQLException; boolean dataDefinitionIgnoredInTransactions() throws SQLException; ResultSetTransport getProcedures(String catalog, String schemaPattern, String procedureNamePattern) throws SQLException; ResultSetTransport getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) throws SQLException; ResultSetTransport getTables(String catalog, String schemaPattern, String tableNamePattern, String types[]) throws SQLException; ResultSetTransport getSchemas() throws SQLException; ResultSetTransport getCatalogs() throws SQLException; ResultSetTransport getTableTypes() throws SQLException; ResultSetTransport getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException; ResultSetTransport getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) throws SQLException; ResultSetTransport getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) throws SQLException; ResultSetTransport getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) throws SQLException; ResultSetTransport getVersionColumns(String catalog, String schema, String table) throws SQLException; ResultSetTransport getPrimaryKeys(String catalog, String schema, String table) throws SQLException; ResultSetTransport getImportedKeys(String catalog, String schema, String table) throws SQLException; ResultSetTransport getExportedKeys(String catalog, String schema, String table) throws SQLException; ResultSetTransport getCrossReference( String parentCatalog, String parentSchema, String parentTable, String foreignCatalog, String foreignSchema, String foreignTable ) throws SQLException; ResultSetTransport getTypeInfo() throws SQLException; ResultSetTransport getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) throws SQLException; boolean supportsResultSetType(int type) throws SQLException; boolean supportsResultSetConcurrency(int type, int concurrency) throws SQLException; boolean ownUpdatesAreVisible(int type) throws SQLException; boolean ownDeletesAreVisible(int type) throws SQLException; boolean ownInsertsAreVisible(int type) throws SQLException; boolean othersUpdatesAreVisible(int type) throws SQLException; boolean othersDeletesAreVisible(int type) throws SQLException; boolean othersInsertsAreVisible(int type) throws SQLException; boolean updatesAreDetected(int type) throws SQLException; boolean deletesAreDetected(int type) throws SQLException; boolean insertsAreDetected(int type) throws SQLException; boolean supportsBatchUpdates() throws SQLException; ResultSetTransport getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) throws SQLException; boolean supportsSavepoints() throws SQLException; boolean supportsNamedParameters() throws SQLException; boolean supportsMultipleOpenResults() throws SQLException; boolean supportsGetGeneratedKeys() throws SQLException; ResultSetTransport getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) throws SQLException; ResultSetTransport getSuperTables(String catalog, String schemaPattern, String tableNamePattern) throws SQLException; ResultSetTransport getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) throws SQLException; boolean supportsResultSetHoldability(int holdability) throws SQLException; int getResultSetHoldability() throws SQLException; int getDatabaseMajorVersion() throws SQLException; int getDatabaseMinorVersion() throws SQLException; int getJDBCMajorVersion() throws SQLException; int getJDBCMinorVersion() throws SQLException; int getSQLStateType() throws SQLException; boolean locatorsUpdateCopy() throws SQLException; boolean supportsStatementPooling() throws SQLException; RowIdLifetime getRowIdLifetime() throws SQLException; ResultSetTransport getSchemas(String catalog, String schemaPattern) throws SQLException; boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException; boolean autoCommitFailureClosesAllResultSets() throws SQLException; ResultSetTransport getClientInfoProperties() throws SQLException; ResultSetTransport getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException; ResultSetTransport getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) throws SQLException; }