This is an automated email from the ASF dual-hosted git repository.

strongduanmu 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 63450e6192c Replace router stream API with loop (#38776)
63450e6192c is described below

commit 63450e6192c13e0d2d451b655583bbdbd36e0b56
Author: ZhangCheng <[email protected]>
AuthorDate: Tue Jun 2 17:39:34 2026 +0800

    Replace router stream API with loop (#38776)
---
 .../infra/route/context/RouteContext.java               | 17 ++++++++++++++---
 .../shardingsphere/infra/route/context/RouteUnit.java   | 15 ++++++++++++---
 .../statement/core/extractor/ColumnExtractor.java       | 12 +++++++++---
 3 files changed, 35 insertions(+), 9 deletions(-)

diff --git 
a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
 
b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
index 5d415094660..51aaafa287d 100644
--- 
a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
+++ 
b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteContext.java
@@ -21,6 +21,7 @@ import lombok.Getter;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -31,7 +32,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * Route context.
@@ -60,7 +60,11 @@ public final class RouteContext {
      * @return actual data source names
      */
     public Collection<String> getActualDataSourceNames() {
-        return routeUnits.stream().map(each -> 
each.getDataSourceMapper().getActualName()).collect(Collectors.toSet());
+        Collection<String> result = new HashSet<>(routeUnits.size(), 1F);
+        for (RouteUnit each : routeUnits) {
+            result.add(each.getDataSourceMapper().getActualName());
+        }
+        return result;
     }
     
     /**
@@ -75,7 +79,14 @@ public final class RouteContext {
      * @return actual table groups
      */
     public List<Set<String>> getActualTableNameGroups(final String 
actualDataSourceName, final Set<String> logicTableNames) {
-        return logicTableNames.stream().map(each -> 
getActualTableNames(actualDataSourceName, each)).filter(each -> 
!each.isEmpty()).collect(Collectors.toList());
+        List<Set<String>> result = new ArrayList<>(logicTableNames.size());
+        for (String each : logicTableNames) {
+            Set<String> actualTableNames = 
getActualTableNames(actualDataSourceName, each);
+            if (!actualTableNames.isEmpty()) {
+                result.add(actualTableNames);
+            }
+        }
+        return result;
     }
     
     private Set<String> getActualTableNames(final String actualDataSourceName, 
final String logicTableName) {
diff --git 
a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteUnit.java
 
b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteUnit.java
index a7689333288..44f4ef97346 100644
--- 
a/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteUnit.java
+++ 
b/infra/route/core/src/main/java/org/apache/shardingsphere/infra/route/context/RouteUnit.java
@@ -26,7 +26,6 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Optional;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 /**
  * Route unit.
@@ -53,7 +52,11 @@ public final class RouteUnit {
      * @return logic table names
      */
     public Set<String> getLogicTableNames() {
-        return 
tableMappers.stream().map(RouteMapper::getLogicName).collect(Collectors.toCollection(()
 -> new HashSet<>(tableMappers.size(), 1L)));
+        Set<String> result = new HashSet<>(tableMappers.size(), 1F);
+        for (RouteMapper each : tableMappers) {
+            result.add(each.getLogicName());
+        }
+        return result;
     }
     
     /**
@@ -63,7 +66,13 @@ public final class RouteUnit {
      * @return actual table names
      */
     public Set<String> getActualTableNames(final String logicTableName) {
-        return tableMappers.stream().filter(each -> 
logicTableName.equalsIgnoreCase(each.getLogicName())).map(RouteMapper::getActualName).collect(Collectors.toSet());
+        Set<String> result = new HashSet<>(tableMappers.size(), 1F);
+        for (RouteMapper each : tableMappers) {
+            if (logicTableName.equalsIgnoreCase(each.getLogicName())) {
+                result.add(each.getActualName());
+            }
+        }
+        return result;
     }
     
     /**
diff --git 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
index 987f37320c8..afe8e8ab5e3 100644
--- 
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
+++ 
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/extractor/ColumnExtractor.java
@@ -142,7 +142,9 @@ public final class ColumnExtractor {
     
     private static void extractReturnedColumnsInCaseWhenExpression(final 
CaseWhenExpression expression, final Collection<ColumnSegment> result) {
         if (null != expression.getThenExprs()) {
-            
expression.getThenExprs().stream().map(ColumnExtractor::extractIncludeColumnSegment).forEach(result::addAll);
+            for (ExpressionSegment each : expression.getThenExprs()) {
+                result.addAll(extractIncludeColumnSegment(each));
+            }
         }
         if (null != expression.getElseExpr()) {
             
result.addAll(extractIncludeColumnSegment(expression.getElseExpr()));
@@ -154,10 +156,14 @@ public final class ColumnExtractor {
             
result.addAll(extractIncludeColumnSegment(expression.getCaseExpr()));
         }
         if (null != expression.getWhenExprs()) {
-            
expression.getWhenExprs().stream().map(ColumnExtractor::extractIncludeColumnSegment).forEach(result::addAll);
+            for (ExpressionSegment each : expression.getWhenExprs()) {
+                result.addAll(extractIncludeColumnSegment(each));
+            }
         }
         if (null != expression.getThenExprs()) {
-            
expression.getThenExprs().stream().map(ColumnExtractor::extractIncludeColumnSegment).forEach(result::addAll);
+            for (ExpressionSegment each : expression.getThenExprs()) {
+                result.addAll(extractIncludeColumnSegment(each));
+            }
         }
         if (null != expression.getElseExpr()) {
             
result.addAll(extractIncludeColumnSegment(expression.getElseExpr()));

Reply via email to