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