This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 33d8943d17d Refactor DriverJDBCExecutor (#31616)
33d8943d17d is described below
commit 33d8943d17d19c2234f1043cee65b7f4503f0842
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 7 13:17:21 2024 +0800
Refactor DriverJDBCExecutor (#31616)
---
.../executor/{ => engine}/DriverExecutorFacade.java | 6 +-----
.../driver/executor/engine/DriverJDBCExecutor.java | 20 +++++++++-----------
.../batch/DriverExecuteBatchExecutor.java | 6 +++---
.../batch/statement/BatchExecutionUnit.java | 2 +-
.../statement/BatchPreparedStatementExecutor.java | 2 +-
.../batch/statement/BatchStatementExecutor.java | 2 +-
.../statement/ShardingSpherePreparedStatement.java | 4 ++--
.../jdbc/core/statement/ShardingSphereStatement.java | 4 ++--
.../batch/statement/BatchExecutionUnitTest.java | 1 +
.../BatchPreparedStatementExecutorTest.java | 2 ++
.../batch/statement/BatchStatementExecutorTest.java | 1 +
11 files changed, 24 insertions(+), 26 deletions(-)
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
similarity index 95%
rename from
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
rename to
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
index 342bd637504..627ca9f1439 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutorFacade.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverExecutorFacade.java
@@ -15,16 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.driver.executor;
+package org.apache.shardingsphere.driver.executor.engine;
import
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
import
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteCallback;
import
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteUpdateCallback;
import
org.apache.shardingsphere.driver.executor.callback.replay.StatementReplayCallback;
-import org.apache.shardingsphere.driver.executor.engine.DriverExecuteExecutor;
-import
org.apache.shardingsphere.driver.executor.engine.DriverExecuteQueryExecutor;
-import
org.apache.shardingsphere.driver.executor.engine.DriverExecuteUpdateExecutor;
-import org.apache.shardingsphere.driver.executor.engine.DriverJDBCExecutor;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.driver.jdbc.core.statement.StatementManager;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverJDBCExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverJDBCExecutor.java
index 874ebb0c4be..f7b92c91084 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverJDBCExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/DriverJDBCExecutor.java
@@ -25,12 +25,12 @@ import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.J
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutorCallback;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.executor.sql.process.ProcessEngine;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.DataNodeRuleAttribute;
import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefreshEngine;
import
org.apache.shardingsphere.mode.service.persist.MetaDataManagerPersistService;
@@ -46,7 +46,7 @@ public final class DriverJDBCExecutor {
private final String databaseName;
- private final MetaDataContexts metaDataContexts;
+ private final ShardingSphereMetaData metaData;
private final MetaDataManagerPersistService metaDataManagerPersistService;
@@ -57,7 +57,7 @@ public final class DriverJDBCExecutor {
public DriverJDBCExecutor(final String databaseName, final ContextManager
contextManager, final JDBCExecutor jdbcExecutor) {
this.databaseName = databaseName;
this.jdbcExecutor = jdbcExecutor;
- metaDataContexts = contextManager.getMetaDataContexts();
+ metaData = contextManager.getMetaDataContexts().getMetaData();
metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
}
@@ -94,9 +94,8 @@ public final class DriverJDBCExecutor {
final QueryContext queryContext, final
Collection<RouteUnit> routeUnits, final JDBCExecutorCallback<Integer> callback)
throws SQLException {
try {
processEngine.executeSQL(executionGroupContext, queryContext);
- SQLStatementContext sqlStatementContext =
queryContext.getSqlStatementContext();
- List<Integer> results = doExecute(executionGroupContext,
sqlStatementContext, routeUnits, callback);
- return
isNeedAccumulate(metaDataContexts.getMetaData().getDatabase(queryContext.getDatabaseNameFromSQLStatement().orElse(databaseName)).getRuleMetaData().getRules(),
sqlStatementContext)
+ List<Integer> results = doExecute(executionGroupContext,
queryContext, routeUnits, callback);
+ return
isNeedAccumulate(metaData.getDatabase(queryContext.getDatabaseNameFromSQLStatement().orElse(databaseName)).getRuleMetaData().getRules(),
queryContext.getSqlStatementContext())
? accumulate(results)
: results.get(0);
} finally {
@@ -136,19 +135,18 @@ public final class DriverJDBCExecutor {
final Collection<RouteUnit> routeUnits, final
JDBCExecutorCallback<Boolean> callback) throws SQLException {
try {
processEngine.executeSQL(executionGroupContext, queryContext);
- List<Boolean> results = doExecute(executionGroupContext,
queryContext.getSqlStatementContext(), routeUnits, callback);
+ List<Boolean> results = doExecute(executionGroupContext,
queryContext, routeUnits, callback);
return null != results && !results.isEmpty() && null !=
results.get(0) && results.get(0);
} finally {
processEngine.completeSQLExecution(executionGroupContext.getReportContext().getProcessId());
}
}
- private <T> List<T> doExecute(final
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext, final
SQLStatementContext sqlStatementContext, final Collection<RouteUnit> routeUnits,
+ private <T> List<T> doExecute(final
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext, final
QueryContext queryContext, final Collection<RouteUnit> routeUnits,
final JDBCExecutorCallback<T> callback)
throws SQLException {
List<T> results = jdbcExecutor.execute(executionGroupContext,
callback);
- new MetaDataRefreshEngine(metaDataManagerPersistService,
metaDataContexts.getMetaData().getDatabase(sqlStatementContext.getTablesContext().getDatabaseName().orElse(databaseName)),
- metaDataContexts.getMetaData().getProps())
- .refresh(sqlStatementContext, routeUnits);
+ new MetaDataRefreshEngine(metaDataManagerPersistService,
+
metaData.getDatabase(queryContext.getDatabaseNameFromSQLStatement().orElse(databaseName)),
metaData.getProps()).refresh(queryContext.getSqlStatementContext(),
routeUnits);
return results;
}
}
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/DriverExecuteBatchExecutor.java
similarity index 97%
rename from
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
rename to
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/DriverExecuteBatchExecutor.java
index 920b2ec16db..8e7f2a7cc0e 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/DriverExecuteBatchExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/DriverExecuteBatchExecutor.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.driver.executor.batch;
+package org.apache.shardingsphere.driver.executor.engine.batch;
import lombok.Getter;
-import
org.apache.shardingsphere.driver.executor.batch.statement.BatchExecutionUnit;
-import
org.apache.shardingsphere.driver.executor.batch.statement.BatchPreparedStatementExecutor;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchExecutionUnit;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchPreparedStatementExecutor;
import
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
import
org.apache.shardingsphere.driver.executor.callback.keygen.GeneratedKeyCallback;
import
org.apache.shardingsphere.driver.executor.callback.replay.PreparedStatementParametersReplayCallback;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnit.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchExecutionUnit.java
similarity index 97%
rename from
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnit.java
rename to
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchExecutionUnit.java
index 04efa4e7a84..1795175d5cf 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnit.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchExecutionUnit.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.driver.executor.batch.statement;
+package org.apache.shardingsphere.driver.executor.engine.batch.statement;
import com.google.common.collect.Lists;
import lombok.AccessLevel;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchPreparedStatementExecutor.java
similarity index 99%
rename from
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutor.java
rename to
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchPreparedStatementExecutor.java
index e2b24e58969..3ea96d70963 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchPreparedStatementExecutor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.driver.executor.batch.statement;
+package org.apache.shardingsphere.driver.executor.engine.batch.statement;
import lombok.Getter;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutor.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchStatementExecutor.java
similarity index 96%
rename from
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutor.java
rename to
jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchStatementExecutor.java
index 97ad7d8d8be..b4c91cd0cc6 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutor.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/engine/batch/statement/BatchStatementExecutor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.driver.executor.batch.statement;
+package org.apache.shardingsphere.driver.executor.engine.batch.statement;
import lombok.RequiredArgsConstructor;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 20a498f8f44..2cc9f929883 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.driver.jdbc.core.statement;
import lombok.AccessLevel;
import lombok.Getter;
-import org.apache.shardingsphere.driver.executor.DriverExecutorFacade;
-import
org.apache.shardingsphere.driver.executor.batch.DriverExecuteBatchExecutor;
+import org.apache.shardingsphere.driver.executor.engine.DriverExecutorFacade;
+import
org.apache.shardingsphere.driver.executor.engine.batch.DriverExecuteBatchExecutor;
import
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
import
org.apache.shardingsphere.driver.jdbc.adapter.AbstractPreparedStatementAdapter;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
diff --git
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index d0035f2c255..39be96ecae8 100644
---
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.driver.jdbc.core.statement;
import lombok.AccessLevel;
import lombok.Getter;
-import org.apache.shardingsphere.driver.executor.DriverExecutorFacade;
-import
org.apache.shardingsphere.driver.executor.batch.statement.BatchStatementExecutor;
+import org.apache.shardingsphere.driver.executor.engine.DriverExecutorFacade;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchStatementExecutor;
import
org.apache.shardingsphere.driver.executor.callback.add.StatementAddCallback;
import
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteCallback;
import
org.apache.shardingsphere.driver.executor.callback.execute.StatementExecuteUpdateCallback;
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnitTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnitTest.java
index a6aadabed3f..32c0a6f010c 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnitTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchExecutionUnitTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.driver.executor.batch.statement;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.context.SQLUnit;
import org.junit.jupiter.api.Test;
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutorTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutorTest.java
index 2578614e16d..88eb374a8c3 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutorTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchPreparedStatementExecutorTest.java
@@ -18,6 +18,8 @@
package org.apache.shardingsphere.driver.executor.batch.statement;
import lombok.SneakyThrows;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchExecutionUnit;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchPreparedStatementExecutor;
import
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
diff --git
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutorTest.java
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutorTest.java
index c3d7636cfed..2976cc0aab8 100644
---
a/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutorTest.java
+++
b/jdbc/src/test/java/org/apache/shardingsphere/driver/executor/batch/statement/BatchStatementExecutorTest.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.driver.executor.batch.statement;
+import
org.apache.shardingsphere.driver.executor.engine.batch.statement.BatchStatementExecutor;
import org.junit.jupiter.api.Test;
import java.sql.SQLException;