You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ch...@apache.org on 2024/06/05 11:18:57 UTC

(shardingsphere) branch master updated: Move ShardingSpherePreparedStatement.executionContext into DriverExecuteBatchExecutor (#31595)

This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 156475b01e5 Move ShardingSpherePreparedStatement.executionContext into DriverExecuteBatchExecutor (#31595)
156475b01e5 is described below

commit 156475b01e540d1325057544da0885792fbc68aa
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed Jun 5 19:18:52 2024 +0800

    Move ShardingSpherePreparedStatement.executionContext into DriverExecuteBatchExecutor (#31595)
---
 .../driver/executor/DriverExecuteBatchExecutor.java            | 10 +++++-----
 .../jdbc/core/statement/ShardingSpherePreparedStatement.java   |  7 ++-----
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecuteBatchExecutor.java b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecuteBatchExecutor.java
index 3d15c60b399..d1b78b4be38 100644
--- a/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecuteBatchExecutor.java
+++ b/jdbc/src/main/java/org/apache/shardingsphere/driver/executor/DriverExecuteBatchExecutor.java
@@ -65,6 +65,8 @@ public final class DriverExecuteBatchExecutor {
     @Getter
     private final BatchPreparedStatementExecutor batchPreparedStatementExecutor;
     
+    private ExecutionContext executionContext;
+    
     public DriverExecuteBatchExecutor(final ShardingSphereConnection connection, final ShardingSphereMetaData metaData, final ShardingSphereDatabase database, final JDBCExecutor jdbcExecutor) {
         this.connection = connection;
         this.metaData = metaData;
@@ -76,13 +78,12 @@ public final class DriverExecuteBatchExecutor {
      * 
      * @param queryContext query context
      * @param database database
-     * @return execution context
      */
-    public ExecutionContext addBatch(final QueryContext queryContext, final ShardingSphereDatabase database) {
+    public void addBatch(final QueryContext queryContext, final ShardingSphereDatabase database) {
         Optional<String> trafficInstanceId = connection.getTrafficInstanceId(metaData.getGlobalRuleMetaData().getSingleRule(TrafficRule.class), queryContext);
         ExecutionContext result = trafficInstanceId.map(optional -> createExecutionContext(queryContext, optional)).orElseGet(() -> createExecutionContext(queryContext, database));
         batchPreparedStatementExecutor.addBatchForExecutionUnits(result.getExecutionUnits());
-        return result;
+        executionContext = result;
     }
     
     private ExecutionContext createExecutionContext(final QueryContext queryContext, final String trafficInstanceId) {
@@ -103,7 +104,6 @@ public final class DriverExecuteBatchExecutor {
      * @param generatedValues generated values
      * @param statementOption statement option
      * @param prepareEngine prepare engine
-     * @param executionContext execution context
      * @param addCallback statement add callback
      * @param replayCallback prepared statement parameters replay callback
      * @param generatedKeyCallback generated key callback
@@ -113,7 +113,7 @@ public final class DriverExecuteBatchExecutor {
     @SuppressWarnings("rawtypes")
     public int[] executeBatch(final ShardingSphereDatabase database, final SQLStatementContext sqlStatementContext, final Collection<Comparable<?>> generatedValues,
                               final StatementOption statementOption, final DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection> prepareEngine,
-                              final ExecutionContext executionContext, final StatementAddCallback addCallback, final PreparedStatementParametersReplayCallback replayCallback,
+                              final StatementAddCallback addCallback, final PreparedStatementParametersReplayCallback replayCallback,
                               final GeneratedKeyCallback generatedKeyCallback) throws SQLException {
         if (null == executionContext) {
             return new int[0];
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 1e37f78eada..496fc2507ec 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
@@ -40,7 +40,6 @@ import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import org.apache.shardingsphere.infra.exception.dialect.SQLExceptionTransformEngine;
 import org.apache.shardingsphere.infra.exception.kernel.syntax.EmptySQLException;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
 import org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult;
@@ -116,8 +115,6 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
     @Getter
     private final boolean selectContainsEnhancedTable;
     
-    private ExecutionContext executionContext;
-    
     private Map<String, Integer> columnLabelAndIndexMap;
     
     private ResultSet currentResultSet;
@@ -383,7 +380,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
     public void addBatch() {
         currentResultSet = null;
         QueryContext queryContext = createQueryContext();
-        executionContext = driverExecutorFacade.getExecuteBatchExecutor().addBatch(queryContext, metaData.getDatabase(databaseName));
+        driverExecutorFacade.getExecuteBatchExecutor().addBatch(queryContext, metaData.getDatabase(databaseName));
         findGeneratedKey().ifPresent(optional -> generatedValues.addAll(optional.getGeneratedValues()));
         clearParameters();
     }
@@ -393,7 +390,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
         ShardingSphereDatabase database = metaData.getDatabase(databaseName);
         try {
             return driverExecutorFacade.getExecuteBatchExecutor().executeBatch(database, sqlStatementContext, generatedValues, statementOption,
-                    createDriverExecutionPrepareEngine(database), executionContext, (StatementAddCallback<PreparedStatement>) (statements, parameterSets) -> this.statements.addAll(statements),
+                    createDriverExecutionPrepareEngine(database), (StatementAddCallback<PreparedStatement>) (statements, parameterSets) -> this.statements.addAll(statements),
                     this::replaySetParameter,
                     () -> {
                         currentBatchGeneratedKeysResultSet = getGeneratedKeys();