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

Reply via email to