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}")