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

zhangliang 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 9c757d19c29 Fix sonar issues (#33845)
9c757d19c29 is described below

commit 9c757d19c29e5d304f5e884c3155350756a8f91e
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Nov 30 12:08:21 2024 +0800

    Fix sonar issues (#33845)
---
 .../broadcast/route/BroadcastSQLRouterTest.java    |  3 +-
 .../sql/dml/ShardingInsertSupportedChecker.java    |  2 +-
 .../engine/type/ShardingRouteEngineFactory.java    | 36 +++++++++++-----------
 .../ShardingCreateTableSupportedCheckerTest.java   | 18 +++++------
 .../dml/ShardingInsertRouteContextCheckerTest.java | 27 ----------------
 5 files changed, 29 insertions(+), 57 deletions(-)

diff --git 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
index 27407ce4115..883505fd973 100644
--- 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
+++ 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouterTest.java
@@ -34,7 +34,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import java.util.Collections;
 import java.util.Properties;
 
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -52,7 +51,7 @@ class BroadcastSQLRouterTest {
         BroadcastRouteEngine routeEngine = mock(BroadcastRouteEngine.class);
         when(BroadcastRouteEngineFactory.newInstance(queryContext, 
Collections.singleton("t_config"))).thenReturn(routeEngine);
         getSQLRouter(rule).createRouteContext(queryContext, 
mock(RuleMetaData.class), database, rule, Collections.singleton("t_config"), 
new ConfigurationProperties(new Properties()));
-        verify(routeEngine).route(eq(rule));
+        verify(routeEngine).route(rule);
     }
     
     private BroadcastSQLRouter getSQLRouter(final BroadcastRule rule) {
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingInsertSupportedChecker.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingInsertSupportedChecker.java
index 9497abee2e3..38f821a21ec 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingInsertSupportedChecker.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/checker/sql/dml/ShardingInsertSupportedChecker.java
@@ -52,11 +52,11 @@ public final class ShardingInsertSupportedChecker 
implements SupportedSQLChecker
             ShardingSupportedCommonChecker.checkMultipleTable(rule, 
sqlStatementContext);
         }
         InsertStatement insertStatement = 
sqlStatementContext.getSqlStatement();
-        String tableName = insertStatement.getTable().map(optional -> 
optional.getTableName().getIdentifier().getValue()).orElse("");
         Optional<SubquerySegment> insertSelectSegment = 
insertStatement.getInsertSelect();
         if (!insertSelectSegment.isPresent()) {
             return;
         }
+        String tableName = insertStatement.getTable().map(optional -> 
optional.getTableName().getIdentifier().getValue()).orElse("");
         if (isContainsKeyGenerateStrategy(rule, tableName) && 
!isContainsKeyGenerateColumn(rule, insertStatement.getColumns(), tableName)) {
             throw new MissingGenerateKeyColumnWithInsertSelectException();
         }
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 42598156f0d..98ac6ea8447 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
@@ -60,7 +60,7 @@ public final class ShardingRouteEngineFactory {
     /**
      * Create new instance of routing engine.
      *
-     * @param shardingRule sharding rule
+     * @param rule sharding rule
      * @param database database
      * @param queryContext query context
      * @param shardingConditions shardingConditions
@@ -68,13 +68,13 @@ public final class ShardingRouteEngineFactory {
      * @param props ShardingSphere properties
      * @return created instance
      */
-    public static ShardingRouteEngine newInstance(final ShardingRule 
shardingRule, final ShardingSphereDatabase database, final QueryContext 
queryContext,
+    public static ShardingRouteEngine newInstance(final ShardingRule rule, 
final ShardingSphereDatabase database, final QueryContext queryContext,
                                                   final ShardingConditions 
shardingConditions, final Collection<String> logicTableNames, final 
ConfigurationProperties props) {
         SQLStatementContext sqlStatementContext = 
queryContext.getSqlStatementContext();
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
         if (sqlStatement instanceof DDLStatement) {
             return sqlStatementContext instanceof CursorAvailable
-                    ? getCursorRouteEngine(shardingRule, database, 
sqlStatementContext, queryContext.getHintValueContext(), shardingConditions, 
logicTableNames, props)
+                    ? getCursorRouteEngine(rule, database, 
sqlStatementContext, queryContext.getHintValueContext(), shardingConditions, 
logicTableNames, props)
                     : getDDLRouteEngine(database, sqlStatementContext, 
logicTableNames);
         }
         if (sqlStatement instanceof DALStatement) {
@@ -83,7 +83,7 @@ public final class ShardingRouteEngineFactory {
         if (sqlStatement instanceof DCLStatement) {
             return getDCLRouteEngine(database, sqlStatementContext, 
logicTableNames);
         }
-        return getDQLRouteEngine(shardingRule, database, sqlStatementContext, 
queryContext.getHintValueContext(), shardingConditions, props, 
queryContext.getConnectionContext(), logicTableNames);
+        return getDQLRouteEngine(rule, database, sqlStatementContext, 
queryContext, shardingConditions, logicTableNames, props);
     }
     
     private static ShardingRouteEngine getDDLRouteEngine(final 
ShardingSphereDatabase database, final SQLStatementContext sqlStatementContext, 
final Collection<String> logicTableNames) {
@@ -95,11 +95,11 @@ public final class ShardingRouteEngineFactory {
         return new ShardingTableBroadcastRouteEngine(database, 
sqlStatementContext, logicTableNames);
     }
     
-    private static ShardingRouteEngine getCursorRouteEngine(final ShardingRule 
shardingRule, final ShardingSphereDatabase database, final SQLStatementContext 
sqlStatementContext,
+    private static ShardingRouteEngine getCursorRouteEngine(final ShardingRule 
rule, final ShardingSphereDatabase database, final SQLStatementContext 
sqlStatementContext,
                                                             final 
HintValueContext hintValueContext, final ShardingConditions shardingConditions, 
final Collection<String> logicTableNames,
                                                             final 
ConfigurationProperties props) {
-        boolean allBindingTables = logicTableNames.size() > 1 && 
shardingRule.isAllBindingTables(database, sqlStatementContext, logicTableNames);
-        if (isShardingStandardQuery(shardingRule, logicTableNames, 
allBindingTables)) {
+        boolean allBindingTables = logicTableNames.size() > 1 && 
rule.isAllBindingTables(database, sqlStatementContext, logicTableNames);
+        if (isShardingStandardQuery(rule, logicTableNames, allBindingTables)) {
             return new 
ShardingStandardRouteEngine(getLogicTableName(shardingConditions, 
logicTableNames), shardingConditions, sqlStatementContext, hintValueContext, 
props);
         }
         return new ShardingIgnoreRouteEngine();
@@ -128,21 +128,21 @@ public final class ShardingRouteEngineFactory {
         return false;
     }
     
-    private static ShardingRouteEngine getDQLRouteEngine(final ShardingRule 
shardingRule, final ShardingSphereDatabase database, final SQLStatementContext 
sqlStatementContext,
-                                                         final 
HintValueContext hintValueContext, final ShardingConditions shardingConditions, 
final ConfigurationProperties props,
-                                                         final 
ConnectionContext connectionContext, final Collection<String> logicTableNames) {
+    private static ShardingRouteEngine getDQLRouteEngine(final ShardingRule 
rule, final ShardingSphereDatabase database, final SQLStatementContext 
sqlStatementContext,
+                                                         final QueryContext 
queryContext, final ShardingConditions shardingConditions, final 
Collection<String> logicTableNames,
+                                                         final 
ConfigurationProperties props) {
         Collection<String> tableNames = sqlStatementContext instanceof 
TableAvailable ? ((TableAvailable) 
sqlStatementContext).getTablesContext().getTableNames() : 
Collections.emptyList();
         if (sqlStatementContext.getSqlStatement() instanceof DMLStatement && 
shardingConditions.isAlwaysFalse() || tableNames.isEmpty()) {
-            return new ShardingUnicastRouteEngine(sqlStatementContext, 
tableNames, connectionContext);
+            return new ShardingUnicastRouteEngine(sqlStatementContext, 
tableNames, queryContext.getConnectionContext());
         }
-        return getDQLRouteEngineForShardingTable(shardingRule, database, 
sqlStatementContext, hintValueContext, shardingConditions, props, 
logicTableNames);
+        return getDQLRouteEngineForShardingTable(rule, database, 
sqlStatementContext, queryContext.getHintValueContext(), shardingConditions, 
logicTableNames, props);
     }
     
-    private static ShardingRouteEngine getDQLRouteEngineForShardingTable(final 
ShardingRule shardingRule, final ShardingSphereDatabase database,
+    private static ShardingRouteEngine getDQLRouteEngineForShardingTable(final 
ShardingRule rule, final ShardingSphereDatabase database,
                                                                          final 
SQLStatementContext sqlStatementContext, final HintValueContext 
hintValueContext,
-                                                                         final 
ShardingConditions shardingConditions, final ConfigurationProperties props, 
final Collection<String> logicTableNames) {
-        boolean allBindingTables = logicTableNames.size() > 1 && 
shardingRule.isAllBindingTables(database, sqlStatementContext, logicTableNames);
-        if (isShardingStandardQuery(shardingRule, logicTableNames, 
allBindingTables)) {
+                                                                         final 
ShardingConditions shardingConditions, final Collection<String> 
logicTableNames, final ConfigurationProperties props) {
+        boolean allBindingTables = logicTableNames.size() > 1 && 
rule.isAllBindingTables(database, sqlStatementContext, logicTableNames);
+        if (isShardingStandardQuery(rule, logicTableNames, allBindingTables)) {
             return new 
ShardingStandardRouteEngine(getLogicTableName(shardingConditions, 
logicTableNames), shardingConditions, sqlStatementContext, hintValueContext, 
props);
         }
         // TODO config for cartesian set
@@ -157,7 +157,7 @@ public final class ShardingRouteEngineFactory {
         return shardingCondition.getValues().isEmpty() ? 
tableNames.iterator().next() : 
shardingCondition.getValues().iterator().next().getTableName();
     }
     
-    private static boolean isShardingStandardQuery(final ShardingRule 
shardingRule, final Collection<String> logicTableNames, final boolean 
allBindingTables) {
-        return 1 == logicTableNames.size() && 
shardingRule.isAllShardingTables(logicTableNames) || allBindingTables;
+    private static boolean isShardingStandardQuery(final ShardingRule rule, 
final Collection<String> logicTableNames, final boolean allBindingTables) {
+        return 1 == logicTableNames.size() && 
rule.isAllShardingTables(logicTableNames) || allBindingTables;
     }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
index 94fcc32acfe..90e092ef32a 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/checker/sql/ddl/ShardingCreateTableSupportedCheckerTest.java
@@ -46,49 +46,49 @@ import static org.mockito.Mockito.when;
 class ShardingCreateTableSupportedCheckerTest {
     
     @Mock
-    private ShardingRule shardingRule;
+    private ShardingRule rule;
     
     @Test
     void assertCheckForMySQL() {
         MySQLCreateTableStatement sqlStatement = new 
MySQLCreateTableStatement(false);
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 
2, new IdentifierValue("t_order"))));
-        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement, "sharding_db"));
+        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement));
     }
     
     @Test
     void assertCheckForOracle() {
         OracleCreateTableStatement sqlStatement = new 
OracleCreateTableStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 
2, new IdentifierValue("t_order"))));
-        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement, "sharding_db"));
+        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement));
     }
     
     @Test
     void assertCheckForPostgreSQL() {
         PostgreSQLCreateTableStatement sqlStatement = new 
PostgreSQLCreateTableStatement(false);
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 
2, new IdentifierValue("t_order"))));
-        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement, "public"));
+        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement));
     }
     
     @Test
     void assertCheckForSQL92() {
         SQL92CreateTableStatement sqlStatement = new 
SQL92CreateTableStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 
2, new IdentifierValue("t_order"))));
-        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement, "sharding_db"));
+        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement));
     }
     
     @Test
     void assertCheckForSQLServer() {
         SQLServerCreateTableStatement sqlStatement = new 
SQLServerCreateTableStatement();
         sqlStatement.setTable(new SimpleTableSegment(new TableNameSegment(1, 
2, new IdentifierValue("t_order"))));
-        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement, "dbo"));
+        assertThrows(TableExistsException.class, () -> 
assertCheck(sqlStatement));
     }
     
-    private void assertCheck(final CreateTableStatement sqlStatement, final 
String schemaName) {
+    private void assertCheck(final CreateTableStatement sqlStatement) {
         CreateTableStatementContext sqlStatementContext = new 
CreateTableStatementContext(sqlStatement, "sharding_db");
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
         when(schema.containsTable("t_order")).thenReturn(true);
-        new ShardingCreateTableSupportedChecker().check(shardingRule, 
database, schema, sqlStatementContext);
+        new ShardingCreateTableSupportedChecker().check(rule, database, 
schema, sqlStatementContext);
     }
     
     @Test
@@ -108,6 +108,6 @@ class ShardingCreateTableSupportedCheckerTest {
     private void assertCheckIfNotExists(final CreateTableStatement 
sqlStatement) {
         CreateTableStatementContext sqlStatementContext = new 
CreateTableStatementContext(sqlStatement, DefaultDatabase.LOGIC_NAME);
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
-        new ShardingCreateTableSupportedChecker().check(shardingRule, 
database, mock(ShardingSphereSchema.class), sqlStatementContext);
+        new ShardingCreateTableSupportedChecker().check(rule, database, 
mock(ShardingSphereSchema.class), sqlStatementContext);
     }
 }
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
index 219c3b40ee5..8349ce1e078 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/checker/dml/ShardingInsertRouteContextCheckerTest.java
@@ -17,12 +17,10 @@
 
 package org.apache.shardingsphere.sharding.route.engine.checker.dml;
 
-import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -46,15 +44,11 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.Co
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.InsertColumnsSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.OnDuplicateKeyColumnsSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import 
org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement;
 import org.apache.shardingsphere.test.util.PropertiesBuilder;
 import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
@@ -231,25 +225,4 @@ class ShardingInsertRouteContextCheckerTest {
         result.setInsertColumns(new InsertColumnsSegment(0, 0, columns));
         return result;
     }
-    
-    private InsertStatement createInsertSelectStatement() {
-        InsertStatement result = createInsertStatement();
-        SelectStatement selectStatement = new MySQLSelectStatement();
-        selectStatement.setProjections(new ProjectionsSegment(0, 0));
-        result.setInsertSelect(new SubquerySegment(0, 0, selectStatement, ""));
-        return result;
-    }
-    
-    private TablesContext createSingleTablesContext() {
-        List<SimpleTableSegment> result = new LinkedList<>();
-        result.add(new SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("user"))));
-        return new TablesContext(result, 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"), 
DefaultDatabase.LOGIC_NAME);
-    }
-    
-    private TablesContext createMultiTablesContext() {
-        List<SimpleTableSegment> result = new LinkedList<>();
-        result.add(new SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("user"))));
-        result.add(new SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("order"))));
-        return new TablesContext(result, 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"), 
DefaultDatabase.LOGIC_NAME);
-    }
 }

Reply via email to