You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/06/13 10:56:54 UTC
[shardingsphere] branch master updated: support traffic for execute batch (#18334)
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 3f79e257db6 support traffic for execute batch (#18334)
3f79e257db6 is described below
commit 3f79e257db6aeb8ae242f622625af69b2b2f3fc8
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Mon Jun 13 18:56:41 2022 +0800
support traffic for execute batch (#18334)
---
.../jdbc/core/statement/ShardingSpherePreparedStatement.java | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index a23074762c0..193271f6a1a 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -474,6 +474,11 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
return result;
}
+ private ExecutionContext createExecutionContext(final LogicSQL logicSQL, final TrafficContext trafficContext) {
+ ExecutionUnit executionUnit = new ExecutionUnit(trafficContext.getInstanceId(), new SQLUnit(logicSQL.getSql(), logicSQL.getParameters()));
+ return new ExecutionContext(logicSQL, Collections.singletonList(executionUnit), trafficContext.getRouteContext());
+ }
+
private LogicSQL createLogicSQL() {
List<Object> parameters = new ArrayList<>(getParameters());
if (sqlStatementContext instanceof ParameterAware) {
@@ -540,7 +545,9 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
@Override
public void addBatch() {
try {
- executionContext = createExecutionContext(createLogicSQL());
+ LogicSQL logicSQL = createLogicSQL();
+ trafficContext = getTrafficContext(logicSQL);
+ executionContext = trafficContext.isMatchTraffic() ? createExecutionContext(logicSQL, trafficContext) : createExecutionContext(logicSQL);
batchPreparedStatementExecutor.addBatchForExecutionUnits(executionContext.getExecutionUnits());
} finally {
currentResultSet = null;