This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new cf7873618b9 Remove JDBCContext and CachedDatabaseMetaData and use
databaseConnectionManager physical connection to get database metadata (#26888)
cf7873618b9 is described below
commit cf7873618b976c5f60648e42c19298c7b9c09a67
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Jul 10 18:44:58 2023 +0800
Remove JDBCContext and CachedDatabaseMetaData and use
databaseConnectionManager physical connection to get database metadata (#26888)
---
.../jdbc/adapter/AdaptedDatabaseMetaData.java | 537 ++++++++++-----------
.../jdbc/context/CachedDatabaseMetaData.java | 450 -----------------
.../driver/jdbc/context/JDBCContext.java | 71 ---
.../core/connection/ShardingSphereConnection.java | 9 +-
.../core/datasource/ShardingSphereDataSource.java | 7 +-
.../metadata/ShardingSphereDatabaseMetaData.java | 4 +-
.../shardingsphere/driver/state/DriverState.java | 6 +-
.../driver/state/DriverStateContext.java | 6 +-
.../state/circuit/CircuitBreakDriverState.java | 3 +-
.../driver/state/lock/LockDriverState.java | 3 +-
.../driver/state/ok/OKDriverState.java | 5 +-
.../batch/BatchPreparedStatementExecutorTest.java | 3 +-
.../driver/jdbc/adapter/ConnectionAdapterTest.java | 3 +-
.../jdbc/context/CachedDatabaseMetaDataTest.java | 67 ---
.../driver/jdbc/context/JDBCContextTest.java | 52 --
.../connection/ShardingSphereConnectionTest.java | 3 +-
.../ShardingSphereDatabaseMetaDataTest.java | 3 -
.../UnsupportedOperationConnectionTest.java | 3 +-
.../driver/state/DriverStateContextTest.java | 3 +-
.../state/circuit/CircuitBreakDriverStateTest.java | 3 +-
.../driver/state/ok/OKDriverStateTest.java | 3 +-
21 files changed, 288 insertions(+), 956 deletions(-)
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AdaptedDatabaseMetaData.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AdaptedDatabaseMetaData.java
index 55bdf693da3..17bf480d52b 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AdaptedDatabaseMetaData.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AdaptedDatabaseMetaData.java
@@ -18,10 +18,10 @@
package org.apache.shardingsphere.driver.jdbc.adapter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.driver.jdbc.context.CachedDatabaseMetaData;
import java.sql.DatabaseMetaData;
import java.sql.RowIdLifetime;
+import java.sql.SQLException;
/**
* Adapted database meta data.
@@ -29,677 +29,676 @@ import java.sql.RowIdLifetime;
@RequiredArgsConstructor
public abstract class AdaptedDatabaseMetaData extends WrapperAdapter
implements DatabaseMetaData {
- private final CachedDatabaseMetaData cachedDatabaseMetaData;
+ private final DatabaseMetaData databaseMetaData;
@Override
- public final String getURL() {
- return cachedDatabaseMetaData.getUrl();
+ public final String getURL() throws SQLException {
+ return databaseMetaData.getURL();
}
@Override
- public final String getUserName() {
- return cachedDatabaseMetaData.getUserName();
+ public final String getUserName() throws SQLException {
+ return databaseMetaData.getUserName();
}
@Override
- public final String getDatabaseProductName() {
- return cachedDatabaseMetaData.getDatabaseProductName();
+ public final String getDatabaseProductName() throws SQLException {
+ return databaseMetaData.getDatabaseProductName();
}
@Override
- public final String getDatabaseProductVersion() {
- return cachedDatabaseMetaData.getDatabaseProductVersion();
+ public final String getDatabaseProductVersion() throws SQLException {
+ return databaseMetaData.getDatabaseProductVersion();
}
@Override
- public final String getDriverName() {
- return cachedDatabaseMetaData.getDriverName();
+ public final String getDriverName() throws SQLException {
+ return databaseMetaData.getDriverName();
}
@Override
- public final String getDriverVersion() {
- return cachedDatabaseMetaData.getDriverVersion();
+ public final String getDriverVersion() throws SQLException {
+ return databaseMetaData.getDriverVersion();
}
@Override
public final int getDriverMajorVersion() {
- return cachedDatabaseMetaData.getDriverMajorVersion();
+ return databaseMetaData.getDriverMajorVersion();
}
@Override
public final int getDriverMinorVersion() {
- return cachedDatabaseMetaData.getDriverMinorVersion();
+ return databaseMetaData.getDriverMinorVersion();
}
@Override
- public final int getDatabaseMajorVersion() {
- return cachedDatabaseMetaData.getDatabaseMajorVersion();
+ public final int getDatabaseMajorVersion() throws SQLException {
+ return databaseMetaData.getDatabaseMajorVersion();
}
@Override
- public final int getDatabaseMinorVersion() {
- return cachedDatabaseMetaData.getDatabaseMinorVersion();
+ public final int getDatabaseMinorVersion() throws SQLException {
+ return databaseMetaData.getDatabaseMinorVersion();
}
@Override
- public final int getJDBCMajorVersion() {
- return cachedDatabaseMetaData.getJdbcMajorVersion();
+ public final int getJDBCMajorVersion() throws SQLException {
+ return databaseMetaData.getJDBCMajorVersion();
}
@Override
- public final int getJDBCMinorVersion() {
- return cachedDatabaseMetaData.getJdbcMinorVersion();
+ public final int getJDBCMinorVersion() throws SQLException {
+ return databaseMetaData.getJDBCMinorVersion();
}
@Override
- public final boolean isReadOnly() {
- return cachedDatabaseMetaData.isReadOnly();
+ public final boolean isReadOnly() throws SQLException {
+ return databaseMetaData.isReadOnly();
}
@Override
- public final boolean allProceduresAreCallable() {
- return cachedDatabaseMetaData.isAllProceduresAreCallable();
+ public final boolean allProceduresAreCallable() throws SQLException {
+ return databaseMetaData.allProceduresAreCallable();
}
@Override
- public final boolean allTablesAreSelectable() {
- return cachedDatabaseMetaData.isAllTablesAreSelectable();
+ public final boolean allTablesAreSelectable() throws SQLException {
+ return databaseMetaData.allTablesAreSelectable();
}
@Override
- public final boolean nullsAreSortedHigh() {
- return cachedDatabaseMetaData.isNullsAreSortedHigh();
+ public final boolean nullsAreSortedHigh() throws SQLException {
+ return databaseMetaData.nullsAreSortedHigh();
}
@Override
- public final boolean nullsAreSortedLow() {
- return cachedDatabaseMetaData.isNullsAreSortedLow();
+ public final boolean nullsAreSortedLow() throws SQLException {
+ return databaseMetaData.nullsAreSortedLow();
}
@Override
- public final boolean nullsAreSortedAtStart() {
- return cachedDatabaseMetaData.isNullsAreSortedAtStart();
+ public final boolean nullsAreSortedAtStart() throws SQLException {
+ return databaseMetaData.nullsAreSortedAtStart();
}
@Override
- public final boolean nullsAreSortedAtEnd() {
- return cachedDatabaseMetaData.isNullsAreSortedAtEnd();
+ public final boolean nullsAreSortedAtEnd() throws SQLException {
+ return databaseMetaData.nullsAreSortedAtEnd();
}
@Override
- public final boolean usesLocalFiles() {
- return cachedDatabaseMetaData.isUsesLocalFiles();
+ public final boolean usesLocalFiles() throws SQLException {
+ return databaseMetaData.usesLocalFiles();
}
@Override
- public final boolean usesLocalFilePerTable() {
- return cachedDatabaseMetaData.isUsesLocalFilePerTable();
+ public final boolean usesLocalFilePerTable() throws SQLException {
+ return databaseMetaData.usesLocalFilePerTable();
}
@Override
- public final boolean supportsMixedCaseIdentifiers() {
- return cachedDatabaseMetaData.isStoresMixedCaseIdentifiers();
+ public final boolean supportsMixedCaseIdentifiers() throws SQLException {
+ return databaseMetaData.storesMixedCaseIdentifiers();
}
@Override
- public final boolean storesUpperCaseIdentifiers() {
- return cachedDatabaseMetaData.isStoresUpperCaseIdentifiers();
+ public final boolean storesUpperCaseIdentifiers() throws SQLException {
+ return databaseMetaData.storesUpperCaseIdentifiers();
}
@Override
- public final boolean storesLowerCaseIdentifiers() {
- return cachedDatabaseMetaData.isStoresLowerCaseIdentifiers();
+ public final boolean storesLowerCaseIdentifiers() throws SQLException {
+ return databaseMetaData.storesLowerCaseIdentifiers();
}
@Override
- public final boolean storesMixedCaseIdentifiers() {
- return cachedDatabaseMetaData.isStoresMixedCaseIdentifiers();
+ public final boolean storesMixedCaseIdentifiers() throws SQLException {
+ return databaseMetaData.storesMixedCaseIdentifiers();
}
@Override
- public final boolean supportsMixedCaseQuotedIdentifiers() {
- return cachedDatabaseMetaData.isSupportsMixedCaseQuotedIdentifiers();
+ public final boolean supportsMixedCaseQuotedIdentifiers() throws
SQLException {
+ return databaseMetaData.supportsMixedCaseQuotedIdentifiers();
}
@Override
- public final boolean storesUpperCaseQuotedIdentifiers() {
- return cachedDatabaseMetaData.isStoresUpperCaseQuotedIdentifiers();
+ public final boolean storesUpperCaseQuotedIdentifiers() throws
SQLException {
+ return databaseMetaData.storesUpperCaseQuotedIdentifiers();
}
@Override
- public final boolean storesLowerCaseQuotedIdentifiers() {
- return cachedDatabaseMetaData.isStoresLowerCaseQuotedIdentifiers();
+ public final boolean storesLowerCaseQuotedIdentifiers() throws
SQLException {
+ return databaseMetaData.storesLowerCaseQuotedIdentifiers();
}
@Override
- public final boolean storesMixedCaseQuotedIdentifiers() {
- return cachedDatabaseMetaData.isSupportsMixedCaseQuotedIdentifiers();
+ public final boolean storesMixedCaseQuotedIdentifiers() throws
SQLException {
+ return databaseMetaData.storesMixedCaseQuotedIdentifiers();
}
@Override
- public final String getIdentifierQuoteString() {
- return cachedDatabaseMetaData.getIdentifierQuoteString();
+ public final String getIdentifierQuoteString() throws SQLException {
+ return databaseMetaData.getIdentifierQuoteString();
}
@Override
- public final String getSQLKeywords() {
- return cachedDatabaseMetaData.getSqlKeywords();
+ public final String getSQLKeywords() throws SQLException {
+ return databaseMetaData.getSQLKeywords();
}
@Override
- public final String getNumericFunctions() {
- return cachedDatabaseMetaData.getNumericFunctions();
+ public final String getNumericFunctions() throws SQLException {
+ return databaseMetaData.getNumericFunctions();
}
@Override
- public final String getStringFunctions() {
- return cachedDatabaseMetaData.getStringFunctions();
+ public final String getStringFunctions() throws SQLException {
+ return databaseMetaData.getStringFunctions();
}
@Override
- public final String getSystemFunctions() {
- return cachedDatabaseMetaData.getSystemFunctions();
+ public final String getSystemFunctions() throws SQLException {
+ return databaseMetaData.getSystemFunctions();
}
@Override
- public final String getTimeDateFunctions() {
- return cachedDatabaseMetaData.getTimeDateFunctions();
+ public final String getTimeDateFunctions() throws SQLException {
+ return databaseMetaData.getTimeDateFunctions();
}
@Override
- public final String getSearchStringEscape() {
- return cachedDatabaseMetaData.getSearchStringEscape();
+ public final String getSearchStringEscape() throws SQLException {
+ return databaseMetaData.getSearchStringEscape();
}
@Override
- public final String getExtraNameCharacters() {
- return cachedDatabaseMetaData.getExtraNameCharacters();
+ public final String getExtraNameCharacters() throws SQLException {
+ return databaseMetaData.getExtraNameCharacters();
}
@Override
- public final boolean supportsAlterTableWithAddColumn() {
- return cachedDatabaseMetaData.isSupportsAlterTableWithAddColumn();
+ public final boolean supportsAlterTableWithAddColumn() throws SQLException
{
+ return databaseMetaData.supportsAlterTableWithAddColumn();
}
@Override
- public final boolean supportsAlterTableWithDropColumn() {
- return cachedDatabaseMetaData.isSupportsAlterTableWithDropColumn();
+ public final boolean supportsAlterTableWithDropColumn() throws
SQLException {
+ return databaseMetaData.supportsAlterTableWithDropColumn();
}
@Override
- public final boolean supportsColumnAliasing() {
- return cachedDatabaseMetaData.isSupportsColumnAliasing();
+ public final boolean supportsColumnAliasing() throws SQLException {
+ return databaseMetaData.supportsColumnAliasing();
}
@Override
- public final boolean nullPlusNonNullIsNull() {
- return cachedDatabaseMetaData.isNullPlusNonNullIsNull();
+ public final boolean nullPlusNonNullIsNull() throws SQLException {
+ return databaseMetaData.nullPlusNonNullIsNull();
}
@Override
- public final boolean supportsConvert() {
- return cachedDatabaseMetaData.isSupportsConvert();
+ public final boolean supportsConvert() throws SQLException {
+ return databaseMetaData.supportsConvert();
}
@Override
- public final boolean supportsConvert(final int fromType, final int toType)
{
- return cachedDatabaseMetaData.isSupportsConvert();
+ public final boolean supportsConvert(final int fromType, final int toType)
throws SQLException {
+ return databaseMetaData.supportsConvert();
}
@Override
- public final boolean supportsTableCorrelationNames() {
- return cachedDatabaseMetaData.isSupportsTableCorrelationNames();
+ public final boolean supportsTableCorrelationNames() throws SQLException {
+ return databaseMetaData.supportsTableCorrelationNames();
}
@Override
- public final boolean supportsDifferentTableCorrelationNames() {
- return
cachedDatabaseMetaData.isSupportsDifferentTableCorrelationNames();
+ public final boolean supportsDifferentTableCorrelationNames() throws
SQLException {
+ return databaseMetaData.supportsDifferentTableCorrelationNames();
}
@Override
- public final boolean supportsExpressionsInOrderBy() {
- return cachedDatabaseMetaData.isSupportsExpressionsInOrderBy();
+ public final boolean supportsExpressionsInOrderBy() throws SQLException {
+ return databaseMetaData.supportsExpressionsInOrderBy();
}
@Override
- public final boolean supportsOrderByUnrelated() {
- return cachedDatabaseMetaData.isSupportsOrderByUnrelated();
+ public final boolean supportsOrderByUnrelated() throws SQLException {
+ return databaseMetaData.supportsOrderByUnrelated();
}
@Override
- public final boolean supportsGroupBy() {
- return cachedDatabaseMetaData.isSupportsGroupBy();
+ public final boolean supportsGroupBy() throws SQLException {
+ return databaseMetaData.supportsGroupBy();
}
@Override
- public final boolean supportsGroupByUnrelated() {
- return cachedDatabaseMetaData.isSupportsGroupByUnrelated();
+ public final boolean supportsGroupByUnrelated() throws SQLException {
+ return databaseMetaData.supportsGroupByUnrelated();
}
@Override
- public final boolean supportsGroupByBeyondSelect() {
- return cachedDatabaseMetaData.isSupportsGroupByBeyondSelect();
+ public final boolean supportsGroupByBeyondSelect() throws SQLException {
+ return databaseMetaData.supportsGroupByBeyondSelect();
}
@Override
- public final boolean supportsLikeEscapeClause() {
- return cachedDatabaseMetaData.isSupportsLikeEscapeClause();
+ public final boolean supportsLikeEscapeClause() throws SQLException {
+ return databaseMetaData.supportsLikeEscapeClause();
}
@Override
- public final boolean supportsMultipleResultSets() {
- return cachedDatabaseMetaData.isSupportsMultipleResultSets();
+ public final boolean supportsMultipleResultSets() throws SQLException {
+ return databaseMetaData.supportsMultipleResultSets();
}
@Override
- public final boolean supportsMultipleTransactions() {
- return cachedDatabaseMetaData.isSupportsMultipleTransactions();
+ public final boolean supportsMultipleTransactions() throws SQLException {
+ return databaseMetaData.supportsMultipleTransactions();
}
@Override
- public final boolean supportsNonNullableColumns() {
- return cachedDatabaseMetaData.isSupportsNonNullableColumns();
+ public final boolean supportsNonNullableColumns() throws SQLException {
+ return databaseMetaData.supportsNonNullableColumns();
}
@Override
- public final boolean supportsMinimumSQLGrammar() {
- return cachedDatabaseMetaData.isSupportsMinimumSQLGrammar();
+ public final boolean supportsMinimumSQLGrammar() throws SQLException {
+ return databaseMetaData.supportsMinimumSQLGrammar();
}
@Override
- public final boolean supportsCoreSQLGrammar() {
- return cachedDatabaseMetaData.isSupportsCoreSQLGrammar();
+ public final boolean supportsCoreSQLGrammar() throws SQLException {
+ return databaseMetaData.supportsCoreSQLGrammar();
}
@Override
- public final boolean supportsExtendedSQLGrammar() {
- return cachedDatabaseMetaData.isSupportsExtendedSQLGrammar();
+ public final boolean supportsExtendedSQLGrammar() throws SQLException {
+ return databaseMetaData.supportsExtendedSQLGrammar();
}
@Override
- public final boolean supportsANSI92EntryLevelSQL() {
- return cachedDatabaseMetaData.isSupportsANSI92EntryLevelSQL();
+ public final boolean supportsANSI92EntryLevelSQL() throws SQLException {
+ return databaseMetaData.supportsANSI92EntryLevelSQL();
}
@Override
- public final boolean supportsANSI92IntermediateSQL() {
- return cachedDatabaseMetaData.isSupportsANSI92IntermediateSQL();
+ public final boolean supportsANSI92IntermediateSQL() throws SQLException {
+ return databaseMetaData.supportsANSI92IntermediateSQL();
}
@Override
- public final boolean supportsANSI92FullSQL() {
- return cachedDatabaseMetaData.isSupportsANSI92FullSQL();
+ public final boolean supportsANSI92FullSQL() throws SQLException {
+ return databaseMetaData.supportsANSI92FullSQL();
}
@Override
- public final boolean supportsIntegrityEnhancementFacility() {
- return cachedDatabaseMetaData.isSupportsIntegrityEnhancementFacility();
+ public final boolean supportsIntegrityEnhancementFacility() throws
SQLException {
+ return databaseMetaData.supportsIntegrityEnhancementFacility();
}
@Override
- public final boolean supportsOuterJoins() {
- return cachedDatabaseMetaData.isSupportsOuterJoins();
+ public final boolean supportsOuterJoins() throws SQLException {
+ return databaseMetaData.supportsOuterJoins();
}
@Override
- public final boolean supportsFullOuterJoins() {
- return cachedDatabaseMetaData.isSupportsFullOuterJoins();
+ public final boolean supportsFullOuterJoins() throws SQLException {
+ return databaseMetaData.supportsFullOuterJoins();
}
@Override
- public final boolean supportsLimitedOuterJoins() {
- return cachedDatabaseMetaData.isSupportsLimitedOuterJoins();
+ public final boolean supportsLimitedOuterJoins() throws SQLException {
+ return databaseMetaData.supportsLimitedOuterJoins();
}
@Override
- public final String getSchemaTerm() {
- return cachedDatabaseMetaData.getSchemaTerm();
+ public final String getSchemaTerm() throws SQLException {
+ return databaseMetaData.getSchemaTerm();
}
@Override
- public final String getProcedureTerm() {
- return cachedDatabaseMetaData.getProcedureTerm();
+ public final String getProcedureTerm() throws SQLException {
+ return databaseMetaData.getProcedureTerm();
}
@Override
- public final String getCatalogTerm() {
- return cachedDatabaseMetaData.getCatalogTerm();
+ public final String getCatalogTerm() throws SQLException {
+ return databaseMetaData.getCatalogTerm();
}
@Override
- public final boolean isCatalogAtStart() {
- return cachedDatabaseMetaData.isCatalogAtStart();
+ public final boolean isCatalogAtStart() throws SQLException {
+ return databaseMetaData.isCatalogAtStart();
}
@Override
- public final String getCatalogSeparator() {
- return cachedDatabaseMetaData.getCatalogSeparator();
+ public final String getCatalogSeparator() throws SQLException {
+ return databaseMetaData.getCatalogSeparator();
}
@Override
- public final boolean supportsSchemasInDataManipulation() {
- return cachedDatabaseMetaData.isSupportsSchemasInDataManipulation();
+ public final boolean supportsSchemasInDataManipulation() throws
SQLException {
+ return databaseMetaData.supportsSchemasInDataManipulation();
}
@Override
- public final boolean supportsSchemasInProcedureCalls() {
- return cachedDatabaseMetaData.isSupportsSchemasInProcedureCalls();
+ public final boolean supportsSchemasInProcedureCalls() throws SQLException
{
+ return databaseMetaData.supportsSchemasInProcedureCalls();
}
@Override
- public final boolean supportsSchemasInTableDefinitions() {
- return cachedDatabaseMetaData.isSupportsSchemasInTableDefinitions();
+ public final boolean supportsSchemasInTableDefinitions() throws
SQLException {
+ return databaseMetaData.supportsSchemasInTableDefinitions();
}
@Override
- public final boolean supportsSchemasInIndexDefinitions() {
- return cachedDatabaseMetaData.isSupportsSchemasInIndexDefinitions();
+ public final boolean supportsSchemasInIndexDefinitions() throws
SQLException {
+ return databaseMetaData.supportsSchemasInIndexDefinitions();
}
@Override
- public final boolean supportsSchemasInPrivilegeDefinitions() {
- return
cachedDatabaseMetaData.isSupportsSchemasInPrivilegeDefinitions();
+ public final boolean supportsSchemasInPrivilegeDefinitions() throws
SQLException {
+ return databaseMetaData.supportsSchemasInPrivilegeDefinitions();
}
@Override
- public final boolean supportsCatalogsInDataManipulation() {
- return cachedDatabaseMetaData.isSupportsCatalogsInDataManipulation();
+ public final boolean supportsCatalogsInDataManipulation() throws
SQLException {
+ return databaseMetaData.supportsCatalogsInDataManipulation();
}
@Override
- public final boolean supportsCatalogsInProcedureCalls() {
- return cachedDatabaseMetaData.isSupportsCatalogsInProcedureCalls();
+ public final boolean supportsCatalogsInProcedureCalls() throws
SQLException {
+ return databaseMetaData.supportsCatalogsInProcedureCalls();
}
@Override
- public final boolean supportsCatalogsInTableDefinitions() {
- return cachedDatabaseMetaData.isSupportsCatalogsInTableDefinitions();
+ public final boolean supportsCatalogsInTableDefinitions() throws
SQLException {
+ return databaseMetaData.supportsCatalogsInTableDefinitions();
}
@Override
- public final boolean supportsCatalogsInIndexDefinitions() {
- return cachedDatabaseMetaData.isSupportsCatalogsInIndexDefinitions();
+ public final boolean supportsCatalogsInIndexDefinitions() throws
SQLException {
+ return databaseMetaData.supportsCatalogsInIndexDefinitions();
}
@Override
- public final boolean supportsCatalogsInPrivilegeDefinitions() {
- return
cachedDatabaseMetaData.isSupportsCatalogsInPrivilegeDefinitions();
+ public final boolean supportsCatalogsInPrivilegeDefinitions() throws
SQLException {
+ return databaseMetaData.supportsCatalogsInPrivilegeDefinitions();
}
@Override
- public final boolean supportsPositionedDelete() {
- return cachedDatabaseMetaData.isSupportsPositionedDelete();
+ public final boolean supportsPositionedDelete() throws SQLException {
+ return databaseMetaData.supportsPositionedDelete();
}
@Override
- public final boolean supportsPositionedUpdate() {
- return cachedDatabaseMetaData.isSupportsPositionedUpdate();
+ public final boolean supportsPositionedUpdate() throws SQLException {
+ return databaseMetaData.supportsPositionedUpdate();
}
@Override
- public final boolean supportsSelectForUpdate() {
- return cachedDatabaseMetaData.isSupportsSelectForUpdate();
+ public final boolean supportsSelectForUpdate() throws SQLException {
+ return databaseMetaData.supportsSelectForUpdate();
}
@Override
- public final boolean supportsStoredProcedures() {
- return cachedDatabaseMetaData.isSupportsStoredProcedures();
+ public final boolean supportsStoredProcedures() throws SQLException {
+ return databaseMetaData.supportsStoredProcedures();
}
@Override
- public final boolean supportsSubqueriesInComparisons() {
- return cachedDatabaseMetaData.isSupportsSubqueriesInComparisons();
+ public final boolean supportsSubqueriesInComparisons() throws SQLException
{
+ return databaseMetaData.supportsSubqueriesInComparisons();
}
@Override
- public final boolean supportsSubqueriesInExists() {
- return cachedDatabaseMetaData.isSupportsSubqueriesInExists();
+ public final boolean supportsSubqueriesInExists() throws SQLException {
+ return databaseMetaData.supportsSubqueriesInExists();
}
@Override
- public final boolean supportsSubqueriesInIns() {
- return cachedDatabaseMetaData.isSupportsSubqueriesInIns();
+ public final boolean supportsSubqueriesInIns() throws SQLException {
+ return databaseMetaData.supportsSubqueriesInIns();
}
@Override
- public final boolean supportsSubqueriesInQuantifieds() {
- return cachedDatabaseMetaData.isSupportsSubqueriesInQuantifieds();
+ public final boolean supportsSubqueriesInQuantifieds() throws SQLException
{
+ return databaseMetaData.supportsSubqueriesInQuantifieds();
}
@Override
- public final boolean supportsCorrelatedSubqueries() {
- return cachedDatabaseMetaData.isSupportsCorrelatedSubqueries();
+ public final boolean supportsCorrelatedSubqueries() throws SQLException {
+ return databaseMetaData.supportsCorrelatedSubqueries();
}
@Override
- public final boolean supportsUnion() {
- return cachedDatabaseMetaData.isSupportsUnion();
+ public final boolean supportsUnion() throws SQLException {
+ return databaseMetaData.supportsUnion();
}
@Override
- public final boolean supportsUnionAll() {
- return cachedDatabaseMetaData.isSupportsUnionAll();
+ public final boolean supportsUnionAll() throws SQLException {
+ return databaseMetaData.supportsUnionAll();
}
@Override
- public final boolean supportsOpenCursorsAcrossCommit() {
- return cachedDatabaseMetaData.isSupportsOpenCursorsAcrossCommit();
+ public final boolean supportsOpenCursorsAcrossCommit() throws SQLException
{
+ return databaseMetaData.supportsOpenCursorsAcrossCommit();
}
@Override
- public final boolean supportsOpenCursorsAcrossRollback() {
- return cachedDatabaseMetaData.isSupportsOpenCursorsAcrossRollback();
+ public final boolean supportsOpenCursorsAcrossRollback() throws
SQLException {
+ return databaseMetaData.supportsOpenCursorsAcrossRollback();
}
@Override
- public final boolean supportsOpenStatementsAcrossCommit() {
- return cachedDatabaseMetaData.isSupportsOpenStatementsAcrossCommit();
+ public final boolean supportsOpenStatementsAcrossCommit() throws
SQLException {
+ return databaseMetaData.supportsOpenStatementsAcrossCommit();
}
@Override
- public final boolean supportsOpenStatementsAcrossRollback() {
- return cachedDatabaseMetaData.isSupportsOpenStatementsAcrossRollback();
+ public final boolean supportsOpenStatementsAcrossRollback() throws
SQLException {
+ return databaseMetaData.supportsOpenStatementsAcrossRollback();
}
@Override
- public final int getMaxBinaryLiteralLength() {
- return cachedDatabaseMetaData.getMaxBinaryLiteralLength();
+ public final int getMaxBinaryLiteralLength() throws SQLException {
+ return databaseMetaData.getMaxBinaryLiteralLength();
}
@Override
- public final int getMaxCharLiteralLength() {
- return cachedDatabaseMetaData.getMaxCharLiteralLength();
+ public final int getMaxCharLiteralLength() throws SQLException {
+ return databaseMetaData.getMaxCharLiteralLength();
}
@Override
- public final int getMaxColumnNameLength() {
- return cachedDatabaseMetaData.getMaxColumnNameLength();
+ public final int getMaxColumnNameLength() throws SQLException {
+ return databaseMetaData.getMaxColumnNameLength();
}
@Override
- public final int getMaxColumnsInGroupBy() {
- return cachedDatabaseMetaData.getMaxColumnsInGroupBy();
+ public final int getMaxColumnsInGroupBy() throws SQLException {
+ return databaseMetaData.getMaxColumnsInGroupBy();
}
@Override
- public final int getMaxColumnsInIndex() {
- return cachedDatabaseMetaData.getMaxColumnsInIndex();
+ public final int getMaxColumnsInIndex() throws SQLException {
+ return databaseMetaData.getMaxColumnsInIndex();
}
@Override
- public final int getMaxColumnsInOrderBy() {
- return cachedDatabaseMetaData.getMaxColumnsInOrderBy();
+ public final int getMaxColumnsInOrderBy() throws SQLException {
+ return databaseMetaData.getMaxColumnsInOrderBy();
}
@Override
- public final int getMaxColumnsInSelect() {
- return cachedDatabaseMetaData.getMaxColumnsInSelect();
+ public final int getMaxColumnsInSelect() throws SQLException {
+ return databaseMetaData.getMaxColumnsInSelect();
}
@Override
- public final int getMaxColumnsInTable() {
- return cachedDatabaseMetaData.getMaxColumnsInTable();
+ public final int getMaxColumnsInTable() throws SQLException {
+ return databaseMetaData.getMaxColumnsInTable();
}
@Override
- public final int getMaxConnections() {
- return cachedDatabaseMetaData.getMaxConnections();
+ public final int getMaxConnections() throws SQLException {
+ return databaseMetaData.getMaxConnections();
}
@Override
- public final int getMaxCursorNameLength() {
- return cachedDatabaseMetaData.getMaxCursorNameLength();
+ public final int getMaxCursorNameLength() throws SQLException {
+ return databaseMetaData.getMaxCursorNameLength();
}
@Override
- public final int getMaxIndexLength() {
- return cachedDatabaseMetaData.getMaxIndexLength();
+ public final int getMaxIndexLength() throws SQLException {
+ return databaseMetaData.getMaxIndexLength();
}
@Override
- public final int getMaxSchemaNameLength() {
- return cachedDatabaseMetaData.getMaxSchemaNameLength();
+ public final int getMaxSchemaNameLength() throws SQLException {
+ return databaseMetaData.getMaxSchemaNameLength();
}
@Override
- public final int getMaxProcedureNameLength() {
- return cachedDatabaseMetaData.getMaxProcedureNameLength();
+ public final int getMaxProcedureNameLength() throws SQLException {
+ return databaseMetaData.getMaxProcedureNameLength();
}
@Override
- public final int getMaxCatalogNameLength() {
- return cachedDatabaseMetaData.getMaxCatalogNameLength();
+ public final int getMaxCatalogNameLength() throws SQLException {
+ return databaseMetaData.getMaxCatalogNameLength();
}
@Override
- public final int getMaxRowSize() {
- return cachedDatabaseMetaData.getMaxRowSize();
+ public final int getMaxRowSize() throws SQLException {
+ return databaseMetaData.getMaxRowSize();
}
@Override
- public final boolean doesMaxRowSizeIncludeBlobs() {
- return cachedDatabaseMetaData.isDoesMaxRowSizeIncludeBlobs();
+ public final boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
+ return databaseMetaData.doesMaxRowSizeIncludeBlobs();
}
@Override
- public final int getMaxStatementLength() {
- return cachedDatabaseMetaData.getMaxStatementLength();
+ public final int getMaxStatementLength() throws SQLException {
+ return databaseMetaData.getMaxStatementLength();
}
@Override
- public final int getMaxStatements() {
- return cachedDatabaseMetaData.getMaxStatements();
+ public final int getMaxStatements() throws SQLException {
+ return databaseMetaData.getMaxStatements();
}
@Override
- public final int getMaxTableNameLength() {
- return cachedDatabaseMetaData.getMaxTableNameLength();
+ public final int getMaxTableNameLength() throws SQLException {
+ return databaseMetaData.getMaxTableNameLength();
}
@Override
- public final int getMaxTablesInSelect() {
- return cachedDatabaseMetaData.getMaxTablesInSelect();
+ public final int getMaxTablesInSelect() throws SQLException {
+ return databaseMetaData.getMaxTablesInSelect();
}
@Override
- public final int getMaxUserNameLength() {
- return cachedDatabaseMetaData.getMaxUserNameLength();
+ public final int getMaxUserNameLength() throws SQLException {
+ return databaseMetaData.getMaxUserNameLength();
}
@Override
- public final int getDefaultTransactionIsolation() {
- return cachedDatabaseMetaData.getDefaultTransactionIsolation();
+ public final int getDefaultTransactionIsolation() throws SQLException {
+ return databaseMetaData.getDefaultTransactionIsolation();
}
@Override
- public final boolean supportsTransactions() {
- return cachedDatabaseMetaData.isSupportsTransactions();
+ public final boolean supportsTransactions() throws SQLException {
+ return databaseMetaData.supportsTransactions();
}
@Override
- public final boolean
supportsDataDefinitionAndDataManipulationTransactions() {
- return
cachedDatabaseMetaData.isSupportsDataDefinitionAndDataManipulationTransactions();
+ public final boolean
supportsDataDefinitionAndDataManipulationTransactions() throws SQLException {
+ return
databaseMetaData.supportsDataDefinitionAndDataManipulationTransactions();
}
@Override
- public final boolean supportsDataManipulationTransactionsOnly() {
- return
cachedDatabaseMetaData.isSupportsDataManipulationTransactionsOnly();
+ public final boolean supportsDataManipulationTransactionsOnly() throws
SQLException {
+ return databaseMetaData.supportsDataManipulationTransactionsOnly();
}
@Override
- public final boolean dataDefinitionCausesTransactionCommit() {
- return
cachedDatabaseMetaData.isDataDefinitionCausesTransactionCommit();
+ public final boolean dataDefinitionCausesTransactionCommit() throws
SQLException {
+ return databaseMetaData.dataDefinitionCausesTransactionCommit();
}
@Override
- public final boolean dataDefinitionIgnoredInTransactions() {
- return cachedDatabaseMetaData.isDataDefinitionIgnoredInTransactions();
+ public final boolean dataDefinitionIgnoredInTransactions() throws
SQLException {
+ return databaseMetaData.dataDefinitionIgnoredInTransactions();
}
@Override
- public final boolean supportsBatchUpdates() {
- return cachedDatabaseMetaData.isSupportsBatchUpdates();
+ public final boolean supportsBatchUpdates() throws SQLException {
+ return databaseMetaData.supportsBatchUpdates();
}
@Override
- public final boolean supportsSavepoints() {
- return cachedDatabaseMetaData.isSupportsSavepoints();
+ public final boolean supportsSavepoints() throws SQLException {
+ return databaseMetaData.supportsSavepoints();
}
@Override
- public final boolean supportsNamedParameters() {
- return cachedDatabaseMetaData.isSupportsNamedParameters();
+ public final boolean supportsNamedParameters() throws SQLException {
+ return databaseMetaData.supportsNamedParameters();
}
@Override
- public final boolean supportsMultipleOpenResults() {
- return cachedDatabaseMetaData.isSupportsMultipleOpenResults();
+ public final boolean supportsMultipleOpenResults() throws SQLException {
+ return databaseMetaData.supportsMultipleOpenResults();
}
@Override
- public final boolean supportsGetGeneratedKeys() {
- return cachedDatabaseMetaData.isSupportsGetGeneratedKeys();
+ public final boolean supportsGetGeneratedKeys() throws SQLException {
+ return databaseMetaData.supportsGetGeneratedKeys();
}
@Override
- public final int getResultSetHoldability() {
- return cachedDatabaseMetaData.getResultSetHoldability();
+ public final int getResultSetHoldability() throws SQLException {
+ return databaseMetaData.getResultSetHoldability();
}
- @SuppressWarnings("MagicConstant")
@Override
- public final int getSQLStateType() {
- return cachedDatabaseMetaData.getSqlStateType();
+ public final int getSQLStateType() throws SQLException {
+ return databaseMetaData.getSQLStateType();
}
@Override
- public final boolean locatorsUpdateCopy() {
- return cachedDatabaseMetaData.isLocatorsUpdateCopy();
+ public final boolean locatorsUpdateCopy() throws SQLException {
+ return databaseMetaData.locatorsUpdateCopy();
}
@Override
- public final boolean supportsStatementPooling() {
- return cachedDatabaseMetaData.isSupportsStatementPooling();
+ public final boolean supportsStatementPooling() throws SQLException {
+ return databaseMetaData.supportsStatementPooling();
}
@Override
- public final boolean supportsStoredFunctionsUsingCallSyntax() {
- return
cachedDatabaseMetaData.isSupportsStoredFunctionsUsingCallSyntax();
+ public final boolean supportsStoredFunctionsUsingCallSyntax() throws
SQLException {
+ return databaseMetaData.supportsStoredFunctionsUsingCallSyntax();
}
@Override
- public final boolean autoCommitFailureClosesAllResultSets() {
- return cachedDatabaseMetaData.isAutoCommitFailureClosesAllResultSets();
+ public final boolean autoCommitFailureClosesAllResultSets() throws
SQLException {
+ return databaseMetaData.autoCommitFailureClosesAllResultSets();
}
@Override
- public final RowIdLifetime getRowIdLifetime() {
- return cachedDatabaseMetaData.getRowIdLifetime();
+ public final RowIdLifetime getRowIdLifetime() throws SQLException {
+ return databaseMetaData.getRowIdLifetime();
}
@Override
- public final boolean generatedKeyAlwaysReturned() {
- return cachedDatabaseMetaData.isGeneratedKeyAlwaysReturned();
+ public final boolean generatedKeyAlwaysReturned() throws SQLException {
+ return databaseMetaData.generatedKeyAlwaysReturned();
}
@Override
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaData.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaData.java
deleted file mode 100644
index 5ce0d011c93..00000000000
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaData.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shardingsphere.driver.jdbc.context;
-
-import lombok.Getter;
-
-import java.sql.DatabaseMetaData;
-import java.sql.RowIdLifetime;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-
-/**
- * Cached database meta data.
- */
-@Getter
-public final class CachedDatabaseMetaData {
-
- private final String url;
-
- private final String userName;
-
- private final String databaseProductName;
-
- private final String databaseProductVersion;
-
- private final String driverName;
-
- private final String driverVersion;
-
- private final int driverMajorVersion;
-
- private final int driverMinorVersion;
-
- private final int databaseMajorVersion;
-
- private final int databaseMinorVersion;
-
- private final int jdbcMajorVersion;
-
- private final int jdbcMinorVersion;
-
- private final boolean isReadOnly;
-
- private final boolean allProceduresAreCallable;
-
- private final boolean allTablesAreSelectable;
-
- private final boolean nullsAreSortedHigh;
-
- private final boolean nullsAreSortedLow;
-
- private final boolean nullsAreSortedAtStart;
-
- private final boolean nullsAreSortedAtEnd;
-
- private final boolean usesLocalFiles;
-
- private final boolean usesLocalFilePerTable;
-
- private final boolean supportsMixedCaseIdentifiers;
-
- private final boolean storesUpperCaseIdentifiers;
-
- private final boolean storesLowerCaseIdentifiers;
-
- private final boolean storesMixedCaseIdentifiers;
-
- private final boolean supportsMixedCaseQuotedIdentifiers;
-
- private final boolean storesUpperCaseQuotedIdentifiers;
-
- private final boolean storesLowerCaseQuotedIdentifiers;
-
- private final boolean storesMixedCaseQuotedIdentifiers;
-
- private final String identifierQuoteString;
-
- private final String sqlKeywords;
-
- private final String numericFunctions;
-
- private final String stringFunctions;
-
- private final String systemFunctions;
-
- private final String timeDateFunctions;
-
- private final String searchStringEscape;
-
- private final String extraNameCharacters;
-
- private final boolean supportsAlterTableWithAddColumn;
-
- private final boolean supportsAlterTableWithDropColumn;
-
- private final boolean supportsColumnAliasing;
-
- private final boolean nullPlusNonNullIsNull;
-
- private final boolean supportsConvert;
-
- private final boolean supportsTableCorrelationNames;
-
- private final boolean supportsDifferentTableCorrelationNames;
-
- private final boolean supportsExpressionsInOrderBy;
-
- private final boolean supportsOrderByUnrelated;
-
- private final boolean supportsGroupBy;
-
- private final boolean supportsGroupByUnrelated;
-
- private final boolean supportsGroupByBeyondSelect;
-
- private final boolean supportsLikeEscapeClause;
-
- private final boolean supportsMultipleResultSets;
-
- private final boolean supportsMultipleTransactions;
-
- private final boolean supportsNonNullableColumns;
-
- private final boolean supportsMinimumSQLGrammar;
-
- private final boolean supportsCoreSQLGrammar;
-
- private final boolean supportsExtendedSQLGrammar;
-
- private final boolean supportsANSI92EntryLevelSQL;
-
- private final boolean supportsANSI92IntermediateSQL;
-
- private final boolean supportsANSI92FullSQL;
-
- private final boolean supportsIntegrityEnhancementFacility;
-
- private final boolean supportsOuterJoins;
-
- private final boolean supportsFullOuterJoins;
-
- private final boolean supportsLimitedOuterJoins;
-
- private final String schemaTerm;
-
- private final String procedureTerm;
-
- private final String catalogTerm;
-
- private final boolean isCatalogAtStart;
-
- private final String catalogSeparator;
-
- private final boolean supportsSchemasInDataManipulation;
-
- private final boolean supportsSchemasInProcedureCalls;
-
- private final boolean supportsSchemasInTableDefinitions;
-
- private final boolean supportsSchemasInIndexDefinitions;
-
- private final boolean supportsSchemasInPrivilegeDefinitions;
-
- private final boolean supportsCatalogsInDataManipulation;
-
- private final boolean supportsCatalogsInProcedureCalls;
-
- private final boolean supportsCatalogsInTableDefinitions;
-
- private final boolean supportsCatalogsInIndexDefinitions;
-
- private final boolean supportsCatalogsInPrivilegeDefinitions;
-
- private final boolean supportsPositionedDelete;
-
- private final boolean supportsPositionedUpdate;
-
- private final boolean supportsSelectForUpdate;
-
- private final boolean supportsStoredProcedures;
-
- private final boolean supportsSubqueriesInComparisons;
-
- private final boolean supportsSubqueriesInExists;
-
- private final boolean supportsSubqueriesInIns;
-
- private final boolean supportsSubqueriesInQuantifieds;
-
- private final boolean supportsCorrelatedSubqueries;
-
- private final boolean supportsUnion;
-
- private final boolean supportsUnionAll;
-
- private final boolean supportsOpenCursorsAcrossCommit;
-
- private final boolean supportsOpenCursorsAcrossRollback;
-
- private final boolean supportsOpenStatementsAcrossCommit;
-
- private final boolean supportsOpenStatementsAcrossRollback;
-
- private final int maxBinaryLiteralLength;
-
- private final int maxCharLiteralLength;
-
- private final int maxColumnNameLength;
-
- private final int maxColumnsInGroupBy;
-
- private final int maxColumnsInIndex;
-
- private final int maxColumnsInOrderBy;
-
- private final int maxColumnsInSelect;
-
- private final int maxColumnsInTable;
-
- private final int maxConnections;
-
- private final int maxCursorNameLength;
-
- private final int maxIndexLength;
-
- private final int maxSchemaNameLength;
-
- private final int maxProcedureNameLength;
-
- private final int maxCatalogNameLength;
-
- private final int maxRowSize;
-
- private final boolean doesMaxRowSizeIncludeBlobs;
-
- private final int maxStatementLength;
-
- private final int maxStatements;
-
- private final int maxTableNameLength;
-
- private final int maxTablesInSelect;
-
- private final int maxUserNameLength;
-
- private final int defaultTransactionIsolation;
-
- private final boolean supportsTransactions;
-
- private final boolean
supportsDataDefinitionAndDataManipulationTransactions;
-
- private final boolean supportsDataManipulationTransactionsOnly;
-
- private final boolean dataDefinitionCausesTransactionCommit;
-
- private final boolean dataDefinitionIgnoredInTransactions;
-
- private final boolean supportsBatchUpdates;
-
- private final boolean supportsSavepoints;
-
- private final boolean supportsNamedParameters;
-
- private final boolean supportsMultipleOpenResults;
-
- private final boolean supportsGetGeneratedKeys;
-
- private final int resultSetHoldability;
-
- private final int sqlStateType;
-
- private final boolean locatorsUpdateCopy;
-
- private final boolean supportsStatementPooling;
-
- private final boolean supportsStoredFunctionsUsingCallSyntax;
-
- private final boolean autoCommitFailureClosesAllResultSets;
-
- private final RowIdLifetime rowIdLifetime;
-
- private final boolean generatedKeyAlwaysReturned;
-
- public CachedDatabaseMetaData(final DatabaseMetaData databaseMetaData)
throws SQLException {
- url = databaseMetaData.getURL();
- userName = databaseMetaData.getUserName();
- databaseProductName = databaseMetaData.getDatabaseProductName();
- databaseProductVersion = databaseMetaData.getDatabaseProductVersion();
- driverName = databaseMetaData.getDriverName();
- driverVersion = databaseMetaData.getDriverVersion();
- driverMajorVersion = databaseMetaData.getDriverMajorVersion();
- driverMinorVersion = databaseMetaData.getDriverMinorVersion();
- databaseMajorVersion = databaseMetaData.getDatabaseMajorVersion();
- databaseMinorVersion = databaseMetaData.getDatabaseMinorVersion();
- jdbcMajorVersion = databaseMetaData.getJDBCMajorVersion();
- jdbcMinorVersion = databaseMetaData.getJDBCMinorVersion();
- isReadOnly = databaseMetaData.isReadOnly();
- allProceduresAreCallable = databaseMetaData.allProceduresAreCallable();
- allTablesAreSelectable = databaseMetaData.allTablesAreSelectable();
- nullsAreSortedHigh = databaseMetaData.nullsAreSortedHigh();
- nullsAreSortedLow = databaseMetaData.nullsAreSortedLow();
- nullsAreSortedAtStart = databaseMetaData.nullsAreSortedAtStart();
- nullsAreSortedAtEnd = databaseMetaData.nullsAreSortedAtEnd();
- usesLocalFiles = databaseMetaData.usesLocalFiles();
- usesLocalFilePerTable = databaseMetaData.usesLocalFilePerTable();
- supportsMixedCaseIdentifiers =
databaseMetaData.supportsMixedCaseIdentifiers();
- storesUpperCaseIdentifiers =
databaseMetaData.storesUpperCaseIdentifiers();
- storesLowerCaseIdentifiers =
databaseMetaData.storesLowerCaseIdentifiers();
- storesMixedCaseIdentifiers =
databaseMetaData.storesMixedCaseIdentifiers();
- supportsMixedCaseQuotedIdentifiers =
databaseMetaData.supportsMixedCaseQuotedIdentifiers();
- storesUpperCaseQuotedIdentifiers =
databaseMetaData.storesUpperCaseQuotedIdentifiers();
- storesLowerCaseQuotedIdentifiers =
databaseMetaData.storesLowerCaseQuotedIdentifiers();
- storesMixedCaseQuotedIdentifiers =
databaseMetaData.storesMixedCaseQuotedIdentifiers();
- identifierQuoteString = databaseMetaData.getIdentifierQuoteString();
- sqlKeywords = databaseMetaData.getSQLKeywords();
- numericFunctions = databaseMetaData.getNumericFunctions();
- stringFunctions = databaseMetaData.getStringFunctions();
- systemFunctions = databaseMetaData.getSystemFunctions();
- timeDateFunctions = databaseMetaData.getTimeDateFunctions();
- searchStringEscape = databaseMetaData.getSearchStringEscape();
- extraNameCharacters = databaseMetaData.getExtraNameCharacters();
- supportsAlterTableWithAddColumn =
databaseMetaData.supportsAlterTableWithAddColumn();
- supportsAlterTableWithDropColumn =
databaseMetaData.supportsAlterTableWithDropColumn();
- supportsColumnAliasing = databaseMetaData.supportsColumnAliasing();
- nullPlusNonNullIsNull = databaseMetaData.nullPlusNonNullIsNull();
- supportsConvert = databaseMetaData.supportsConvert();
- supportsTableCorrelationNames =
databaseMetaData.supportsTableCorrelationNames();
- supportsDifferentTableCorrelationNames =
databaseMetaData.supportsDifferentTableCorrelationNames();
- supportsExpressionsInOrderBy =
databaseMetaData.supportsExpressionsInOrderBy();
- supportsOrderByUnrelated = databaseMetaData.supportsOrderByUnrelated();
- supportsGroupBy = databaseMetaData.supportsGroupBy();
- supportsGroupByUnrelated = databaseMetaData.supportsGroupByUnrelated();
- supportsGroupByBeyondSelect =
databaseMetaData.supportsGroupByBeyondSelect();
- supportsLikeEscapeClause = databaseMetaData.supportsLikeEscapeClause();
- supportsMultipleResultSets =
databaseMetaData.supportsMultipleResultSets();
- supportsMultipleTransactions =
databaseMetaData.supportsMultipleTransactions();
- supportsNonNullableColumns =
databaseMetaData.supportsNonNullableColumns();
- supportsMinimumSQLGrammar =
databaseMetaData.supportsMinimumSQLGrammar();
- supportsCoreSQLGrammar = databaseMetaData.supportsCoreSQLGrammar();
- supportsExtendedSQLGrammar =
databaseMetaData.supportsExtendedSQLGrammar();
- supportsANSI92EntryLevelSQL =
databaseMetaData.supportsANSI92EntryLevelSQL();
- supportsANSI92IntermediateSQL =
databaseMetaData.supportsANSI92IntermediateSQL();
- supportsANSI92FullSQL = databaseMetaData.supportsANSI92FullSQL();
- supportsIntegrityEnhancementFacility =
databaseMetaData.supportsIntegrityEnhancementFacility();
- supportsOuterJoins = databaseMetaData.supportsOuterJoins();
- supportsFullOuterJoins = databaseMetaData.supportsFullOuterJoins();
- supportsLimitedOuterJoins =
databaseMetaData.supportsLimitedOuterJoins();
- schemaTerm = databaseMetaData.getSchemaTerm();
- procedureTerm = databaseMetaData.getProcedureTerm();
- catalogTerm = databaseMetaData.getCatalogTerm();
- isCatalogAtStart = databaseMetaData.isCatalogAtStart();
- catalogSeparator = databaseMetaData.getCatalogSeparator();
- supportsSchemasInDataManipulation =
databaseMetaData.supportsSchemasInDataManipulation();
- supportsSchemasInProcedureCalls =
databaseMetaData.supportsSchemasInProcedureCalls();
- supportsSchemasInTableDefinitions =
databaseMetaData.supportsSchemasInTableDefinitions();
- supportsSchemasInIndexDefinitions =
databaseMetaData.supportsSchemasInIndexDefinitions();
- supportsSchemasInPrivilegeDefinitions =
databaseMetaData.supportsSchemasInPrivilegeDefinitions();
- supportsCatalogsInDataManipulation =
databaseMetaData.supportsCatalogsInDataManipulation();
- supportsCatalogsInProcedureCalls =
databaseMetaData.supportsCatalogsInProcedureCalls();
- supportsCatalogsInTableDefinitions =
databaseMetaData.supportsCatalogsInTableDefinitions();
- supportsCatalogsInIndexDefinitions =
databaseMetaData.supportsCatalogsInIndexDefinitions();
- supportsCatalogsInPrivilegeDefinitions =
databaseMetaData.supportsCatalogsInPrivilegeDefinitions();
- supportsPositionedDelete = databaseMetaData.supportsPositionedDelete();
- supportsPositionedUpdate = databaseMetaData.supportsPositionedUpdate();
- supportsSelectForUpdate = databaseMetaData.supportsSelectForUpdate();
- supportsStoredProcedures = databaseMetaData.supportsStoredProcedures();
- supportsSubqueriesInComparisons =
databaseMetaData.supportsSubqueriesInComparisons();
- supportsSubqueriesInExists =
databaseMetaData.supportsSubqueriesInExists();
- supportsSubqueriesInIns = databaseMetaData.supportsSubqueriesInIns();
- supportsSubqueriesInQuantifieds =
databaseMetaData.supportsSubqueriesInQuantifieds();
- supportsCorrelatedSubqueries =
databaseMetaData.supportsCorrelatedSubqueries();
- supportsUnion = databaseMetaData.supportsUnion();
- supportsUnionAll = databaseMetaData.supportsUnionAll();
- supportsOpenCursorsAcrossCommit =
databaseMetaData.supportsOpenCursorsAcrossCommit();
- supportsOpenCursorsAcrossRollback =
databaseMetaData.supportsOpenCursorsAcrossRollback();
- supportsOpenStatementsAcrossCommit =
databaseMetaData.supportsOpenStatementsAcrossCommit();
- supportsOpenStatementsAcrossRollback =
databaseMetaData.supportsOpenStatementsAcrossRollback();
- maxBinaryLiteralLength = databaseMetaData.getMaxBinaryLiteralLength();
- maxCharLiteralLength = databaseMetaData.getMaxCharLiteralLength();
- maxColumnNameLength = databaseMetaData.getMaxColumnNameLength();
- maxColumnsInGroupBy = databaseMetaData.getMaxColumnsInGroupBy();
- maxColumnsInIndex = databaseMetaData.getMaxColumnsInIndex();
- maxColumnsInOrderBy = databaseMetaData.getMaxColumnsInOrderBy();
- maxColumnsInSelect = databaseMetaData.getMaxColumnsInSelect();
- maxColumnsInTable = databaseMetaData.getMaxColumnsInTable();
- maxConnections = databaseMetaData.getMaxConnections();
- maxCursorNameLength = databaseMetaData.getMaxCursorNameLength();
- maxIndexLength = databaseMetaData.getMaxIndexLength();
- maxSchemaNameLength = databaseMetaData.getMaxSchemaNameLength();
- maxProcedureNameLength = databaseMetaData.getMaxProcedureNameLength();
- maxCatalogNameLength = databaseMetaData.getMaxCatalogNameLength();
- maxRowSize = databaseMetaData.getMaxRowSize();
- doesMaxRowSizeIncludeBlobs =
databaseMetaData.doesMaxRowSizeIncludeBlobs();
- maxStatementLength = databaseMetaData.getMaxStatementLength();
- maxStatements = databaseMetaData.getMaxStatements();
- maxTableNameLength = databaseMetaData.getMaxTableNameLength();
- maxTablesInSelect = databaseMetaData.getMaxTablesInSelect();
- maxUserNameLength = databaseMetaData.getMaxUserNameLength();
- defaultTransactionIsolation =
databaseMetaData.getDefaultTransactionIsolation();
- supportsTransactions = databaseMetaData.supportsTransactions();
- supportsDataDefinitionAndDataManipulationTransactions =
databaseMetaData.supportsDataDefinitionAndDataManipulationTransactions();
- supportsDataManipulationTransactionsOnly =
databaseMetaData.supportsDataManipulationTransactionsOnly();
- dataDefinitionCausesTransactionCommit =
databaseMetaData.dataDefinitionCausesTransactionCommit();
- dataDefinitionIgnoredInTransactions =
databaseMetaData.dataDefinitionIgnoredInTransactions();
- supportsBatchUpdates = databaseMetaData.supportsBatchUpdates();
- supportsSavepoints = databaseMetaData.supportsSavepoints();
- supportsNamedParameters = databaseMetaData.supportsNamedParameters();
- supportsMultipleOpenResults =
databaseMetaData.supportsMultipleOpenResults();
- supportsGetGeneratedKeys = databaseMetaData.supportsGetGeneratedKeys();
- resultSetHoldability = databaseMetaData.getResultSetHoldability();
- sqlStateType = databaseMetaData.getSQLStateType();
- locatorsUpdateCopy = databaseMetaData.locatorsUpdateCopy();
- supportsStatementPooling = databaseMetaData.supportsStatementPooling();
- supportsStoredFunctionsUsingCallSyntax =
databaseMetaData.supportsStoredFunctionsUsingCallSyntax();
- autoCommitFailureClosesAllResultSets =
databaseMetaData.autoCommitFailureClosesAllResultSets();
- rowIdLifetime = getRowIdLifetimeFromOriginMetaData(databaseMetaData);
- generatedKeyAlwaysReturned =
isGeneratedKeyAlwaysReturned(databaseMetaData);
- }
-
- private RowIdLifetime getRowIdLifetimeFromOriginMetaData(final
DatabaseMetaData databaseMetaData) throws SQLException {
- try {
- return databaseMetaData.getRowIdLifetime();
- } catch (final SQLFeatureNotSupportedException ignore) {
- return RowIdLifetime.ROWID_UNSUPPORTED;
- }
- }
-
- private boolean isGeneratedKeyAlwaysReturned(final DatabaseMetaData
databaseMetaData) throws SQLException {
- try {
- return databaseMetaData.generatedKeyAlwaysReturned();
- } catch (final AbstractMethodError ignored) {
- return false;
- }
- }
-}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContext.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContext.java
deleted file mode 100644
index e312f9d1a35..00000000000
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContext.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shardingsphere.driver.jdbc.context;
-
-import com.google.common.eventbus.Subscribe;
-import
org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolCreator;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.datasource.DataSourceChangedEvent;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * JDBC context.
- */
-public final class JDBCContext {
-
- private final AtomicReference<CachedDatabaseMetaData>
cachedDatabaseMetaData = new AtomicReference<>();
-
- public JDBCContext(final Map<String, DataSource> dataSources) throws
SQLException {
-
cachedDatabaseMetaData.set(createCachedDatabaseMetaData(dataSources).orElse(null));
- }
-
- /**
- * Get cached database meta data.
- *
- * @return cached database meta data
- */
- public CachedDatabaseMetaData getCachedDatabaseMetaData() {
- return cachedDatabaseMetaData.get();
- }
-
- /**
- * Refresh cached database meta data.
- *
- * @param event data source changed event
- * @throws SQLException SQL exception
- */
- @SuppressWarnings("UnstableApiUsage")
- @Subscribe
- public void refreshCachedDatabaseMetaData(final DataSourceChangedEvent
event) throws SQLException {
-
cachedDatabaseMetaData.set(createCachedDatabaseMetaData(DataSourcePoolCreator.create(event.getDataSourcePropertiesMap())).orElse(null));
- }
-
- private Optional<CachedDatabaseMetaData>
createCachedDatabaseMetaData(final Map<String, DataSource> dataSources) throws
SQLException {
- if (dataSources.isEmpty()) {
- return Optional.empty();
- }
- try (Connection connection =
dataSources.values().iterator().next().getConnection()) {
- return Optional.of(new
CachedDatabaseMetaData(connection.getMetaData()));
- }
- }
-}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
index 902d83534b6..f538478a79a 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnection.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.driver.jdbc.core.connection;
import lombok.Getter;
import org.apache.shardingsphere.driver.jdbc.adapter.AbstractConnectionAdapter;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.datasource.metadata.ShardingSphereDatabaseMetaData;
import
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement;
import
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement;
@@ -48,9 +47,6 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
@Getter
private final ContextManager contextManager;
- @Getter
- private final JDBCContext jdbcContext;
-
@Getter
private final DriverDatabaseConnectionManager databaseConnectionManager;
@@ -62,10 +58,9 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
private volatile boolean closed;
- public ShardingSphereConnection(final String databaseName, final
ContextManager contextManager, final JDBCContext jdbcContext) {
+ public ShardingSphereConnection(final String databaseName, final
ContextManager contextManager) {
this.databaseName = databaseName;
this.contextManager = contextManager;
- this.jdbcContext = jdbcContext;
databaseConnectionManager = new
DriverDatabaseConnectionManager(databaseName, contextManager);
}
@@ -79,7 +74,7 @@ public final class ShardingSphereConnection extends
AbstractConnectionAdapter {
}
@Override
- public DatabaseMetaData getMetaData() {
+ public DatabaseMetaData getMetaData() throws SQLException {
return new ShardingSphereDatabaseMetaData(this);
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 985f6bc074a..8a4bffa8bbb 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.driver.jdbc.core.datasource;
import org.apache.shardingsphere.driver.jdbc.adapter.AbstractDataSourceAdapter;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import org.apache.shardingsphere.driver.state.DriverStateContext;
import
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDatabaseConfiguration;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
@@ -54,12 +53,9 @@ public final class ShardingSphereDataSource extends
AbstractDataSourceAdapter im
private final ContextManager contextManager;
- private final JDBCContext jdbcContext;
-
public ShardingSphereDataSource(final String databaseName, final
ModeConfiguration modeConfig) throws SQLException {
this.databaseName = databaseName;
contextManager = createContextManager(databaseName, modeConfig, new
LinkedHashMap<>(), new LinkedList<>(), new Properties());
- jdbcContext = new
JDBCContext(contextManager.getDataSourceMap(databaseName));
contextManagerInitializedCallback(databaseName, contextManager);
}
@@ -67,7 +63,6 @@ public final class ShardingSphereDataSource extends
AbstractDataSourceAdapter im
final Collection<RuleConfiguration>
ruleConfigs, final Properties props) throws SQLException {
this.databaseName = databaseName;
contextManager = createContextManager(databaseName, modeConfig,
dataSourceMap, ruleConfigs, null == props ? new Properties() : props);
- jdbcContext = new
JDBCContext(contextManager.getDataSourceMap(databaseName));
contextManagerInitializedCallback(databaseName, contextManager);
}
@@ -95,7 +90,7 @@ public final class ShardingSphereDataSource extends
AbstractDataSourceAdapter im
@Override
public Connection getConnection() {
- return DriverStateContext.getConnection(databaseName, contextManager,
jdbcContext);
+ return DriverStateContext.getConnection(databaseName, contextManager);
}
@Override
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
index 10d05ab4c05..cd63fea1119 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaData.java
@@ -48,8 +48,8 @@ public final class ShardingSphereDatabaseMetaData extends
AdaptedDatabaseMetaDat
private DatabaseMetaData currentDatabaseMetaData;
- public ShardingSphereDatabaseMetaData(final ShardingSphereConnection
connection) {
- super(connection.getJdbcContext().getCachedDatabaseMetaData());
+ public ShardingSphereDatabaseMetaData(final ShardingSphereConnection
connection) throws SQLException {
+
super(connection.getDatabaseConnectionManager().getRandomConnection().getMetaData());
this.connection = connection;
rules =
connection.getContextManager().getMetaDataContexts().getMetaData().getDatabase(connection.getDatabaseName()).getRuleMetaData().getRules();
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverState.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverState.java
index d2334302fc7..6e0322b05c8 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverState.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverState.java
@@ -17,10 +17,9 @@
package org.apache.shardingsphere.driver.state;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
-import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
+import org.apache.shardingsphere.mode.manager.ContextManager;
import java.sql.Connection;
@@ -35,8 +34,7 @@ public interface DriverState extends TypedSPI {
*
* @param databaseName database name
* @param contextManager context manager
- * @param jdbcContext JDBC context
* @return connection
*/
- Connection getConnection(String databaseName, ContextManager
contextManager, JDBCContext jdbcContext);
+ Connection getConnection(String databaseName, ContextManager
contextManager);
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverStateContext.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverStateContext.java
index ed621c78d2a..e4cab515d41 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverStateContext.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/DriverStateContext.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.driver.state;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -36,11 +35,10 @@ public final class DriverStateContext {
*
* @param databaseName database name
* @param contextManager context manager
- * @param jdbcContext JDBC context
* @return connection
*/
- public static Connection getConnection(final String databaseName, final
ContextManager contextManager, final JDBCContext jdbcContext) {
+ public static Connection getConnection(final String databaseName, final
ContextManager contextManager) {
return TypedSPILoader.getService(
- DriverState.class,
contextManager.getInstanceContext().getInstance().getState().getCurrentState().name()).getConnection(databaseName,
contextManager, jdbcContext);
+ DriverState.class,
contextManager.getInstanceContext().getInstance().getState().getCurrentState().name()).getConnection(databaseName,
contextManager);
}
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverState.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverState.java
index ef77cda049f..aeba242c0b3 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverState.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverState.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state.circuit;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import org.apache.shardingsphere.driver.state.DriverState;
import
org.apache.shardingsphere.driver.state.circuit.datasource.CircuitBreakerDataSource;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -30,7 +29,7 @@ import java.sql.Connection;
public final class CircuitBreakDriverState implements DriverState {
@Override
- public Connection getConnection(final String databaseName, final
ContextManager contextManager, final JDBCContext jdbcContext) {
+ public Connection getConnection(final String databaseName, final
ContextManager contextManager) {
return new CircuitBreakerDataSource().getConnection();
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/lock/LockDriverState.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/lock/LockDriverState.java
index 4df8be32ccc..e2ac2020c02 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/lock/LockDriverState.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/lock/LockDriverState.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state.lock;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import org.apache.shardingsphere.driver.state.DriverState;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -30,7 +29,7 @@ import java.sql.Connection;
public final class LockDriverState implements DriverState {
@Override
- public Connection getConnection(final String databaseName, final
ContextManager contextManager, final JDBCContext jdbcContext) {
+ public Connection getConnection(final String databaseName, final
ContextManager contextManager) {
// TODO
throw new UnsupportedSQLOperationException("LockDriverState");
}
diff --git
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/ok/OKDriverState.java
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/ok/OKDriverState.java
index 13b31ad35e4..f2dc10227ee 100644
---
a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/ok/OKDriverState.java
+++
b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/state/ok/OKDriverState.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state.ok;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.driver.state.DriverState;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -30,8 +29,8 @@ import java.sql.Connection;
public final class OKDriverState implements DriverState {
@Override
- public Connection getConnection(final String databaseName, final
ContextManager contextManager, final JDBCContext jdbcContext) {
- return new ShardingSphereConnection(databaseName, contextManager,
jdbcContext);
+ public Connection getConnection(final String databaseName, final
ContextManager contextManager) {
+ return new ShardingSphereConnection(databaseName, contextManager);
}
@Override
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
index 1a5a5f973eb..6a61def94d1 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutorTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.driver.executor.batch;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
@@ -90,7 +89,7 @@ class BatchPreparedStatementExecutorTest {
@BeforeEach
void setUp() {
SQLExecutorExceptionHandler.setExceptionThrown(true);
- ShardingSphereConnection connection = new
ShardingSphereConnection("foo_db", mockContextManager(),
mock(JDBCContext.class));
+ ShardingSphereConnection connection = new
ShardingSphereConnection("foo_db", mockContextManager());
executor = new BatchPreparedStatementExecutor(
connection.getContextManager().getMetaDataContexts(), new
JDBCExecutor(executorEngine,
connection.getDatabaseConnectionManager().getConnectionContext()), "foo_db");
when(sqlStatementContext.getTablesContext()).thenReturn(mock(TablesContext.class));
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ConnectionAdapterTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ConnectionAdapterTest.java
index 9a95f919c45..74dc5e0f201 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ConnectionAdapterTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ConnectionAdapterTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.jdbc.adapter;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
@@ -101,6 +100,6 @@ class ConnectionAdapterTest {
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(
new
ShardingSphereRuleMetaData(Arrays.asList(mock(TransactionRule.class,
RETURNS_DEEP_STUBS), new TrafficRule(new
DefaultTrafficRuleConfigurationBuilder().build()))));
- return new ShardingSphereConnection(DefaultDatabase.LOGIC_NAME,
contextManager, mock(JDBCContext.class));
+ return new ShardingSphereConnection(DefaultDatabase.LOGIC_NAME,
contextManager);
}
}
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaDataTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaDataTest.java
deleted file mode 100644
index b01c300809e..00000000000
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/CachedDatabaseMetaDataTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shardingsphere.driver.jdbc.context;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import java.sql.DatabaseMetaData;
-import java.sql.RowIdLifetime;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-class CachedDatabaseMetaDataTest {
-
- @Mock
- private DatabaseMetaData databaseMetaData;
-
- @Test
- void assertGetRowIdLifetimeFromOriginMetaData() throws SQLException {
- RowIdLifetime rowIdLifetime = mock(RowIdLifetime.class);
- when(databaseMetaData.getRowIdLifetime()).thenReturn(rowIdLifetime);
- assertThat(new
CachedDatabaseMetaData(databaseMetaData).getRowIdLifetime(), is(rowIdLifetime));
- }
-
- @Test
- void assertGetRowIdLifetimeFromOriginMetaDataWhenNotSupported() throws
SQLException {
-
when(databaseMetaData.getRowIdLifetime()).thenThrow(SQLFeatureNotSupportedException.class);
- assertThat(new
CachedDatabaseMetaData(databaseMetaData).getRowIdLifetime(),
is(RowIdLifetime.ROWID_UNSUPPORTED));
- }
-
- @Test
- void assertIsGeneratedKeyAlwaysReturned() throws SQLException {
- when(databaseMetaData.generatedKeyAlwaysReturned()).thenReturn(true);
- assertTrue(new
CachedDatabaseMetaData(databaseMetaData).isGeneratedKeyAlwaysReturned());
- }
-
- @Test
- void assertIsGeneratedKeyAlwaysReturnedWhenNotSupported() throws
SQLException {
-
when(databaseMetaData.generatedKeyAlwaysReturned()).thenThrow(AbstractMethodError.class);
- assertFalse(new
CachedDatabaseMetaData(databaseMetaData).isGeneratedKeyAlwaysReturned());
- }
-}
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
deleted file mode 100644
index fef2f2240ae..00000000000
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/context/JDBCContextTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shardingsphere.driver.jdbc.context;
-
-import
org.apache.shardingsphere.driver.state.circuit.datasource.CircuitBreakerDataSource;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.datasource.DataSourceChangedEvent;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import java.sql.SQLException;
-import java.util.Collections;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.mockito.Mockito.mock;
-
-@ExtendWith(MockitoExtension.class)
-class JDBCContextTest {
-
- @Test
- void assertGetCachedDatabaseMetaDataForNullValue() throws Exception {
- assertNull(new
JDBCContext(Collections.emptyMap()).getCachedDatabaseMetaData());
- }
-
- @Test
- void assertGetCachedDatabaseMetaDataForSingleValue() throws SQLException {
- assertNotNull(new JDBCContext(Collections.singletonMap("foo_db", new
CircuitBreakerDataSource())).getCachedDatabaseMetaData());
- }
-
- @Test
- void assertGetCachedDatabaseMetaDataAfterRefreshingExisting() throws
SQLException {
- JDBCContext jdbcContext = new
JDBCContext(Collections.singletonMap("foo_db", new CircuitBreakerDataSource()));
-
jdbcContext.refreshCachedDatabaseMetaData(mock(DataSourceChangedEvent.class));
- assertNull(jdbcContext.getCachedDatabaseMetaData());
- }
-}
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
index e23aa72a6ba..c49702b361c 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.driver.jdbc.core.connection;
import lombok.SneakyThrows;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
@@ -59,7 +58,7 @@ class ShardingSphereConnectionTest {
@BeforeEach
void setUp() {
- connection = new ShardingSphereConnection(DefaultDatabase.LOGIC_NAME,
mockContextManager(), mock(JDBCContext.class));
+ connection = new ShardingSphereConnection(DefaultDatabase.LOGIC_NAME,
mockContextManager());
}
private ContextManager mockContextManager() {
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
index 5dd5de72c59..8ab9e106212 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.jdbc.core.datasource.metadata;
-import org.apache.shardingsphere.driver.jdbc.context.CachedDatabaseMetaData;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import
org.apache.shardingsphere.driver.jdbc.core.resultset.DatabaseMetaDataResultSet;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
@@ -98,8 +97,6 @@ class ShardingSphereDatabaseMetaDataTest {
when(shardingSphereConnection.getDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(metaDataContexts.getMetaData().getDatabase(shardingSphereConnection.getDatabaseName())).thenReturn(database);
- CachedDatabaseMetaData cachedDatabaseMetaData = new
CachedDatabaseMetaData(databaseMetaData);
-
when(shardingSphereConnection.getJdbcContext().getCachedDatabaseMetaData()).thenReturn(cachedDatabaseMetaData);
ShardingRule shardingRule = mockShardingRule();
when(database.getRuleMetaData().getRules()).thenReturn(Collections.singleton(shardingRule));
shardingSphereDatabaseMetaData = new
ShardingSphereDatabaseMetaData(shardingSphereConnection);
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationConnectionTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationConnectionTest.java
index d274f8d02b8..72b4e6e8547 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationConnectionTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationConnectionTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.jdbc.unsupported;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
@@ -44,7 +43,7 @@ class UnsupportedOperationConnectionTest {
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(
new
ShardingSphereRuleMetaData(Arrays.asList(mock(TransactionRule.class,
RETURNS_DEEP_STUBS), mock(TrafficRule.class))));
- shardingSphereConnection = new
ShardingSphereConnection(DefaultDatabase.LOGIC_NAME, contextManager,
mock(JDBCContext.class));
+ shardingSphereConnection = new
ShardingSphereConnection(DefaultDatabase.LOGIC_NAME, contextManager);
}
@Test
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/DriverStateContextTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/DriverStateContextTest.java
index 9a1338a5d15..8bac618b858 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/DriverStateContextTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/DriverStateContextTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
@@ -80,7 +79,7 @@ class DriverStateContextTest {
@Test
void assertGetConnectionWithOkState() {
- Connection actual =
DriverStateContext.getConnection(DefaultDatabase.LOGIC_NAME, contextManager,
mock(JDBCContext.class));
+ Connection actual =
DriverStateContext.getConnection(DefaultDatabase.LOGIC_NAME, contextManager);
assertThat(actual, instanceOf(ShardingSphereConnection.class));
}
}
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverStateTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverStateTest.java
index aba94f7e358..53acbc0af75 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverStateTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/circuit/CircuitBreakDriverStateTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state.circuit;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.state.circuit.connection.CircuitBreakerConnection;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -34,7 +33,7 @@ class CircuitBreakDriverStateTest {
@Test
void assertGetConnection() {
- Connection actual = new
CircuitBreakDriverState().getConnection(DefaultDatabase.LOGIC_NAME,
mock(ContextManager.class, RETURNS_DEEP_STUBS), mock(JDBCContext.class));
+ Connection actual = new
CircuitBreakDriverState().getConnection(DefaultDatabase.LOGIC_NAME,
mock(ContextManager.class, RETURNS_DEEP_STUBS));
assertThat(actual, instanceOf(CircuitBreakerConnection.class));
}
}
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/ok/OKDriverStateTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/ok/OKDriverStateTest.java
index 7e0dec717dd..d148cd575c1 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/ok/OKDriverStateTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/state/ok/OKDriverStateTest.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.driver.state.ok;
-import org.apache.shardingsphere.driver.jdbc.context.JDBCContext;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
@@ -42,7 +41,7 @@ class OKDriverStateTest {
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData())
.thenReturn(new
ShardingSphereRuleMetaData(Arrays.asList(mock(TransactionRule.class,
RETURNS_DEEP_STUBS), mock(TrafficRule.class))));
- Connection actual = new
OKDriverState().getConnection(DefaultDatabase.LOGIC_NAME, contextManager,
mock(JDBCContext.class));
+ Connection actual = new
OKDriverState().getConnection(DefaultDatabase.LOGIC_NAME, contextManager);
assertThat(actual, instanceOf(ShardingSphereConnection.class));
}
}