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