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();