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

chengzhang 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 7ec236f02fa Fix sonar issue in ShardingRouteEngineFactory (#26049)
7ec236f02fa is described below

commit 7ec236f02fa6ae19849889ebadb5da90067ffa4c
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Jun 5 14:40:08 2023 +0800

    Fix sonar issue in ShardingRouteEngineFactory (#26049)
    
    * Fix sonar issue in ShardingRouteEngineFactory
    
    * fix unit test
---
 .../sharding/route/engine/type/ShardingRouteEngineFactory.java      | 5 +++--
 .../sharding/route/engine/type/ShardingRouteEngineFactoryTest.java  | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
index 4e56223baa3..27e461455d8 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
@@ -133,17 +133,18 @@ public final class ShardingRouteEngineFactory {
             return new ShardingIgnoreRoutingEngine();
         }
         if (sqlStatementContext instanceof CursorAvailable) {
-            return getCursorRouteEngine(shardingRule, database, 
sqlStatementContext, hintValueContext, shardingConditions, props, tableNames, 
connectionContext);
+            return getCursorRouteEngine(shardingRule, database, 
sqlStatementContext, hintValueContext, shardingConditions, props, 
connectionContext);
         }
         return new ShardingTableBroadcastRoutingEngine(database, 
sqlStatementContext, shardingRuleTableNames);
     }
     
     private static ShardingRouteEngine getCursorRouteEngine(final ShardingRule 
shardingRule, final ShardingSphereDatabase database, final SQLStatementContext 
sqlStatementContext,
                                                             final 
HintValueContext hintValueContext, final ShardingConditions shardingConditions, 
final ConfigurationProperties props,
-                                                            final 
Collection<String> tableNames, final ConnectionContext connectionContext) {
+                                                            final 
ConnectionContext connectionContext) {
         if (sqlStatementContext instanceof CloseStatementContext && 
((CloseStatementContext) sqlStatementContext).getSqlStatement().isCloseAll()) {
             return new ShardingDatabaseBroadcastRoutingEngine();
         }
+        Collection<String> tableNames = 
sqlStatementContext.getTablesContext().getTableNames();
         if (shardingRule.isAllBroadcastTables(tableNames)) {
             return new ShardingUnicastRoutingEngine(sqlStatementContext, 
tableNames, connectionContext);
         }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
index 7647f6f787d..aeb6964278a 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.sharding.route.engine.type;
 
-import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dcl.GrantStatementContext;
@@ -25,11 +24,12 @@ import 
org.apache.shardingsphere.infra.binder.statement.ddl.CloseStatementContex
 import 
org.apache.shardingsphere.infra.binder.statement.ddl.CursorStatementContext;
 import 
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
 import org.apache.shardingsphere.infra.database.DefaultDatabase;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
 import 
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
 import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDataSourceGroupBroadcastRoutingEngine;
 import 
org.apache.shardingsphere.sharding.route.engine.type.broadcast.ShardingDatabaseBroadcastRoutingEngine;
@@ -384,6 +384,7 @@ class ShardingRouteEngineFactoryTest {
         Collection<SimpleTableSegment> tableSegments = 
createSimpleTableSegments();
         Collection<String> tableNames = tableSegments.stream().map(each -> 
each.getTableName().getIdentifier().getValue()).collect(Collectors.toSet());
         when(cursorStatementContext.getAllTables()).thenReturn(tableSegments);
+        
when(cursorStatementContext.getTablesContext().getTableNames()).thenReturn(tableNames);
         when(shardingRule.isAllBroadcastTables(tableNames)).thenReturn(true);
         
when(shardingRule.getShardingRuleTableNames(tableNames)).thenReturn(tableNames);
         QueryContext queryContext = new QueryContext(cursorStatementContext, 
"", Collections.emptyList(), new HintValueContext());
@@ -399,6 +400,7 @@ class ShardingRouteEngineFactoryTest {
         Collection<SimpleTableSegment> tableSegments = 
createSimpleTableSegments();
         Collection<String> tableNames = tableSegments.stream().map(each -> 
each.getTableName().getIdentifier().getValue()).collect(Collectors.toSet());
         when(cursorStatementContext.getAllTables()).thenReturn(tableSegments);
+        
when(cursorStatementContext.getTablesContext().getTableNames()).thenReturn(tableNames);
         when(shardingRule.isAllShardingTables(tableNames)).thenReturn(true);
         
when(shardingRule.getShardingRuleTableNames(tableNames)).thenReturn(tableNames);
         
when(shardingRule.getShardingLogicTableNames(tableNames)).thenReturn(tableNames);

Reply via email to