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 7e011c78d85 Use database default schema in standalone metadata rebuild 
(#39500)
7e011c78d85 is described below

commit 7e011c78d85e8caab924f2b50917bc91bd1dd8c0
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Aug 18 16:29:04 2026 +0800

    Use database default schema in standalone metadata rebuild (#39500)
---
 .../service/StandaloneMetaDataManagerPersistService.java       |  4 +---
 .../service/StandaloneMetaDataManagerPersistServiceTest.java   | 10 +++++++++-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index 9c15c36b687..4080811390d 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.mode.manager.standalone.persist.service;
 
 import lombok.SneakyThrows;
-import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.exception.external.sql.type.wrapper.SQLWrapperException;
@@ -342,8 +341,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     private ShardingSphereDatabase rebuildDatabaseSchemaIndex(final String 
databaseName, final MetaDataContexts metaDataContexts) {
         ShardingSphereDatabase database = 
metaDataContexts.getMetaData().getDatabase(databaseName);
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(database.getResourceMetaData().getStorageUnits(), 
database.getRuleMetaData().getRules(),
-                metaDataContexts.getMetaData().getProps(), new 
DatabaseTypeRegistry(database.getProtocolType()).getDefaultSchemaName(databaseName),
 database.getIdentifierContext(),
-                database.getAllSchemas());
+                metaDataContexts.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, metaDataContexts.getMetaData().getProps());
diff --git 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
index 2bdfea11105..049b50e26fb 100644
--- 
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
+++ 
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
@@ -53,6 +53,7 @@ import java.util.Properties;
 
 import static 
org.apache.shardingsphere.test.infra.framework.matcher.ShardingSphereArgumentVerifyMatchers.deepEq;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
@@ -164,6 +165,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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 StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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");
         SingleRule singleRule = mock(SingleRule.class);
         when(singleRule.getConfiguration()).thenReturn(new 
SingleRuleConfiguration(Collections.singleton("foo_ds.foo_tbl"), null));
         when(singleRule.getAttributes()).thenReturn(new RuleAttributes());
@@ -206,6 +209,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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));
@@ -226,6 +230,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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));
@@ -237,7 +242,8 @@ class StandaloneMetaDataManagerPersistServiceTest {
         when(metaDataPersistFacade.getDatabaseRuleService().delete("foo_db", 
Collections.singleton(ruleConfig))).thenReturn(Collections.singleton(new 
MetaDataVersion(databaseRuleNodePath)));
         metaDataManagerPersistService.removeRuleConfigurationItem(database, 
ruleConfig);
         
verify(metaDataPersistFacade.getDatabaseRuleService()).delete("foo_db", 
Collections.singleton(ruleConfig));
-        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabaseByUnloadSingleTable(eq("foo_db"),
 any(), eq(database));
+        
verify(metaDataPersistFacade.getDatabaseMetaDataFacade()).persistReloadDatabaseByUnloadSingleTable(
+                eq("foo_db"), argThat(each -> 
each.containsSchema("foo_default_schema")), eq(database));
         verify(metaDataPersistFacade.getDatabaseMetaDataFacade(), 
never()).persistAlteredTables(eq("foo_db"), any(), any());
     }
     
@@ -246,6 +252,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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));
@@ -260,6 +267,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
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));

Reply via email to