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) {

Reply via email to