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;

Reply via email to