This is an automated email from the ASF dual-hosted git repository.

menghaoranss 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 9b777f016fd Use database default schema in cluster metadata rebuild 
(#39502)
9b777f016fd is described below

commit 9b777f016fd6b89d75a030b855087831aff43383
Author: Haoran Meng <[email protected]>
AuthorDate: Wed Aug 19 10:16:39 2026 +0800

    Use database default schema in cluster metadata rebuild (#39502)
---
 .../persist/service/ClusterMetaDataManagerPersistService.java      | 4 +---
 .../persist/service/ClusterMetaDataManagerPersistServiceTest.java  | 7 ++++++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index f5a8653c66d..2e6d9f280af 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilder;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -288,8 +287,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
     private ShardingSphereDatabase rebuildDatabaseSchemaIndex(final String 
databaseName, final MetaDataContexts reloadMetaDataContexts) {
         ShardingSphereDatabase database = 
reloadMetaDataContexts.getMetaData().getDatabase(databaseName);
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(database.getResourceMetaData().getStorageUnits(), 
database.getRuleMetaData().getRules(),
-                reloadMetaDataContexts.getMetaData().getProps(), new 
DatabaseTypeRegistry(database.getProtocolType()).getDefaultSchemaName(databaseName),
 database.getIdentifierContext(),
-                database.getAllSchemas());
+                reloadMetaDataContexts.getMetaData().getProps(), 
database.getDefaultSchemaName(), database.getIdentifierContext(), 
database.getAllSchemas());
         Collection<ShardingSphereSchema> schemas = new 
LinkedList<>(GenericSchemaBuilder.build(database.getProtocolType(), 
material).values());
         return new ShardingSphereDatabase(database.getName(), 
database.getProtocolType(), database.getResourceMetaData(),
                 database.getRuleMetaData(), schemas, 
reloadMetaDataContexts.getMetaData().getProps());
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
index 7d9aa0f2b61..cb8e2840ba0 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
@@ -54,6 +54,7 @@ import java.util.Properties;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyCollection;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
@@ -166,6 +167,7 @@ class ClusterMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
Answers.RETURNS_DEEP_STUBS);
         when(database.getName()).thenReturn("foo_db");
         
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"));
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         ShardingSphereRule rule = mock(ShardingSphereRule.class);
         when(rule.getAttributes()).thenReturn(new RuleAttributes());
         
when(database.getRuleMetaData().getRules()).thenReturn(Collections.singleton(rule));
@@ -182,6 +184,7 @@ class ClusterMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
Answers.RETURNS_DEEP_STUBS);
         when(database.getName()).thenReturn("foo_db");
         
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"));
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         ShardingSphereRule rule = mock(ShardingSphereRule.class);
         when(rule.getAttributes()).thenReturn(new RuleAttributes());
         
when(database.getRuleMetaData().getRules()).thenReturn(Collections.singleton(rule));
@@ -209,7 +212,8 @@ class ClusterMetaDataManagerPersistServiceTest {
         mockReloadedMetaDataContext();
         metaDataManagerPersistService.removeRuleConfigurationItem(database, 
ruleConfig);
         
verify(metaDataPersistFacade.getDatabaseRuleService()).delete("foo_db", 
Collections.singleton(ruleConfig));
-        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabaseByUnloadSingleTable(eq("foo_db"),
 any(), any());
+        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabaseByUnloadSingleTable(
+                eq("foo_db"), argThat(each -> 
each.containsSchema("foo_default_schema")), any());
         verify(metaDataPersistFacade.getDatabaseMetaDataFacade(), 
never()).persistAlteredTables(eq("foo_db"), any(), any());
     }
     
@@ -271,6 +275,7 @@ class ClusterMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase loadedDatabase = 
mock(ShardingSphereDatabase.class, Answers.RETURNS_DEEP_STUBS);
         when(loadedDatabase.getName()).thenReturn("foo_db");
         
when(loadedDatabase.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"));
+        
when(loadedDatabase.getDefaultSchemaName()).thenReturn("foo_default_schema");
         
when(loadedDatabase.getRuleMetaData().getRules()).thenReturn(Collections.singleton(rule));
         
when(loadedDatabase.getResourceMetaData().getStorageUnits()).thenReturn(new 
LinkedHashMap<>());
         ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(Collections.singleton(loadedDatabase), mock(), mock(), 
new ConfigurationProperties(new Properties()));

Reply via email to