You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/04/04 10:16:51 UTC
[shardingsphere] branch master updated: import ExecuteProcessEngine
for RawExecutor (#9925)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 138905d import ExecuteProcessEngine for RawExecutor (#9925)
138905d is described below
commit 138905deb34ea0c38feec0cf1436b145196b8d2e
Author: sandynz <42...@users.noreply.github.com>
AuthorDate: Sun Apr 4 18:16:18 2021 +0800
import ExecuteProcessEngine for RawExecutor (#9925)
* import ExecuteProcessEngine for RawExecutor
* import ExecuteProcessEngine for DriverJDBCExecutor
---
.../executor/sql/execute/engine/raw/RawExecutor.java | 10 ++++++++--
.../driver/executor/DriverJDBCExecutor.java | 1 +
.../statement/ShardingSpherePreparedStatement.java | 7 ++++---
.../jdbc/core/statement/ShardingSphereStatement.java | 19 ++++++++++---------
.../proxy/backend/communication/ProxySQLExecutor.java | 2 +-
5 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/RawExecutor.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/RawExecutor.java
index 10106c1..74a6994 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/RawExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/RawExecutor.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.infra.executor.sql.execute.engine.raw;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutionGroupContext;
import org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutorExceptionHandler;
@@ -29,6 +30,7 @@ import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import org.apache.shardingsphere.infra.executor.sql.process.ExecuteProcessEngine;
/**
* Raw executor.
@@ -44,13 +46,17 @@ public final class RawExecutor {
* Execute.
*
* @param executionGroupContext execution group context
+ * @param sqlStatementContext SQL statement context
* @param callback raw SQL executor callback
* @return execute results
* @throws SQLException SQL exception
*/
- public Collection<ExecuteResult> execute(final ExecutionGroupContext<RawSQLExecutionUnit> executionGroupContext, final RawSQLExecutorCallback callback) throws SQLException {
+ public Collection<ExecuteResult> execute(final ExecutionGroupContext<RawSQLExecutionUnit> executionGroupContext,
+ final SQLStatementContext<?> sqlStatementContext,
+ final RawSQLExecutorCallback callback) throws SQLException {
+ ExecuteProcessEngine.initialize(sqlStatementContext, executionGroupContext);
// TODO Load query header for first query
- List<ExecuteResult> results = execute(executionGroupContext, null, callback);
+ List<ExecuteResult> results = execute(executionGroupContext, (RawSQLExecutorCallback) null, callback);
if (null == results || results.isEmpty() || null == results.get(0)) {
return Collections.singleton(new UpdateResult(0, 0L));
}
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
index 3d7126f..c52f5ce 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/executor/DriverJDBCExecutor.java
@@ -80,6 +80,7 @@ public final class DriverJDBCExecutor {
*/
public int executeUpdate(final ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext,
final SQLStatementContext<?> sqlStatementContext, final Collection<RouteUnit> routeUnits, final JDBCExecutorCallback<Integer> callback) throws SQLException {
+ ExecuteProcessEngine.initialize(sqlStatementContext, executionGroupContext);
List<Integer> results = jdbcLockEngine.execute(executionGroupContext, sqlStatementContext, routeUnits, callback);
return isNeedAccumulate(metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules(), sqlStatementContext) ? accumulate(results) : results.get(0);
}
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 c949d2c..12e08b0 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
@@ -196,7 +196,8 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private List<QueryResult> executeQuery0() throws SQLException {
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return rawExecutor.execute(createRawExecutionGroupContext(), new RawSQLExecutorCallback()).stream().map(each -> (QueryResult) each).collect(Collectors.toList());
+ return rawExecutor.execute(createRawExecutionGroupContext(), executionContext.getSqlStatementContext(),
+ new RawSQLExecutorCallback()).stream().map(each -> (QueryResult) each).collect(Collectors.toList());
}
if (executionContext.getRouteContext().isToCalcite()) {
return executeQueryByCalcite();
@@ -232,7 +233,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
clearPrevious();
executionContext = createExecutionContext();
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- Collection<ExecuteResult> executeResults = rawExecutor.execute(createRawExecutionGroupContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> executeResults = rawExecutor.execute(createRawExecutionGroupContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
accumulate(executeResults);
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionGroupContext();
@@ -275,7 +276,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
executionContext = createExecutionContext();
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
- Collection<ExecuteResult> executeResults = rawExecutor.execute(createRawExecutionGroupContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> executeResults = rawExecutor.execute(createRawExecutionGroupContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
return executeResults.iterator().next() instanceof QueryResult;
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionGroupContext();
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index f8db022..13e4a95 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -165,7 +165,8 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private List<QueryResult> executeQuery0() throws SQLException {
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback()).stream().map(each -> (QueryResult) each).collect(Collectors.toList());
+ return rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(),
+ new RawSQLExecutorCallback()).stream().map(each -> (QueryResult) each).collect(Collectors.toList());
}
if (executionContext.getRouteContext().isToCalcite()) {
return executeQueryByCalcite();
@@ -201,7 +202,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
try {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return accumulate(rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback()));
+ return accumulate(rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
cacheStatements(executionGroupContext.getInputGroups());
@@ -220,7 +221,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
try {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return accumulate(rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback()));
+ return accumulate(rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
cacheStatements(executionGroupContext.getInputGroups());
@@ -237,7 +238,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
try {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return accumulate(rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback()));
+ return accumulate(rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroups = createExecutionContext();
cacheStatements(executionGroups.getInputGroups());
@@ -254,7 +255,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
try {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
- return accumulate(rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback()));
+ return accumulate(rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback()));
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
cacheStatements(executionGroupContext.getInputGroups());
@@ -298,7 +299,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
- Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
return results.iterator().next() instanceof QueryResult;
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -319,7 +320,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
- Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
return results.iterator().next() instanceof QueryResult;
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -338,7 +339,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
- Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
return results.iterator().next() instanceof QueryResult;
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
@@ -357,7 +358,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
executionContext = createExecutionContext(sql);
if (metaDataContexts.getDefaultMetaData().getRuleMetaData().getRules().stream().anyMatch(each -> each instanceof RawExecutionRule)) {
// TODO process getStatement
- Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), new RawSQLExecutorCallback());
+ Collection<ExecuteResult> results = rawExecutor.execute(createRawExecutionContext(), executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
return results.iterator().next() instanceof QueryResult;
}
ExecutionGroupContext<JDBCExecutionUnit> executionGroupContext = createExecutionContext();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
index 63864ca..50a107c 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/ProxySQLExecutor.java
@@ -132,7 +132,7 @@ public final class ProxySQLExecutor {
return getSaneExecuteResults(executionContext, ex);
}
// TODO handle query header
- return rawExecutor.execute(executionGroupContext, new RawSQLExecutorCallback());
+ return rawExecutor.execute(executionGroupContext, executionContext.getSqlStatementContext(), new RawSQLExecutorCallback());
}
private Collection<ExecuteResult> useCalciteToExecute(final ExecutionContext executionContext, final Collection<ShardingSphereRule> rules,