This is an automated email from the ASF dual-hosted git repository.
jiangmaolin 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 f0d0c9aa856 Refactor DistSQLUpdateExecuteEngine, fix global rule
definition failed without use db. (#36457)
f0d0c9aa856 is described below
commit f0d0c9aa8562ad7f90d945cb62b004b5f9d2e193
Author: Raigor <[email protected]>
AuthorDate: Tue Sep 2 17:56:26 2025 +0800
Refactor DistSQLUpdateExecuteEngine, fix global rule definition failed
without use db. (#36457)
---
.../handler/update/CreateBroadcastTableRuleExecutorTest.java | 1 -
.../handler/update/DropBroadcastTableRuleExecutorTest.java | 1 -
.../distsql/handler/update/AlterEncryptRuleExecutorTest.java | 1 -
.../distsql/handler/update/CreateEncryptRuleExecutorTest.java | 1 -
.../distsql/handler/update/DropEncryptRuleExecutorTest.java | 1 -
.../mask/distsql/handler/update/AlterMaskRuleExecutorTest.java | 1 -
.../mask/distsql/handler/update/CreateMaskRuleExecutorTest.java | 1 -
.../mask/distsql/handler/update/DropMaskRuleExecutorTest.java | 1 -
.../distsql/handler/engine/update/DistSQLUpdateExecuteEngine.java | 8 +++++---
.../distsql/handler/update/LoadSingleTableExecutorTest.java | 1 -
.../update/SetDefaultSingleTableStorageUnitExecutorTest.java | 1 -
.../backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java | 1 -
12 files changed, 5 insertions(+), 14 deletions(-)
diff --git
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
index 7315b2a2f28..c2cdb801635 100644
---
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
+++
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/CreateBroadcastTableRuleExecutorTest.java
@@ -104,7 +104,6 @@ class CreateBroadcastTableRuleExecutorTest {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new RuleMetaData(null ==
rule ? Collections.emptyList() : Collections.singleton(rule)));
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
index 6f82c951f47..5609508386d 100644
---
a/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
+++
b/features/broadcast/distsql/handler/src/test/java/org/apache/shardingsphere/broadcast/distsql/handler/update/DropBroadcastTableRuleExecutorTest.java
@@ -68,7 +68,6 @@ class DropBroadcastTableRuleExecutorTest {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new RuleMetaData(null ==
rule ? Collections.emptyList() : Collections.singleton(rule)));
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
index 5a3241796a3..e668bfaa4cc 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/AlterEncryptRuleExecutorTest.java
@@ -108,7 +108,6 @@ class AlterEncryptRuleExecutorTest {
private ContextManager mockContextManager(final EncryptRule rule) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(new
ShardingSphereDatabase("foo_db", mock(), mock(), new
RuleMetaData(Collections.singleton(rule)), Collections.emptyList()));
return result;
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
index 5237d5bdb59..3f1aaa3b808 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleExecutorTest.java
@@ -161,7 +161,6 @@ class CreateEncryptRuleExecutorTest {
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(rule)));
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
index 40cc89b7e71..7c73f389c29 100644
---
a/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
+++
b/features/encrypt/distsql/handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/update/DropEncryptRuleExecutorTest.java
@@ -139,7 +139,6 @@ class DropEncryptRuleExecutorTest {
private ContextManager mockContextManager(final EncryptRule rule) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db",
mock(), mock(), new RuleMetaData(Collections.singleton(rule)),
Collections.emptyList());
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
index 2db77a27347..a61d0dc211f 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/AlterMaskRuleExecutorTest.java
@@ -104,7 +104,6 @@ class AlterMaskRuleExecutorTest {
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(rule)));
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
index cd4a4a25dc0..a7198215172 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/CreateMaskRuleExecutorTest.java
@@ -122,7 +122,6 @@ class CreateMaskRuleExecutorTest {
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(rule)));
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
index dc9c3bed3b5..03aeeca0a9f 100644
---
a/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
+++
b/features/mask/distsql/handler/src/test/java/org/apache/shardingsphere/mask/distsql/handler/update/DropMaskRuleExecutorTest.java
@@ -101,7 +101,6 @@ class DropMaskRuleExecutorTest {
private ContextManager mockContextManager(final MaskRule rule) {
ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db",
mock(), mock(), new RuleMetaData(Collections.singleton(rule)),
Collections.emptyList());
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
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 cf5308e60d7..076294e0569 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
@@ -69,13 +69,15 @@ public final class DistSQLUpdateExecuteEngine {
@SuppressWarnings("rawtypes")
private void executeRuleDefinitionUpdate() throws SQLException {
+ if (sqlStatement instanceof GlobalRuleDefinitionStatement) {
+ GlobalRuleDefinitionExecutor globalExecutor =
GlobalRuleDefinitionExecutorFactory.newInstance(sqlStatement,
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData());
+ new
GlobalRuleDefinitionExecuteEngine((GlobalRuleDefinitionStatement) sqlStatement,
contextManager, globalExecutor).executeUpdate();
+ return;
+ }
ShardingSphereDatabase database =
contextManager.getDatabase(databaseName);
Optional<DatabaseRuleDefinitionExecutor> databaseExecutor =
DatabaseRuleDefinitionExecutorFactory.findInstance(sqlStatement, database);
if (databaseExecutor.isPresent()) {
new
DatabaseRuleDefinitionExecuteEngine((DatabaseRuleDefinitionStatement)
sqlStatement, contextManager, database, databaseExecutor.get()).executeUpdate();
- } else {
- GlobalRuleDefinitionExecutor globalExecutor =
GlobalRuleDefinitionExecutorFactory.newInstance(sqlStatement,
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData());
- new
GlobalRuleDefinitionExecuteEngine((GlobalRuleDefinitionStatement) sqlStatement,
contextManager, globalExecutor).executeUpdate();
}
}
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
index 4eb3bd0c92b..ed8c28c5b59 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableExecutorTest.java
@@ -86,7 +86,6 @@ class LoadSingleTableExecutorTest {
private ContextManager mockContextManager(final SingleRule rule) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
if (null == rule) {
when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.emptyList()));
diff --git
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
index 5bfb13f1bcc..3bddcf8af94 100644
---
a/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
+++
b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitExecutorTest.java
@@ -87,7 +87,6 @@ class SetDefaultSingleTableStorageUnitExecutorTest {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(database.getName()).thenReturn("foo_db");
when(database.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(rule)));
-
when(result.getMetaDataContexts().getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getDatabase("foo_db")).thenReturn(database);
return result;
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index f1cd19a0e7a..906067aa644 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -109,7 +109,6 @@ class DistSQLBackendHandlerFactoryTest {
private MetaDataContexts mockMetaDataContexts(final ShardingSphereDatabase
database) {
MetaDataContexts result = mock(MetaDataContexts.class,
RETURNS_DEEP_STUBS);
- when(result.getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(result.getMetaData().getDatabase("foo_db")).thenReturn(database);
return result;
}