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 2020/10/11 06:01:44 UTC
[shardingsphere] branch master updated: Pull up kernelProcessor
into class field (#7741)
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 99ee934 Pull up kernelProcessor into class field (#7741)
99ee934 is described below
commit 99ee934fa6684a07e23d4acebb500b36b0c538e7
Author: Liang Zhang <te...@163.com>
AuthorDate: Sun Oct 11 14:01:16 2020 +0800
Pull up kernelProcessor into class field (#7741)
* Pull up kernelProcessor into class field
* Revise SQLExecutor
---
.../infra/executor/sql/context/ExecutionContextBuilder.java | 4 ++--
.../infra/executor/sql/resourced/jdbc/executor/SQLExecutor.java | 3 +--
.../driver/jdbc/core/statement/ShardingSpherePreparedStatement.java | 5 ++++-
.../driver/jdbc/core/statement/ShardingSphereStatement.java | 5 ++++-
.../backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java | 4 +++-
.../backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java | 4 +++-
6 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java
index afa31b9..c28d81c 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilder.java
@@ -54,8 +54,8 @@ public final class ExecutionContextBuilder {
* @return execution contexts
*/
public static Collection<ExecutionUnit> build(final ShardingSphereMetaData metaData, final SQLRewriteResult sqlRewriteResult, final SQLStatementContext<?> sqlStatementContext) {
- return sqlRewriteResult instanceof GenericSQLRewriteResult ? build(metaData, (GenericSQLRewriteResult) sqlRewriteResult, sqlStatementContext)
- : build(metaData, (RouteSQLRewriteResult) sqlRewriteResult);
+ return sqlRewriteResult instanceof GenericSQLRewriteResult
+ ? build(metaData, (GenericSQLRewriteResult) sqlRewriteResult, sqlStatementContext) : build(metaData, (RouteSQLRewriteResult) sqlRewriteResult);
}
private static Collection<ExecutionUnit> build(final ShardingSphereMetaData metaData, final GenericSQLRewriteResult sqlRewriteResult, final SQLStatementContext<?> sqlStatementContext) {
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/resourced/jdbc/executor/SQLExecutor.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/resourced/jdbc/executor/SQLExecutor.java
index b6e67c5..e14d8b4 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/resourced/jdbc/executor/SQLExecutor.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/resourced/jdbc/executor/SQLExecutor.java
@@ -60,10 +60,9 @@ public final class SQLExecutor {
* @return execute result
* @throws SQLException SQL exception
*/
- @SuppressWarnings("unchecked")
public <T> List<T> execute(final Collection<InputGroup<StatementExecuteUnit>> inputGroups, final SQLExecutorCallback<T> firstCallback, final SQLExecutorCallback<T> callback) throws SQLException {
try {
- return executorKernel.execute((Collection) inputGroups, firstCallback, callback, serial);
+ return executorKernel.execute(inputGroups, firstCallback, callback, serial);
} catch (final SQLException ex) {
ExecutorExceptionHandler.handleException(ex);
return Collections.emptyList();
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 5c28341..51f72df 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
@@ -103,6 +103,8 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private final Collection<Comparable<?>> generatedValues = new LinkedList<>();
+ private final KernelProcessor kernelProcessor;
+
private ExecutionContext executionContext;
private ResultSet currentResultSet;
@@ -141,6 +143,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
preparedStatementExecutor = new PreparedStatementExecutor(connection.getDataSourceMap(), schemaContexts, sqlExecutor);
rawExecutor = new RawJDBCExecutor(schemaContexts.getExecutorKernel(), connection.isHoldTransaction());
batchPreparedStatementExecutor = new BatchPreparedStatementExecutor(schemaContexts, sqlExecutor);
+ kernelProcessor = new KernelProcessor();
}
@Override
@@ -257,7 +260,7 @@ public final class ShardingSpherePreparedStatement extends AbstractPreparedState
private ExecutionContext createExecutionContext() {
LogicSQL logicSQL = createLogicSQL();
- ExecutionContext result = new KernelProcessor().generateExecutionContext(logicSQL, schemaContexts.getProps());
+ ExecutionContext result = kernelProcessor.generateExecutionContext(logicSQL, schemaContexts.getProps());
findGeneratedKey(result).ifPresent(generatedKey -> generatedValues.addAll(generatedKey.getGeneratedValues()));
logSQL(logicSQL, result);
return result;
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 f3ed297..4c40c13 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
@@ -87,6 +87,8 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private final RawJDBCExecutor rawExecutor;
+ private final KernelProcessor kernelProcessor;
+
private boolean returnGeneratedKeys;
private ExecutionContext executionContext;
@@ -109,6 +111,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
statementOption = new StatementOption(resultSetType, resultSetConcurrency, resultSetHoldability);
statementExecutor = new StatementExecutor(connection.getDataSourceMap(), schemaContexts, new SQLExecutor(schemaContexts.getExecutorKernel(), connection.isHoldTransaction()));
rawExecutor = new RawJDBCExecutor(schemaContexts.getExecutorKernel(), connection.isHoldTransaction());
+ kernelProcessor = new KernelProcessor();
}
@Override
@@ -281,7 +284,7 @@ public final class ShardingSphereStatement extends AbstractStatementAdapter {
private ExecutionContext createExecutionContext(final String sql) throws SQLException {
clearStatements();
LogicSQL logicSQL = createLogicSQL(sql);
- ExecutionContext result = new KernelProcessor().generateExecutionContext(logicSQL, schemaContexts.getProps());
+ ExecutionContext result = kernelProcessor.generateExecutionContext(logicSQL, schemaContexts.getProps());
logSQL(logicSQL, schemaContexts.getProps(), result);
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index e819698..79f53e0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -58,13 +58,15 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
private final SQLExecuteEngine sqlExecuteEngine;
+ private final KernelProcessor kernelProcessor = new KernelProcessor();
+
private BackendResponse response;
private MergedResult mergedResult;
@Override
public BackendResponse execute() throws SQLException {
- ExecutionContext executionContext = new KernelProcessor().generateExecutionContext(logicSQL, ProxyContext.getInstance().getSchemaContexts().getProps());
+ ExecutionContext executionContext = kernelProcessor.generateExecutionContext(logicSQL, ProxyContext.getInstance().getSchemaContexts().getProps());
logSQL(executionContext);
return doExecute(executionContext);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java
index 547d0c5..ee3ab66 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/sctl/explain/ShardingCTLExplainBackendHandler.java
@@ -54,6 +54,8 @@ public final class ShardingCTLExplainBackendHandler implements TextProtocolBacke
private final BackendConnection backendConnection;
+ private final KernelProcessor kernelProcessor = new KernelProcessor();
+
private List<QueryHeader> queryHeaders;
private Iterator<ExecutionUnit> executionUnits;
@@ -72,7 +74,7 @@ public final class ShardingCTLExplainBackendHandler implements TextProtocolBacke
throw new RuleNotExistsException();
}
LogicSQL logicSQL = createLogicSQL(schema, explainStatement.get());
- executionUnits = new KernelProcessor().generateExecutionContext(logicSQL, ProxyContext.getInstance().getSchemaContexts().getProps()).getExecutionUnits().iterator();
+ executionUnits = kernelProcessor.generateExecutionContext(logicSQL, ProxyContext.getInstance().getSchemaContexts().getProps()).getExecutionUnits().iterator();
queryHeaders = new ArrayList<>(2);
queryHeaders.add(new QueryHeader("", "", "datasource_name", "", 255, Types.CHAR, 0, false, false, false, false));
queryHeaders.add(new QueryHeader("", "", "sql", "", 255, Types.CHAR, 0, false, false, false, false));