You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ch...@apache.org on 2023/06/05 06:40:16 UTC
[shardingsphere] branch master updated: Fix sonar issue in ShardingRouteEngineFactory (#26049)
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 <du...@apache.org>
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);