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 179a989aa8a Refactor DriverExecutor (#31519)
179a989aa8a is described below

commit 179a989aa8a5c7f867275c4a78effbcb4eefca34
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 1 21:56:58 2024 +0800

    Refactor DriverExecutor (#31519)
    
    * Fix table formats for docs
    
    * Refactor DriverExecutor
    
    * Refactor DriverExecutor
---
 .../apache/shardingsphere/driver/executor/DriverExecutor.java    | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
index 86cf6ff9399..4ce0c23713f 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecutor.java
@@ -272,15 +272,16 @@ public final class DriverExecutor implements 
AutoCloseable {
     public int executeUpdate(final ShardingSphereMetaData metaData, final 
ShardingSphereDatabase database, final QueryContext queryContext,
                              final 
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine, 
final TrafficExecutorCallback<Integer> trafficCallback,
                              final ExecuteUpdateCallback updateCallback, final 
StatementReplayCallback statementReplayCallback) throws SQLException {
-        ExecutionContext executionContext = createExecutionContext(metaData, 
database, queryContext);
         Optional<String> trafficInstanceId = 
connection.getTrafficInstanceId(metaData.getGlobalRuleMetaData().getSingleRule(TrafficRule.class),
 queryContext);
         if (trafficInstanceId.isPresent()) {
             return trafficExecutor.execute(connection.getProcessId(), 
database.getName(), trafficInstanceId.get(), queryContext, prepareEngine, 
trafficCallback);
         }
-        boolean isNeedImplicitCommitTransaction = 
isNeedImplicitCommitTransaction(
-                connection, 
queryContext.getSqlStatementContext().getSqlStatement(), 
executionContext.getExecutionUnits().size() > 1);
+        ExecutionContext executionContext = createExecutionContext(metaData, 
database, queryContext);
         return 
database.getRuleMetaData().getAttributes(RawExecutionRuleAttribute.class).isEmpty()
-                ? executeUpdate(database, updateCallback, 
queryContext.getSqlStatementContext(), executionContext, prepareEngine, 
isNeedImplicitCommitTransaction, statementReplayCallback)
+                ? executeUpdate(database, updateCallback, 
queryContext.getSqlStatementContext(), executionContext, prepareEngine,
+                        isNeedImplicitCommitTransaction(connection,
+                                
queryContext.getSqlStatementContext().getSqlStatement(), 
executionContext.getExecutionUnits().size() > 1),
+                        statementReplayCallback)
                 : 
accumulate(rawExecutor.execute(createRawExecutionGroupContext(metaData, 
database, executionContext), queryContext, new RawSQLExecutorCallback()));
     }
     

Reply via email to