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 28ea474dfee Use database default schema for proxy SQL federation 
(#39539)
28ea474dfee is described below

commit 28ea474dfee5277117ddc1769b4a4a0a8dcc19a5
Author: Haoran Meng <[email protected]>
AuthorDate: Mon Aug 24 21:53:45 2026 +0800

    Use database default schema for proxy SQL federation (#39539)
---
 .../shardingsphere/proxy/backend/connector/ProxySQLExecutor.java  | 3 +--
 .../proxy/backend/connector/ProxySQLExecutorTest.java             | 8 +++++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
index fe389841780..a975ee9e50c 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutor.java
@@ -128,8 +128,7 @@ public final class ProxySQLExecutor {
     }
     
     private String getSchemaName(final SQLStatementContext 
sqlStatementContext, final ShardingSphereDatabase database) {
-        String defaultSchemaName = new 
DatabaseTypeRegistry(sqlStatementContext.getSqlStatement().getDatabaseType()).getDefaultSchemaName(database.getName());
-        return 
sqlStatementContext.getTablesContext().getSchemaName().orElse(defaultSchemaName);
+        return 
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(database::getDefaultSchemaName);
     }
     
     /**
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index 962309c91fc..3041ee08c5c 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -80,6 +80,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.Tr
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.table.CreateTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.InsertStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
+import org.apache.shardingsphere.sqlfederation.engine.SQLFederationEngine;
 import org.apache.shardingsphere.sqlfederation.rule.SQLFederationRule;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.AutoMockExtension;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.StaticMockSettings;
@@ -218,7 +219,12 @@ class ProxySQLExecutorTest {
     @Test
     void assertConstructorUseDefaultSchemaWhenSchemaMissing() {
         when(connectionSession.getCurrentDatabaseName()).thenReturn("foo_db");
-        assertNotNull(createProxySQLExecutor("foo_schema", 
false).getSqlFederationEngine());
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
+        try (
+                MockedConstruction<SQLFederationEngine> ignored = 
mockConstruction(SQLFederationEngine.class,
+                        (mock, context) -> 
assertThat(context.arguments().get(1), is("foo_default_schema")))) {
+            assertNotNull(createProxySQLExecutor("foo_schema", 
false).getSqlFederationEngine());
+        }
     }
     
     @ParameterizedTest(name = "{0}")

Reply via email to