This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 1e34c4e3d98 Rename DefaultShardingConditionEngine to
ShardingConditionEngine (#23717)
1e34c4e3d98 is described below
commit 1e34c4e3d989e638041fb3f77dc9800c1fdcff86
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jan 24 21:59:41 2023 +0800
Rename DefaultShardingConditionEngine to ShardingConditionEngine (#23717)
---
.../DMLShardingConditionsShardingAuditAlgorithm.java | 11 ++++-------
.../sharding/decider/ShardingSQLFederationDecider.java | 4 ++--
.../sharding/route/engine/ShardingSQLRouter.java | 5 ++---
.../engine/InsertClauseShardingConditionEngine.java | 6 +++---
...gConditionEngine.java => ShardingConditionEngine.java} | 15 +++++++--------
.../engine/WhereClauseShardingConditionEngine.java | 4 ++--
.../engine/InsertClauseShardingConditionEngineTest.java | 2 +-
.../engine/WhereClauseShardingConditionEngineTest.java | 2 +-
.../cache/checker/ShardingRouteCacheableChecker.java | 6 +++---
9 files changed, 25 insertions(+), 30 deletions(-)
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
index 0278081e01c..1e199913b75 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/audit/DMLShardingConditionsShardingAuditAlgorithm.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.executor.check.exception.SQLCheckExceptio
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.user.Grantee;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.DefaultShardingConditionEngine;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sharding.spi.ShardingAuditAlgorithm;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DMLStatement;
@@ -48,13 +48,10 @@ public final class
DMLShardingConditionsShardingAuditAlgorithm implements Shardi
public void check(final SQLStatementContext<?> sqlStatementContext, final
List<Object> params, final Grantee grantee, final ShardingSphereDatabase
database) {
if (sqlStatementContext.getSqlStatement() instanceof DMLStatement) {
ShardingRule rule =
database.getRuleMetaData().getSingleRule(ShardingRule.class);
- if
(rule.isAllBroadcastTables(sqlStatementContext.getTablesContext().getTableNames())
- ||
sqlStatementContext.getTablesContext().getTableNames().stream().noneMatch(rule::isShardingTable))
{
- return;
+ if
(!rule.isAllBroadcastTables(sqlStatementContext.getTablesContext().getTableNames())
&&
sqlStatementContext.getTablesContext().getTableNames().stream().anyMatch(rule::isShardingTable))
{
+ ShardingSpherePreconditions.checkState(!new
ShardingConditionEngine(database,
rule).createShardingConditions(sqlStatementContext, params).isEmpty(),
+ () -> new SQLCheckException("Not allow DML operation
without sharding conditions"));
}
- DefaultShardingConditionEngine shardingConditionEngine = new
DefaultShardingConditionEngine(rule, database);
-
ShardingSpherePreconditions.checkState(!shardingConditionEngine.createShardingConditions(sqlStatementContext,
params).isEmpty(),
- () -> new SQLCheckException("Not allow DML operation
without sharding conditions"));
}
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
index cd93dc8e3d6..70894284458 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.sharding.constant.ShardingOrder;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.DefaultShardingConditionEngine;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import java.util.Collection;
@@ -68,7 +68,7 @@ public final class ShardingSQLFederationDecider implements
SQLFederationDecider<
}
private static ShardingConditions getMergedShardingConditions(final
QueryContext queryContext, final ShardingSphereDatabase database, final
ShardingRule rule) {
- List<ShardingCondition> shardingConditions = new
DefaultShardingConditionEngine(rule,
database).createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
+ List<ShardingCondition> shardingConditions = new
ShardingConditionEngine(database,
rule).createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
ShardingConditions result = new ShardingConditions(shardingConditions,
queryContext.getSqlStatementContext(), rule);
if (result.isNeedMerge()) {
result.merge();
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
index e770174e647..fa1e83ed34f 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/ShardingSQLRouter.java
@@ -27,7 +27,7 @@ import
org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.sharding.constant.ShardingOrder;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingCondition;
import
org.apache.shardingsphere.sharding.route.engine.condition.ShardingConditions;
-import
org.apache.shardingsphere.sharding.route.engine.condition.engine.DefaultShardingConditionEngine;
+import
org.apache.shardingsphere.sharding.route.engine.condition.engine.ShardingConditionEngine;
import
org.apache.shardingsphere.sharding.route.engine.type.ShardingRouteEngineFactory;
import
org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidator;
import
org.apache.shardingsphere.sharding.route.engine.validator.ShardingStatementValidatorFactory;
@@ -63,8 +63,7 @@ public final class ShardingSQLRouter implements
SQLRouter<ShardingRule> {
private ShardingConditions createShardingConditions(final QueryContext
queryContext, final ShardingSphereDatabase database, final ShardingRule rule) {
List<ShardingCondition> shardingConditions;
if (queryContext.getSqlStatementContext().getSqlStatement() instanceof
DMLStatement || queryContext.getSqlStatementContext() instanceof
CursorAvailable) {
- DefaultShardingConditionEngine shardingConditionEngine = new
DefaultShardingConditionEngine(rule, database);
- shardingConditions =
shardingConditionEngine.createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
+ shardingConditions = new ShardingConditionEngine(database,
rule).createShardingConditions(queryContext.getSqlStatementContext(),
queryContext.getParameters());
} else {
shardingConditions = Collections.emptyList();
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
index c7683087100..e87827c6b7c 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngine.java
@@ -55,10 +55,10 @@ import java.util.stream.IntStream;
@RequiredArgsConstructor
public final class InsertClauseShardingConditionEngine {
- private final ShardingRule shardingRule;
-
private final ShardingSphereDatabase database;
+ private final ShardingRule shardingRule;
+
/**
* Create sharding conditions.
*
@@ -148,7 +148,7 @@ public final class InsertClauseShardingConditionEngine {
private List<ShardingCondition>
createShardingConditionsWithInsertSelect(final InsertStatementContext
sqlStatementContext, final List<Object> params) {
SelectStatementContext selectStatementContext =
sqlStatementContext.getInsertSelectContext().getSelectStatementContext();
- return new LinkedList<>(new
WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(selectStatementContext, params));
+ return new LinkedList<>(new
WhereClauseShardingConditionEngine(database,
shardingRule).createShardingConditions(selectStatementContext, params));
}
private void appendGeneratedKeyConditions(final InsertStatementContext
sqlStatementContext, final List<ShardingCondition> shardingConditions) {
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/DefaultShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
similarity index 79%
rename from
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/DefaultShardingConditionEngine.java
rename to
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
index c5efc176fea..52de38c2ae4 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/DefaultShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/ShardingConditionEngine.java
@@ -27,15 +27,15 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
import java.util.List;
/**
- * Default sharding condition engine.
+ * Sharding condition engine.
*/
@RequiredArgsConstructor
-public final class DefaultShardingConditionEngine {
-
- private final ShardingRule shardingRule;
+public final class ShardingConditionEngine {
private final ShardingSphereDatabase database;
+ private final ShardingRule shardingRule;
+
/**
* Create sharding conditions.
*
@@ -44,9 +44,8 @@ public final class DefaultShardingConditionEngine {
* @return sharding conditions
*/
public List<ShardingCondition> createShardingConditions(final
SQLStatementContext<?> sqlStatementContext, final List<Object> params) {
- if (sqlStatementContext instanceof InsertStatementContext) {
- return new InsertClauseShardingConditionEngine(shardingRule,
database).createShardingConditions((InsertStatementContext)
sqlStatementContext, params);
- }
- return new WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(sqlStatementContext, params);
+ return sqlStatementContext instanceof InsertStatementContext
+ ? new InsertClauseShardingConditionEngine(database,
shardingRule).createShardingConditions((InsertStatementContext)
sqlStatementContext, params)
+ : new WhereClauseShardingConditionEngine(database,
shardingRule).createShardingConditions(sqlStatementContext, params);
}
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
index 58dcefd8ff6..6d993c96ffe 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
@@ -60,10 +60,10 @@ import java.util.Set;
@RequiredArgsConstructor
public final class WhereClauseShardingConditionEngine {
- private final ShardingRule shardingRule;
-
private final ShardingSphereDatabase database;
+ private final ShardingRule shardingRule;
+
/**
* Create sharding conditions.
*
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngineTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngineTest.java
index aa5d6ddb876..5735b48d847 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngineTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/InsertClauseShardingConditionEngineTest.java
@@ -67,7 +67,7 @@ public final class InsertClauseShardingConditionEngineTest {
@Before
public void setUp() {
InsertStatement insertStatement = mockInsertStatement();
- shardingConditionEngine = new
InsertClauseShardingConditionEngine(shardingRule,
mock(ShardingSphereDatabase.class));
+ shardingConditionEngine = new
InsertClauseShardingConditionEngine(mock(ShardingSphereDatabase.class),
shardingRule);
when(insertStatementContext.getSqlStatement()).thenReturn(insertStatement);
when(insertStatementContext.getColumnNames()).thenReturn(Collections.singletonList("foo_col"));
when(insertStatementContext.getInsertValueContexts()).thenReturn(Collections.singletonList(createInsertValueContext()));
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
index 1637dd50b35..3f960e8976c 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
@@ -70,7 +70,7 @@ public final class WhereClauseShardingConditionEngineTest {
@Before
public void setUp() {
- shardingConditionEngine = new
WhereClauseShardingConditionEngine(shardingRule,
ShardingSphereDatabase.create("test_db",
DatabaseTypeEngine.getDatabaseType("MySQL")));
+ shardingConditionEngine = new
WhereClauseShardingConditionEngine(ShardingSphereDatabase.create("test_db",
DatabaseTypeEngine.getDatabaseType("MySQL")), shardingRule);
when(sqlStatementContext.getWhereSegments()).thenReturn(Collections.singleton(whereSegment));
when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
when(tablesContext.findTableNamesByColumnSegment(anyCollection(),
any())).thenReturn(Maps.of("foo_sharding_col", "table_1"));
diff --git
a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
index 96cc693852a..7922e86a5c6 100644
---
a/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
+++
b/features/sharding/plugin/cache/src/main/java/org/apache/shardingsphere/sharding/cache/checker/ShardingRouteCacheableChecker.java
@@ -104,7 +104,7 @@ public final class ShardingRouteCacheableChecker {
if (1 != tableNames.size() &&
!shardingRule.isAllBindingTables(tableNames) ||
containsNonCacheableShardingAlgorithm(tableNames)) {
return new ShardingRouteCacheableCheckResult(false,
Collections.emptyList());
}
- List<ShardingCondition> shardingConditions = new
WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(statementContext, params);
+ List<ShardingCondition> shardingConditions = new
WhereClauseShardingConditionEngine(database,
shardingRule).createShardingConditions(statementContext, params);
return checkShardingConditionsCacheable(shardingConditions);
}
@@ -131,7 +131,7 @@ public final class ShardingRouteCacheableChecker {
return new ShardingRouteCacheableCheckResult(false,
Collections.emptyList());
}
}
- List<ShardingCondition> shardingConditions = new
InsertClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(statementContext, params);
+ List<ShardingCondition> shardingConditions = new
InsertClauseShardingConditionEngine(database,
shardingRule).createShardingConditions(statementContext, params);
return checkShardingConditionsCacheable(shardingConditions);
}
@@ -146,7 +146,7 @@ public final class ShardingRouteCacheableChecker {
|| !isShardingTable &&
!shardingRule.isAllBroadcastTables(tableNames)) {
return new ShardingRouteCacheableCheckResult(false,
Collections.emptyList());
}
- List<ShardingCondition> shardingConditions = new
WhereClauseShardingConditionEngine(shardingRule,
database).createShardingConditions(statementContext, params);
+ List<ShardingCondition> shardingConditions = new
WhereClauseShardingConditionEngine(database,
shardingRule).createShardingConditions(statementContext, params);
return checkShardingConditionsCacheable(shardingConditions);
}