This is an automated email from the ASF dual-hosted git repository.
yx9o 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 2e1eb7d8a1f Use database default schema in schema refresh utility
(#39597)
2e1eb7d8a1f is described below
commit 2e1eb7d8a1f1db529c2079138dcc8658636d8fcf
Author: Haoran Meng <[email protected]>
AuthorDate: Wed Aug 26 08:21:24 2026 +0800
Use database default schema in schema refresh utility (#39597)
---
.../mode/metadata/refresher/util/SchemaRefreshUtils.java | 3 +--
.../mode/metadata/refresher/util/SchemaRefreshUtilsTest.java | 10 ++++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtils.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtils.java
index 966f76931b0..1b87b7d2deb 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtils.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtils.java
@@ -20,7 +20,6 @@ package
org.apache.shardingsphere.mode.metadata.refresher.util;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierScope;
-import
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
import
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -80,6 +79,6 @@ public final class SchemaRefreshUtils {
private static IdentifierValue getRawSchemaName(final
ShardingSphereDatabase database, final SQLStatementContext sqlStatementContext)
{
return sqlStatementContext.getTablesContext().getIdentifierSchemaName()
- .orElseGet(() -> new IdentifierValue(new
DatabaseTypeRegistry(sqlStatementContext.getSqlStatement().getDatabaseType()).getDefaultSchemaName(database.getName())));
+ .orElseGet(() -> new
IdentifierValue(database.getDefaultSchemaName()));
}
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
index 30dad64c37f..1d3930462d6 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/util/SchemaRefreshUtilsTest.java
@@ -74,6 +74,16 @@ class SchemaRefreshUtilsTest {
assertThat(SchemaRefreshUtils.getActualSchemaName(database, new
IdentifierValue("Foo_Schema")), is("FOO_SCHEMA"));
}
+ @Test
+ void assertGetActualSchemaNameWithoutSchemaUsesDatabaseDefault() {
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
+ when(database.getDefaultSchemaName()).thenReturn("FOO_DEFAULT_SCHEMA");
+ when(database.getIdentifierContext()).thenReturn(new
DatabaseIdentifierContext(IdentifierCasePolicyFactory.newUpperCasePolicySet(),
+ IdentifierCasePolicyFactory.newSensitivePolicySet(),
IdentifierCasePolicyFactory.newInsensitivePolicySet(), false));
+ when(database.getAllSchemas()).thenReturn(Collections.emptyList());
+ assertThat(SchemaRefreshUtils.getActualSchemaName(database,
createSQLStatementContextWithoutSchema()), is("FOO_DEFAULT_SCHEMA"));
+ }
+
private ShardingSphereDatabase createDatabase() {
return new ShardingSphereDatabase("FOO_DB", databaseType, new
ResourceMetaData(Collections.emptyMap()), new
RuleMetaData(Collections.emptyList()), Collections.emptyList(),
new ConfigurationProperties(new Properties()));