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 ff75773edc6 Use protocol schema resolver in database factory (#39691)
ff75773edc6 is described below

commit ff75773edc64cfec63547e45242959d5df9c92bc
Author: Haoran Meng <[email protected]>
AuthorDate: Wed Sep 2 17:12:55 2026 +0800

    Use protocol schema resolver in database factory (#39691)
---
 .../metadata/database/ShardingSphereDatabaseFactory.java    |  6 +++---
 .../database/ShardingSphereDatabaseFactoryTest.java         | 13 +++++++------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactory.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactory.java
index 436dc94433e..0e0a7a9d2b1 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactory.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactory.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.infra.metadata.database;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.DefaultSchemaNameResolver;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
-import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
 import 
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDatabaseConfiguration;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
@@ -63,7 +63,7 @@ public final class ShardingSphereDatabaseFactory {
         DatabaseConfiguration databaseConfig = new 
DataSourceProvidedDatabaseConfiguration(new LinkedHashMap<>(), new 
LinkedList<>());
         ResourceMetaData resourceMetaData = new 
ResourceMetaData(databaseConfig.getDataSources(), 
databaseConfig.getStorageUnits());
         Map<String, ShardingSphereSchema> systemSchemas = 
SystemSchemaBuilder.build(name, protocolType, props);
-        String defaultSchemaName = new 
DatabaseTypeRegistry(protocolType).getDefaultSchemaName(name);
+        String defaultSchemaName = 
DefaultSchemaNameResolver.resolveProtocol(protocolType, name);
         if (!systemSchemas.containsKey(defaultSchemaName)) {
             systemSchemas.put(defaultSchemaName, new 
ShardingSphereSchema(defaultSchemaName, protocolType));
         }
@@ -138,7 +138,7 @@ public final class ShardingSphereDatabaseFactory {
         DatabaseIdentifierContext identifierContext = 
DatabaseIdentifierContextFactory.create(protocolType, resourceMetaData, props);
         Collection<ShardingSphereRule> databaseRules = 
DatabaseRulesBuilder.build(name, protocolType, databaseConfig, 
computeNodeInstanceContext, resourceMetaData);
         Map<String, ShardingSphereSchema> schemas = new 
ConcurrentHashMap<>(GenericSchemaBuilder.build(protocolType,
-                new 
GenericSchemaBuilderMaterial(resourceMetaData.getStorageUnits(), databaseRules, 
props, new DatabaseTypeRegistry(protocolType).getDefaultSchemaName(name),
+                new 
GenericSchemaBuilderMaterial(resourceMetaData.getStorageUnits(), databaseRules, 
props, DefaultSchemaNameResolver.resolveProtocol(protocolType, name),
                         identifierContext, revisionCandidateSchemas)));
         SystemSchemaBuilder.build(name, protocolType, 
props).forEach(schemas::putIfAbsent);
         return new ShardingSphereDatabase(name, protocolType, 
resourceMetaData, new RuleMetaData(databaseRules), schemas.values(), props);
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactoryTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactoryTest.java
index 7cf1cd5a401..553c8482118 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactoryTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabaseFactoryTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.shardingsphere.infra.metadata.database;
 
+import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.DefaultSchemaNameResolver;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
-import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
 import 
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDatabaseConfiguration;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
@@ -36,7 +36,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
-import org.mockito.MockedConstruction;
 import org.mockito.MockedStatic;
 
 import java.sql.SQLException;
@@ -53,9 +52,7 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockConstruction;
 import static org.mockito.Mockito.mockStatic;
-import static org.mockito.Mockito.when;
 
 class ShardingSphereDatabaseFactoryTest {
     
@@ -85,17 +82,19 @@ class ShardingSphereDatabaseFactoryTest {
         systemSchemas.put("system_schema", new 
ShardingSphereSchema("system_schema", protocolType));
         systemSchemas.put("metadata_schema", new 
ShardingSphereSchema("metadata_schema", protocolType));
         try (
-                MockedConstruction<DatabaseTypeRegistry> ignored = 
mockConstruction(DatabaseTypeRegistry.class, (mock, context) -> 
when(mock.getDefaultSchemaName("foo_db")).thenReturn("foo_schema"));
+                MockedStatic<DefaultSchemaNameResolver> 
mockedDefaultSchemaNameResolver = mockStatic(DefaultSchemaNameResolver.class);
                 MockedStatic<DatabaseRulesBuilder> mockedRulesBuilder = 
mockStatic(DatabaseRulesBuilder.class);
                 MockedStatic<GenericSchemaBuilder> mockedGenericSchemaBuilder 
= mockStatic(GenericSchemaBuilder.class);
                 MockedStatic<SystemSchemaBuilder> mockedSystemSchemaBuilder = 
mockStatic(SystemSchemaBuilder.class)) {
             ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
+            mockedDefaultSchemaNameResolver.when(() -> 
DefaultSchemaNameResolver.resolveProtocol(protocolType, 
"foo_db")).thenReturn("foo_schema");
             mockedRulesBuilder.when(() -> 
DatabaseRulesBuilder.build(eq("foo_db"), eq(protocolType), eq(databaseConfig), 
eq(computeNodeInstanceContext), any(ResourceMetaData.class)))
                     
.thenReturn(Collections.singleton(mock(ShardingSphereRule.class)));
             mockedGenericSchemaBuilder.when(() -> 
GenericSchemaBuilder.build(eq(protocolType), 
any(GenericSchemaBuilderMaterial.class)))
                     .thenReturn(Collections.singletonMap("foo_schema", new 
ShardingSphereSchema("foo_schema", protocolType)));
             mockedSystemSchemaBuilder.when(() -> 
SystemSchemaBuilder.build("foo_db", protocolType, 
props)).thenReturn(systemSchemas);
             ShardingSphereDatabase actual = 
ShardingSphereDatabaseFactory.create("foo_db", protocolType, databaseConfig, 
props, computeNodeInstanceContext);
+            mockedDefaultSchemaNameResolver.verify(() -> 
DefaultSchemaNameResolver.resolveProtocol(protocolType, "foo_db"));
             assertThat(actual.getName(), is("foo_db"));
             assertThat(actual.getProtocolType(), is(protocolType));
             assertThat(actual.getAllSchemas().size(), is(3));
@@ -111,11 +110,12 @@ class ShardingSphereDatabaseFactoryTest {
         DatabaseType protocolType = mock(DatabaseType.class);
         ShardingSphereSchema candidateSchema = new 
ShardingSphereSchema("candidate_schema", protocolType);
         try (
-                MockedConstruction<DatabaseTypeRegistry> ignored = 
mockConstruction(DatabaseTypeRegistry.class, (mock, context) -> 
when(mock.getDefaultSchemaName("foo_db")).thenReturn("foo_schema"));
+                MockedStatic<DefaultSchemaNameResolver> 
mockedDefaultSchemaNameResolver = mockStatic(DefaultSchemaNameResolver.class);
                 MockedStatic<DatabaseRulesBuilder> mockedRulesBuilder = 
mockStatic(DatabaseRulesBuilder.class);
                 MockedStatic<GenericSchemaBuilder> mockedGenericSchemaBuilder 
= mockStatic(GenericSchemaBuilder.class);
                 MockedStatic<SystemSchemaBuilder> mockedSystemSchemaBuilder = 
mockStatic(SystemSchemaBuilder.class)) {
             ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
+            mockedDefaultSchemaNameResolver.when(() -> 
DefaultSchemaNameResolver.resolveProtocol(protocolType, 
"foo_db")).thenReturn("foo_schema");
             mockedRulesBuilder.when(() -> 
DatabaseRulesBuilder.build(eq("foo_db"), eq(protocolType), eq(databaseConfig), 
eq(computeNodeInstanceContext), any(ResourceMetaData.class)))
                     
.thenReturn(Collections.singleton(mock(ShardingSphereRule.class)));
             mockedGenericSchemaBuilder.when(() -> 
GenericSchemaBuilder.build(eq(protocolType),
@@ -124,6 +124,7 @@ class ShardingSphereDatabaseFactoryTest {
             mockedSystemSchemaBuilder.when(() -> 
SystemSchemaBuilder.build("foo_db", protocolType, 
props)).thenReturn(Collections.emptyMap());
             ShardingSphereDatabase actual = 
ShardingSphereDatabaseFactory.createWithRevisionCandidateSchemas(
                     "foo_db", protocolType, databaseConfig, props, 
computeNodeInstanceContext, Collections.singleton(candidateSchema));
+            mockedDefaultSchemaNameResolver.verify(() -> 
DefaultSchemaNameResolver.resolveProtocol(protocolType, "foo_db"));
             assertTrue(actual.containsSchema("foo_schema"));
         }
     }

Reply via email to