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 47adae5d92a Refactor DatabaseConnector (#32437)
47adae5d92a is described below
commit 47adae5d92a56271cdaa91ec28dddeb422cd5dd1
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Aug 9 14:12:21 2024 +0800
Refactor DatabaseConnector (#32437)
---
.../proxy/backend/connector/DatabaseConnector.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
index 0659cf212a2..73b48071768 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
@@ -37,6 +37,7 @@ import
org.apache.shardingsphere.infra.exception.kernel.metadata.rule.EmptyRuleE
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.SQLExecutorExceptionHandler;
import
org.apache.shardingsphere.infra.executor.sql.execute.engine.driver.jdbc.JDBCExecutionUnit;
+import
org.apache.shardingsphere.infra.executor.sql.execute.result.ExecuteResult;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.metadata.JDBCQueryResultMetaData;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.stream.JDBCStreamQueryResult;
@@ -89,6 +90,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
/**
* Database connector.
@@ -217,16 +219,17 @@ public final class DatabaseConnector implements
DatabaseBackendHandler {
return result;
}
- @SuppressWarnings({"unchecked", "rawtypes"})
private ResponseHeader doExecute(final ExecutionContext executionContext)
throws SQLException {
if (executionContext.getExecutionUnits().isEmpty()) {
return new
UpdateResponseHeader(queryContext.getSqlStatementContext().getSqlStatement());
}
proxySQLExecutor.checkExecutePrerequisites(executionContext);
- List result = proxySQLExecutor.execute(executionContext);
+ List<ExecuteResult> result =
proxySQLExecutor.execute(executionContext);
refreshMetaData(executionContext);
Object executeResultSample = result.iterator().next();
- return executeResultSample instanceof QueryResult ?
processExecuteQuery(queryContext.getSqlStatementContext(), result,
(QueryResult) executeResultSample) : processExecuteUpdate(result);
+ return executeResultSample instanceof QueryResult
+ ? processExecuteQuery(queryContext.getSqlStatementContext(),
result.stream().map(each -> (QueryResult) each).collect(Collectors.toList()),
(QueryResult) executeResultSample)
+ : processExecuteUpdate(result.stream().map(each ->
(UpdateResult) each).collect(Collectors.toList()));
}
private ResultSet doExecuteFederation(final QueryContext queryContext,
final MetaDataContexts metaDataContexts) {