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