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 64d2481 Use new functions instead of the old one in SchemaContext
(#6763)
64d2481 is described below
commit 64d2481c8eb6319a7804f707032e08345c7175de
Author: Juan Pan(Trista) <[email protected]>
AuthorDate: Mon Aug 10 18:58:25 2020 +0800
Use new functions instead of the old one in SchemaContext (#6763)
---
.../core/schema/OrchestrationSchemaContexts.java | 6 +++---
.../driver/executor/PreparedStatementExecutor.java | 10 +++++-----
.../shardingsphere/driver/executor/StatementExecutor.java | 14 +++++---------
.../executor/batch/BatchPreparedStatementExecutor.java | 4 +---
.../jdbc/core/datasource/ShardingSphereDataSource.java | 2 +-
.../core/statement/ShardingSpherePreparedStatement.java | 2 +-
.../jdbc/core/statement/ShardingSphereStatement.java | 2 +-
.../driver/executor/AbstractBaseExecutorTest.java | 2 +-
.../jdbc/core/connection/ShardingSphereConnectionTest.java | 2 +-
.../jdbc/core/datasource/ShardingSphereDataSourceTest.java | 3 +--
.../datasource/OrchestrationShardingSphereDataSource.java | 2 +-
.../shardingsphere/spring/AbstractSpringJUnitTest.java | 2 +-
.../kernel/context/SchemaContextsBuilder.java | 2 +-
.../kernel/context/schema/ShardingSphereSchema.java | 6 +-----
.../jdbc/JDBCDatabaseCommunicationEngine.java | 8 ++++----
.../communication/jdbc/connection/BackendConnection.java | 6 ++++--
.../jdbc/execute/engine/RegistryCenterExecuteEngine.java | 2 +-
.../jdbc/execute/engine/jdbc/ProxySQLExecutorCallback.java | 3 ++-
.../sctl/explain/ShardingCTLExplainBackendHandlerTest.java | 3 +--
.../proxy/frontend/netty/ServerHandlerInitializer.java | 2 +-
20 files changed, 37 insertions(+), 46 deletions(-)
diff --git
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-schema/src/main/java/org/apache/shardingsphere/orchestration/core/schema/OrchestrationSchemaContexts.java
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-schema/src/main/java/org/apache/shardingsphere/orchestration/core/schema/OrchestrationSchemaContexts.java
index 0d9cae7..6d173f1 100644
---
a/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-schema/src/main/java/org/apache/shardingsphere/orchestration/core/schema/OrchestrationSchemaContexts.java
+++
b/shardingsphere-control-panel/shardingsphere-orchestration/shardingsphere-orchestration-core/shardingsphere-orchestration-core-schema/src/main/java/org/apache/shardingsphere/orchestration/core/schema/OrchestrationSchemaContexts.java
@@ -354,14 +354,14 @@ public abstract class OrchestrationSchemaContexts
implements SchemaContexts {
private ShardingSphereSchema getChangedShardingSphereSchema(final
ShardingSphereSchema oldShardingSphereSchema, final RuleSchemaMetaData
newRuleSchemaMetaData) {
ShardingSphereMetaData metaData = new
ShardingSphereMetaData(oldShardingSphereSchema.getMetaData().getDataSources(),
newRuleSchemaMetaData);
- return new
ShardingSphereSchema(oldShardingSphereSchema.getDatabaseType(),
oldShardingSphereSchema.getConfigurations(),
+ return new
ShardingSphereSchema(oldShardingSphereSchema.getConfigurations(),
oldShardingSphereSchema.getRules(),
oldShardingSphereSchema.getDataSources(), metaData);
}
private SchemaContext getChangedSchemaContext(final SchemaContext
oldSchemaContext, final Collection<RuleConfiguration> configurations) throws
SQLException {
ShardingSphereSchema oldSchema = oldSchemaContext.getSchema();
SchemaContextsBuilder builder = new
SchemaContextsBuilder(Collections.singletonMap(oldSchemaContext.getName(),
oldSchema.getDataSources()),
- oldSchema.getDatabaseType(),
Collections.singletonMap(oldSchemaContext.getName(), configurations),
schemaContexts.getAuthentication(), schemaContexts.getProps().getProps());
+ schemaContexts.getDatabaseType(),
Collections.singletonMap(oldSchemaContext.getName(), configurations),
schemaContexts.getAuthentication(), schemaContexts.getProps().getProps());
return builder.build().getSchemaContexts().values().iterator().next();
}
@@ -373,7 +373,7 @@ public abstract class OrchestrationSchemaContexts
implements SchemaContexts {
oldSchemaContext.getRuntimeContext().getTransactionManagerEngine().close();
Map<String, Map<String, DataSource>> dataSourcesMap =
Collections.singletonMap(oldSchemaContext.getName(),
getNewDataSources(oldSchemaContext.getSchema().getDataSources(),
deletedDataSources, getAddedDataSources(oldSchemaContext,
newDataSources), modifiedDataSources));
- return new SchemaContextsBuilder(dataSourcesMap,
oldSchemaContext.getSchema().getDatabaseType(),
+ return new SchemaContextsBuilder(dataSourcesMap,
schemaContexts.getDatabaseType(),
Collections.singletonMap(oldSchemaContext.getName(),
oldSchemaContext.getSchema().getConfigurations()),
schemaContexts.getAuthentication(),
schemaContexts.getProps().getProps()).build().getSchemaContexts().get(oldSchemaContext.getName());
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/PreparedStatementExecutor.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/PreparedStatementExecutor.java
index e5b53972..31bd219 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/PreparedStatementExecutor.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/PreparedStatementExecutor.java
@@ -76,7 +76,7 @@ public final class PreparedStatementExecutor {
}
private DefaultSQLExecutorCallback<QueryResult>
createDefaultSQLExecutorCallbackWithQueryResult(final boolean
isExceptionThrown) {
- return new
DefaultSQLExecutorCallback<QueryResult>(schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType(),
isExceptionThrown) {
+ return new
DefaultSQLExecutorCallback<QueryResult>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected QueryResult executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -110,7 +110,7 @@ public final class PreparedStatementExecutor {
}
private DefaultSQLExecutorCallback<Integer>
createDefaultSQLExecutorCallbackWithInteger(final boolean isExceptionThrown) {
- return new
DefaultSQLExecutorCallback<Integer>(schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType(),
isExceptionThrown) {
+ return new
DefaultSQLExecutorCallback<Integer>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected Integer executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -151,7 +151,7 @@ public final class PreparedStatementExecutor {
}
private DefaultSQLExecutorCallback<Boolean>
createDefaultSQLExecutorCallbackWithBoolean(final boolean isExceptionThrown) {
- return new
DefaultSQLExecutorCallback<Boolean>(schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType(),
isExceptionThrown) {
+ return new
DefaultSQLExecutorCallback<Boolean>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected Boolean executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -168,8 +168,8 @@ public final class PreparedStatementExecutor {
Optional<MetaDataRefreshStrategy> refreshStrategy =
MetaDataRefreshStrategyFactory.newInstance(sqlStatementContext);
if (refreshStrategy.isPresent()) {
RuleSchemaMetaDataLoader metaDataLoader = new
RuleSchemaMetaDataLoader(schemaContext.getSchema().getRules());
-
refreshStrategy.get().refreshMetaData(schemaContext.getSchema().getMetaData(),
schemaContext.getSchema().getDatabaseType(),
- dataSourceMap, sqlStatementContext, tableName ->
metaDataLoader.load(schemaContext.getSchema().getDatabaseType(),
+
refreshStrategy.get().refreshMetaData(schemaContext.getSchema().getMetaData(),
schemaContexts.getDatabaseType(),
+ dataSourceMap, sqlStatementContext, tableName ->
metaDataLoader.load(schemaContexts.getDatabaseType(),
dataSourceMap, tableName,
schemaContexts.getProps()));
MetaDataCallback.getInstance().run(DefaultSchema.LOGIC_NAME,
schemaContext.getSchema().getMetaData().getSchema());
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/StatementExecutor.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/StatementExecutor.java
index 1ccb974..075a80f 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/StatementExecutor.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/StatementExecutor.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.driver.executor;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.callback.orchestration.MetaDataCallback;
import org.apache.shardingsphere.infra.database.DefaultSchema;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.executor.kernel.InputGroup;
import org.apache.shardingsphere.infra.executor.sql.ConnectionMode;
import org.apache.shardingsphere.infra.executor.sql.QueryResult;
@@ -71,8 +70,7 @@ public final class StatementExecutor {
*/
public List<QueryResult> executeQuery(final
Collection<InputGroup<StatementExecuteUnit>> inputGroups) throws SQLException {
boolean isExceptionThrown =
ExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType =
schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType();
- SQLExecutorCallback<QueryResult> sqlExecutorCallback = new
DefaultSQLExecutorCallback<QueryResult>(databaseType, isExceptionThrown) {
+ SQLExecutorCallback<QueryResult> sqlExecutorCallback = new
DefaultSQLExecutorCallback<QueryResult>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected QueryResult executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -141,8 +139,7 @@ public final class StatementExecutor {
@SuppressWarnings("unchecked")
private int executeUpdate(final
Collection<InputGroup<StatementExecuteUnit>> inputGroups, final Updater
updater, final SQLStatementContext sqlStatementContext) throws SQLException {
boolean isExceptionThrown =
ExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType =
schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType();
- SQLExecutorCallback sqlExecutorCallback = new
DefaultSQLExecutorCallback<Integer>(databaseType, isExceptionThrown) {
+ SQLExecutorCallback sqlExecutorCallback = new
DefaultSQLExecutorCallback<Integer>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected Integer executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -224,8 +221,7 @@ public final class StatementExecutor {
@SuppressWarnings("unchecked")
private boolean execute(final Collection<InputGroup<StatementExecuteUnit>>
inputGroups, final Executor executor, final SQLStatementContext
sqlStatementContext) throws SQLException {
boolean isExceptionThrown =
ExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType =
schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType();
- SQLExecutorCallback sqlExecutorCallback = new
DefaultSQLExecutorCallback<Boolean>(databaseType, isExceptionThrown) {
+ SQLExecutorCallback sqlExecutorCallback = new
DefaultSQLExecutorCallback<Boolean>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected Boolean executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
@@ -248,8 +244,8 @@ public final class StatementExecutor {
Optional<MetaDataRefreshStrategy> refreshStrategy =
MetaDataRefreshStrategyFactory.newInstance(sqlStatementContext);
if (refreshStrategy.isPresent()) {
RuleSchemaMetaDataLoader metaDataLoader = new
RuleSchemaMetaDataLoader(schemaContext.getSchema().getRules());
-
refreshStrategy.get().refreshMetaData(schemaContext.getSchema().getMetaData(),
schemaContext.getSchema().getDatabaseType(), dataSourceMap, sqlStatementContext,
- tableName ->
metaDataLoader.load(schemaContext.getSchema().getDatabaseType(), dataSourceMap,
tableName, schemaContexts.getProps()));
+
refreshStrategy.get().refreshMetaData(schemaContext.getSchema().getMetaData(),
schemaContexts.getDatabaseType(), dataSourceMap, sqlStatementContext,
+ tableName ->
metaDataLoader.load(schemaContexts.getDatabaseType(), dataSourceMap, tableName,
schemaContexts.getProps()));
MetaDataCallback.getInstance().run(DefaultSchema.LOGIC_NAME,
schemaContext.getSchema().getMetaData().getSchema());
}
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
index 0be7fe8..379e443 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/batch/BatchPreparedStatementExecutor.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.driver.executor.batch;
import com.google.common.base.Preconditions;
import lombok.Getter;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.executor.kernel.InputGroup;
import org.apache.shardingsphere.infra.executor.sql.ConnectionMode;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
@@ -120,8 +119,7 @@ public final class BatchPreparedStatementExecutor {
*/
public int[] executeBatch(final SQLStatementContext sqlStatementContext)
throws SQLException {
boolean isExceptionThrown =
ExecutorExceptionHandler.isExceptionThrown();
- DatabaseType databaseType =
schemaContexts.getDefaultSchemaContext().getSchema().getDatabaseType();
- SQLExecutorCallback<int[]> callback = new
DefaultSQLExecutorCallback<int[]>(databaseType, isExceptionThrown) {
+ SQLExecutorCallback<int[]> callback = new
DefaultSQLExecutorCallback<int[]>(schemaContexts.getDatabaseType(),
isExceptionThrown) {
@Override
protected int[] executeSQL(final String sql, final Statement
statement, final ConnectionMode connectionMode) throws SQLException {
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 3e4ae5c..4c7a8e1 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -73,7 +73,7 @@ public final class ShardingSphereDataSource extends
AbstractUnsupportedOperation
private DatabaseType createDatabaseType(final DataSource dataSource)
throws SQLException {
if (dataSource instanceof ShardingSphereDataSource) {
- return ((ShardingSphereDataSource)
dataSource).schemaContexts.getSchemaContexts().get(DefaultSchema.LOGIC_NAME).getSchema().getDatabaseType();
+ return ((ShardingSphereDataSource)
dataSource).schemaContexts.getDatabaseType();
}
try (Connection connection = dataSource.getConnection()) {
return
DatabaseTypes.getDatabaseTypeByURL(connection.getMetaData().getURL());
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 7721d19..fc9ca7a 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -268,7 +268,7 @@ public final class ShardingSpherePreparedStatement extends
AbstractPreparedState
private MergedResult mergeQuery(final List<QueryResult> queryResults)
throws SQLException {
SchemaContext schemaContext = schemaContexts.getDefaultSchemaContext();
- MergeEngine mergeEngine = new
MergeEngine(schemaContext.getSchema().getDatabaseType(),
+ MergeEngine mergeEngine = new
MergeEngine(schemaContexts.getDatabaseType(),
schemaContext.getSchema().getMetaData().getSchema().getConfiguredSchemaMetaData(),
schemaContexts.getProps(), schemaContext.getSchema().getRules());
return mergeEngine.merge(queryResults,
executionContext.getSqlStatementContext());
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index fd98ea5..c8bb9b4 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -364,7 +364,7 @@ public final class ShardingSphereStatement extends
AbstractStatementAdapter {
private MergedResult mergeQuery(final List<QueryResult> queryResults)
throws SQLException {
SchemaContext schemaContext = schemaContexts.getDefaultSchemaContext();
- MergeEngine mergeEngine = new
MergeEngine(schemaContext.getSchema().getDatabaseType(),
+ MergeEngine mergeEngine = new
MergeEngine(schemaContexts.getDatabaseType(),
schemaContext.getSchema().getMetaData().getSchema().getConfiguredSchemaMetaData(),
schemaContexts.getProps(), schemaContext.getSchema().getRules());
return mergeEngine.merge(queryResults,
executionContext.getSqlStatementContext());
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
index 205e70c..cf970d4 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
@@ -77,7 +77,7 @@ public abstract class AbstractBaseExecutorTest {
when(runtimeContext.getExecutorKernel()).thenReturn(executorKernel);
when(schemaContexts.getProps()).thenReturn(getProperties());
when(schemaContext.getSchema()).thenReturn(schema);
-
when(schema.getDatabaseType()).thenReturn(DatabaseTypes.getActualDatabaseType("H2"));
+
when(schemaContexts.getDatabaseType()).thenReturn(DatabaseTypes.getActualDatabaseType("H2"));
ShardingRule shardingRule = getShardingRule();
when(schema.getRules()).thenReturn(Collections.singletonList(shardingRule));
when(runtimeContext.getTransactionManagerEngine()).thenReturn(new
ShardingTransactionManagerEngine());
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
index 5154777..af28a11 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/connection/ShardingSphereConnectionTest.java
@@ -81,7 +81,7 @@ public final class ShardingSphereConnectionTest {
RuntimeContext runtimeContext = mock(RuntimeContext.class);
when(schemaContexts.getDefaultSchemaContext()).thenReturn(schemaContext);
when(schemaContext.getSchema()).thenReturn(schema);
-
when(schema.getDatabaseType()).thenReturn(DatabaseTypes.getActualDatabaseType("H2"));
+
when(schemaContexts.getDatabaseType()).thenReturn(DatabaseTypes.getActualDatabaseType("H2"));
when(schemaContext.getRuntimeContext()).thenReturn(runtimeContext);
when(runtimeContext.getTransactionManagerEngine()).thenReturn(new
ShardingTransactionManagerEngine());
ShardingRuleConfiguration shardingRuleConfig = new
ShardingRuleConfiguration();
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
index 51781e6..1a3b954 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.driver.jdbc.core.datasource;
import com.google.common.base.Joiner;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import
org.apache.shardingsphere.driver.jdbc.core.fixture.XAShardingTransactionManagerFixture;
-import org.apache.shardingsphere.infra.database.DefaultSchema;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypes;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
@@ -100,7 +99,7 @@ public final class ShardingSphereDataSourceTest {
private void assertDatabaseProductName(final Map<String, DataSource>
dataSourceMap, final Connection... connections) throws SQLException {
try {
-
assertThat(createShardingSphereDataSource(dataSourceMap).getSchemaContexts().getSchemaContexts().get(DefaultSchema.LOGIC_NAME).getSchema().getDatabaseType(),
+
assertThat(createShardingSphereDataSource(dataSourceMap).getSchemaContexts().getDatabaseType(),
instanceOf(H2DatabaseType.class));
} finally {
for (Connection each : connections) {
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
index f0e1ce2..fc58365 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/datasource/OrchestrationShardingSphereDataSource.java
@@ -315,7 +315,7 @@ public final class OrchestrationShardingSphereDataSource
extends AbstractUnsuppo
private ShardingSphereSchema getChangedSchema(final ShardingSphereSchema
oldSchema, final RuleSchemaMetaData newRuleSchemaMetaData) {
ShardingSphereMetaData metaData = new
ShardingSphereMetaData(oldSchema.getMetaData().getDataSources(),
newRuleSchemaMetaData);
- return new ShardingSphereSchema(oldSchema.getDatabaseType(),
oldSchema.getConfigurations(), oldSchema.getRules(),
oldSchema.getDataSources(), metaData);
+ return new ShardingSphereSchema(oldSchema.getConfigurations(),
oldSchema.getRules(), oldSchema.getDataSources(), metaData);
}
/**
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
index ce0d50c..19e5a22 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
@@ -95,7 +95,7 @@ public abstract class AbstractSpringJUnitTest extends
AbstractJUnit4SpringContex
private SchemaContextsBuilder createSchemaContextsBuilder() {
Map<String, Map<String, DataSource>> dataSources =
Collections.singletonMap(DefaultSchema.LOGIC_NAME,
shardingSphereDataSource.getDataSourceMap());
- DatabaseType databaseType =
shardingSphereDataSource.getSchemaContexts().getDefaultSchemaContext().getSchema().getDatabaseType();
+ DatabaseType databaseType =
shardingSphereDataSource.getSchemaContexts().getDatabaseType();
Map<String, Collection<RuleConfiguration>> configurations =
Collections.singletonMap(DefaultSchema.LOGIC_NAME,
shardingSphereDataSource.getSchemaContexts().getDefaultSchemaContext().getSchema().getConfigurations());
return new SchemaContextsBuilder(dataSources, databaseType,
configurations,
shardingSphereDataSource.getSchemaContexts().getProps().getProps());
diff --git
a/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/SchemaContextsBuilder.java
b/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/SchemaContextsBuilder.java
index 4b1e50e..6b74eda 100644
---
a/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/SchemaContextsBuilder.java
+++
b/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/SchemaContextsBuilder.java
@@ -121,7 +121,7 @@ public final class SchemaContextsBuilder {
Map<String, DataSource> dataSources = this.dataSources.get(schemaName);
Collection<RuleConfiguration> ruleConfigurations =
this.ruleConfigurations.get(schemaName);
Collection<ShardingSphereRule> rules =
ShardingSphereRulesBuilder.build(ruleConfigurations, dataSources.keySet());
- return new ShardingSphereSchema(databaseType, ruleConfigurations,
rules, dataSources, createMetaData(dataSources, rules));
+ return new ShardingSphereSchema(ruleConfigurations, rules,
dataSources, createMetaData(dataSources, rules));
}
private ShardingSphereMetaData createMetaData(final Map<String,
DataSource> dataSourceMap, final Collection<ShardingSphereRule> rules) throws
SQLException {
diff --git
a/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/schema/ShardingSphereSchema.java
b/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/schema/ShardingSphereSchema.java
index a3c3de8..074276d 100644
---
a/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/schema/ShardingSphereSchema.java
+++
b/shardingsphere-kernel/shardingsphere-kernel-context/src/main/java/org/apache/shardingsphere/kernel/context/schema/ShardingSphereSchema.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.kernel.context.schema;
import lombok.Getter;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -36,8 +35,6 @@ import java.util.Map;
@Getter
public final class ShardingSphereSchema {
- private final DatabaseType databaseType;
-
private final Collection<RuleConfiguration> configurations = new
LinkedList<>();
private final Collection<ShardingSphereRule> rules = new LinkedList<>();
@@ -46,9 +43,8 @@ public final class ShardingSphereSchema {
private final ShardingSphereMetaData metaData;
- public ShardingSphereSchema(final DatabaseType databaseType, final
Collection<RuleConfiguration> configurations, final
Collection<ShardingSphereRule> rules,
+ public ShardingSphereSchema(final Collection<RuleConfiguration>
configurations, final Collection<ShardingSphereRule> rules,
final Map<String, DataSource> dataSourceMap,
final ShardingSphereMetaData shardingSphereMetaData) {
- this.databaseType = databaseType;
this.configurations.addAll(configurations);
this.rules.addAll(rules);
dataSources.putAll(dataSourceMap);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index aac5d16..6cb82fc 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -126,15 +126,15 @@ public final class JDBCDatabaseCommunicationEngine
implements DatabaseCommunicat
}
Optional<MetaDataRefreshStrategy> refreshStrategy =
MetaDataRefreshStrategyFactory.newInstance(sqlStatementContext);
if (refreshStrategy.isPresent()) {
-
refreshStrategy.get().refreshMetaData(schema.getSchema().getMetaData(),
- schema.getSchema().getDatabaseType(),
schema.getSchema().getDataSources(), sqlStatementContext,
this::loadTableMetaData);
+
refreshStrategy.get().refreshMetaData(schema.getSchema().getMetaData(),
ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType(),
+ schema.getSchema().getDataSources(), sqlStatementContext,
this::loadTableMetaData);
MetaDataCallback.getInstance().run(schema.getName(),
schema.getSchema().getMetaData().getSchema());
}
}
private Optional<TableMetaData> loadTableMetaData(final String tableName)
throws SQLException {
RuleSchemaMetaDataLoader loader = new
RuleSchemaMetaDataLoader(schema.getSchema().getRules());
- return loader.load(schema.getSchema().getDatabaseType(),
+ return
loader.load(ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType(),
schema.getSchema().getDataSources(), tableName,
ProxySchemaContexts.getInstance().getSchemaContexts().getProps());
}
@@ -159,7 +159,7 @@ public final class JDBCDatabaseCommunicationEngine
implements DatabaseCommunicat
}
private MergedResult mergeQuery(final SQLStatementContext
sqlStatementContext, final List<QueryResult> queryResults) throws SQLException {
- MergeEngine mergeEngine = new
MergeEngine(schema.getSchema().getDatabaseType(),
+ MergeEngine mergeEngine = new
MergeEngine(ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType(),
schema.getSchema().getMetaData().getSchema().getConfiguredSchemaMetaData(),
ProxySchemaContexts.getInstance().getSchemaContexts().getProps(),
schema.getSchema().getRules());
return mergeEngine.merge(queryResults, sqlStatementContext);
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
index 296688f..f147e1a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/connection/BackendConnection.java
@@ -24,6 +24,7 @@ import lombok.Getter;
import lombok.Setter;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
@@ -213,9 +214,10 @@ public final class BackendConnection implements
JDBCExecutionConnection, AutoClo
}
private void setFetchSize(final Statement statement) throws SQLException {
- if (schema.getSchema().getDatabaseType() instanceof MySQLDatabaseType)
{
+ DatabaseType databaseType =
ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType();
+ if (databaseType instanceof MySQLDatabaseType) {
statement.setFetchSize(MYSQL_MEMORY_FETCH_ONE_ROW_A_TIME);
- } else if (schema.getSchema().getDatabaseType() instanceof
PostgreSQLDatabaseType) {
+ } else if (databaseType instanceof PostgreSQLDatabaseType) {
statement.setFetchSize(POSTGRESQL_MEMORY_FETCH_ONE_ROW_A_TIME);
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/RegistryCenterExecuteEngine.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/RegistryCenterExecuteEngine.java
index 6dcfa5b..91af073 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/RegistryCenterExecuteEngine.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/RegistryCenterExecuteEngine.java
@@ -61,7 +61,7 @@ public final class RegistryCenterExecuteEngine implements
SQLExecuteEngine {
@Override
public ExecutionContext execute(final String sql) {
- DatabaseType databaseType =
ProxySchemaContexts.getInstance().getSchemaContexts().getSchemaContexts().get(schemaName).getSchema().getDatabaseType();
+ DatabaseType databaseType =
ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType();
SQLStatementContext<?> sqlStatementContext = sqlStatement instanceof
CreateDataSourcesStatement
? new
CreateDataSourcesStatementContext((CreateDataSourcesStatement) sqlStatement,
databaseType)
: new
CreateShardingRuleStatementContext((CreateShardingRuleStatement) sqlStatement);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/jdbc/ProxySQLExecutorCallback.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/jdbc/ProxySQLExecutorCallback.java
index 4309266..23c662d 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/jdbc/ProxySQLExecutorCallback.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/execute/engine/jdbc/ProxySQLExecutorCallback.java
@@ -29,6 +29,7 @@ import
org.apache.shardingsphere.infra.executor.sql.resourced.jdbc.queryresult.S
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
import
org.apache.shardingsphere.proxy.backend.communication.jdbc.wrapper.JDBCExecutorWrapper;
import
org.apache.shardingsphere.proxy.backend.response.query.QueryHeaderBuilder;
+import org.apache.shardingsphere.proxy.backend.schema.ProxySchemaContexts;
import
org.apache.shardingsphere.sql.parser.binder.segment.select.projection.ProjectionsContext;
import
org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext;
import
org.apache.shardingsphere.sql.parser.binder.statement.dml.SelectStatementContext;
@@ -59,7 +60,7 @@ public final class ProxySQLExecutorCallback extends
DefaultSQLExecutorCallback<E
public ProxySQLExecutorCallback(final SQLStatementContext
sqlStatementContext, final BackendConnection backendConnection, final
JDBCExecutorWrapper jdbcExecutorWrapper,
final boolean isExceptionThrown, final
boolean isReturnGeneratedKeys, final boolean fetchMetaData) {
- super(backendConnection.getSchema().getSchema().getDatabaseType(),
isExceptionThrown);
+
super(ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType(),
isExceptionThrown);
this.sqlStatementContext = sqlStatementContext;
this.backendConnection = backendConnection;
this.jdbcExecutorWrapper = jdbcExecutorWrapper;
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
index 9b9f38d..869f542 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandlerTest.java
@@ -1,6 +1,5 @@
package org.apache.shardingsphere.proxy.backend.text.sctl.explain;
-import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.kernel.context.SchemaContext;
import org.apache.shardingsphere.kernel.context.runtime.RuntimeContext;
import org.apache.shardingsphere.kernel.context.schema.ShardingSphereSchema;
@@ -49,7 +48,7 @@ public final class ShardingCTLExplainBackendHandlerTest {
private SchemaContext createSchemaContext() {
RuntimeContext runtimeContext = new RuntimeContext(null, null, new
ShardingSphereSQLParserEngine(new StandardSQLParserEngine("MySQL")), null);
- ShardingSphereSchema schema = new ShardingSphereSchema(new
MySQLDatabaseType(), Collections.emptyList(),
+ ShardingSphereSchema schema = new
ShardingSphereSchema(Collections.emptyList(),
Collections.emptyList(), Collections.singletonMap("ds0",
mock(DataSource.class)), null);
return new SchemaContext("c1", schema, runtimeContext);
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
index 8b27780..a51efee 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/ServerHandlerInitializer.java
@@ -38,7 +38,7 @@ public final class ServerHandlerInitializer extends
ChannelInitializer<SocketCha
protected void initChannel(final SocketChannel socketChannel) {
// TODO Consider loading from configuration.
DatabaseType databaseType =
ProxySchemaContexts.getInstance().getSchemaContexts().getSchemaContexts().isEmpty()
? new MySQLDatabaseType()
- :
ProxySchemaContexts.getInstance().getSchemaContexts().getSchemaContexts().values().iterator().next().getSchema().getDatabaseType();
+ :
ProxySchemaContexts.getInstance().getSchemaContexts().getDatabaseType();
DatabaseProtocolFrontendEngine databaseProtocolFrontendEngine =
DatabaseProtocolFrontendEngineFactory.newInstance(databaseType);
ChannelPipeline pipeline = socketChannel.pipeline();
pipeline.addLast(new
PacketCodec(databaseProtocolFrontendEngine.getCodecEngine()));