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 0dae83150ad Refactor DatabaseRuleDefinitionExecuteEngine (#36130)
0dae83150ad is described below
commit 0dae83150ad6506502f20bd9de24584a5d3d65b3
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 31 12:12:36 2025 +0800
Refactor DatabaseRuleDefinitionExecuteEngine (#36130)
* Refactor DatabaseRuleDefinitionExecuteEngine
* Refactor DatabaseRuleDefinitionExecuteEngine
* Refactor DatabaseRuleDefinitionExecuteEngine
---
.../handler/engine/update/DistSQLUpdateExecuteEngine.java | 5 +++--
.../engine/database/DatabaseRuleDefinitionExecuteEngine.java | 10 ++++++----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
index e1020b77a88..0da78106f84 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java
@@ -68,9 +68,10 @@ public final class DistSQLUpdateExecuteEngine {
@SuppressWarnings("rawtypes")
private void executeRuleDefinitionUpdate() throws SQLException {
- Optional<DatabaseRuleDefinitionExecutor> databaseExecutor =
DatabaseRuleDefinitionExecutorFactory.findInstance(sqlStatement,
contextManager.getDatabase(databaseName));
+ ShardingSphereDatabase database =
contextManager.getDatabase(databaseName);
+ Optional<DatabaseRuleDefinitionExecutor> databaseExecutor =
DatabaseRuleDefinitionExecutorFactory.findInstance(sqlStatement, database);
if (databaseExecutor.isPresent()) {
- new
DatabaseRuleDefinitionExecuteEngine((DatabaseRuleDefinitionStatement)
sqlStatement, contextManager, databaseName,
databaseExecutor.get()).executeUpdate();
+ new
DatabaseRuleDefinitionExecuteEngine((DatabaseRuleDefinitionStatement)
sqlStatement, contextManager, database, databaseExecutor.get()).executeUpdate();
} else {
new
GlobalRuleDefinitionExecuteEngine((GlobalRuleDefinitionStatement) sqlStatement,
contextManager,
TypedSPILoader.getService(GlobalRuleDefinitionExecutor.class,
sqlStatement.getClass())).executeUpdate();
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
index 91dc8da00a4..affbfc14e36 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.distsql.handler.engine.update.rdl.rule.spi.data
import
org.apache.shardingsphere.distsql.handler.required.DistSQLExecutorRequiredChecker;
import
org.apache.shardingsphere.distsql.statement.type.rdl.rule.database.DatabaseRuleDefinitionStatement;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
+import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -39,28 +40,29 @@ public final class DatabaseRuleDefinitionExecuteEngine {
private final ContextManager contextManager;
- private final String databaseName;
+ private final ShardingSphereDatabase database;
@SuppressWarnings("rawtypes")
private final DatabaseRuleDefinitionExecutor executor;
/**
* Execute update.
+ *
* @throws SQLException SQL Exception
*/
@SuppressWarnings("unchecked")
public void executeUpdate() throws SQLException {
checkBeforeUpdate();
- Optional<ShardingSphereRule> rule =
contextManager.getDatabase(databaseName).getRuleMetaData().findSingleRule(executor.getRuleClass());
+ Optional<ShardingSphereRule> rule =
database.getRuleMetaData().findSingleRule(executor.getRuleClass());
if (getRefreshStatus(rule.isPresent())) {
RuleConfiguration currentRuleConfig =
rule.map(ShardingSphereRule::getConfiguration).orElse(null);
- DatabaseRuleOperatorFactory.newInstance(contextManager,
executor).operate(sqlStatement, contextManager.getDatabase(databaseName),
currentRuleConfig);
+ DatabaseRuleOperatorFactory.newInstance(contextManager,
executor).operate(sqlStatement, database, currentRuleConfig);
}
}
@SuppressWarnings("unchecked")
private void checkBeforeUpdate() {
- new DistSQLExecutorRequiredChecker(executor).check(sqlStatement,
contextManager, contextManager.getDatabase(databaseName));
+ new DistSQLExecutorRequiredChecker(executor).check(sqlStatement,
contextManager, database);
executor.checkBeforeUpdate(sqlStatement);
}