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 2d57027abae Use database default schema in 
RefreshTableMetaDataExecutor (#39494)
2d57027abae is described below

commit 2d57027abae9fa6476e69c2f9a9917914e283f91
Author: Haoran Meng <[email protected]>
AuthorDate: Mon Aug 17 17:31:23 2026 +0800

    Use database default schema in RefreshTableMetaDataExecutor (#39494)
    
    * Use database default schema in RefreshTableMetaDataExecutor
    
    * Fix DistSQLUpdateProxyBackendHandlerTestQLUpdate
---
 .../refresh/RefreshTableMetaDataExecutor.java      |  3 +-
 .../DistSQLUpdateProxyBackendHandlerTest.java      |  1 -
 .../refresh/RefreshTableMetaDataExecutorTest.java  | 60 ++++------------------
 3 files changed, 12 insertions(+), 52 deletions(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutor.java
index 1e326acd776..a86422dcbf4 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutor.java
@@ -18,7 +18,6 @@
 package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.refresh;
 
 import lombok.Setter;
-import 
org.apache.shardingsphere.database.connector.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.distsql.handler.aware.DistSQLExecutorDatabaseAware;
 import 
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExecutor;
 import 
org.apache.shardingsphere.distsql.statement.type.ral.updatable.RefreshTableMetaDataStatement;
@@ -64,7 +63,7 @@ public final class RefreshTableMetaDataExecutor implements 
DistSQLUpdateExecutor
     }
     
     private IdentifierValue getSchemaName(final RefreshTableMetaDataStatement 
sqlStatement) {
-        return sqlStatement.getSchemaName().orElseGet(() -> new 
IdentifierValue(new 
DatabaseTypeRegistry(database.getProtocolType()).getDefaultSchemaName(database.getName())));
+        return sqlStatement.getSchemaName().orElseGet(() -> new 
IdentifierValue(database.getDefaultSchemaName()));
     }
     
     private void checkBeforeUpdate(final RefreshTableMetaDataStatement 
sqlStatement, final IdentifierValue schemaName) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
index 3e1b1cbf2c6..99cef91eb04 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
@@ -124,7 +124,6 @@ class DistSQLUpdateProxyBackendHandlerTest {
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("ds_0",
 mock(StorageUnit.class)));
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
         
when(database.containsSchema(any(IdentifierValue.class))).thenReturn(true);
-        when(database.getProtocolType()).thenReturn(databaseType);
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         when(contextManager.getDatabase("foo_db")).thenReturn(database);
         RefreshTableMetaDataStatement sqlStatement = new 
RefreshTableMetaDataStatement();
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutorTest.java
index a320aa71757..aa454e6c879 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/refresh/RefreshTableMetaDataExecutorTest.java
@@ -17,11 +17,6 @@
 
 package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.refresh;
 
-import 
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.DialectDatabaseMetaData;
-import 
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.IdentifierPatternType;
-import 
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.schema.DialectSchemaOption;
-import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
-import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import 
org.apache.shardingsphere.distsql.handler.engine.update.DistSQLUpdateExecutor;
 import 
org.apache.shardingsphere.distsql.statement.type.ral.updatable.RefreshTableMetaDataStatement;
 import 
org.apache.shardingsphere.infra.exception.kernel.metadata.SchemaNotFoundException;
@@ -36,24 +31,19 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
 import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
 
 import java.util.Collections;
-import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 class RefreshTableMetaDataExecutorTest {
     
-    private final DatabaseType databaseType = mock(DatabaseType.class);
-    
     private final RefreshTableMetaDataExecutor executor = 
(RefreshTableMetaDataExecutor) 
TypedSPILoader.getService(DistSQLUpdateExecutor.class, 
RefreshTableMetaDataStatement.class);
     
     @Test
@@ -83,65 +73,46 @@ class RefreshTableMetaDataExecutorTest {
     
     @Test
     void assertExecuteUpdateWithReloadTableWithoutStorageUnit() {
-        RefreshTableMetaDataStatement sqlStatement = new 
RefreshTableMetaDataStatement(new IdentifierValue("t_order"), null, null);
         ShardingSphereDatabase database = mockDatabase(true);
-        when(database.getProtocolType()).thenReturn(databaseType);
-        DialectDatabaseMetaData dialectDatabaseMetaData = 
mockDialectDatabaseMetaData();
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
-        when(schema.getName()).thenReturn("public");
+        when(schema.getName()).thenReturn("foo_default_schema");
         when(schema.containsTable(new 
IdentifierValue("t_order"))).thenReturn(true);
-        when(database.getSchema(new 
IdentifierValue("public"))).thenReturn(schema);
+        when(database.getSchema(new 
IdentifierValue("foo_default_schema"))).thenReturn(schema);
         ContextManager contextManager = mock(ContextManager.class);
         executor.setDatabase(database);
-        try (MockedStatic<DatabaseTypedSPILoader> mockedStatic = 
mockStatic(DatabaseTypedSPILoader.class)) {
-            mockedStatic.when(() -> 
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
databaseType)).thenReturn(dialectDatabaseMetaData);
-            executor.executeUpdate(sqlStatement, contextManager);
-        }
-        verify(contextManager).reloadTable(database, "public", new 
IdentifierValue("t_order"));
+        executor.executeUpdate(new RefreshTableMetaDataStatement(new 
IdentifierValue("t_order"), null, null), contextManager);
+        verify(contextManager).reloadTable(database, "foo_default_schema", new 
IdentifierValue("t_order"));
     }
     
     @Test
     void assertExecuteUpdateWithReloadDatabase() {
-        RefreshTableMetaDataStatement sqlStatement = new 
RefreshTableMetaDataStatement(null, null, null);
         ShardingSphereDatabase database = mockDatabase(true);
-        when(database.getProtocolType()).thenReturn(databaseType);
-        DialectDatabaseMetaData dialectDatabaseMetaData = 
mockDialectDatabaseMetaData();
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         ContextManager contextManager = mock(ContextManager.class);
         executor.setDatabase(database);
-        try (MockedStatic<DatabaseTypedSPILoader> mockedStatic = 
mockStatic(DatabaseTypedSPILoader.class)) {
-            mockedStatic.when(() -> 
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
databaseType)).thenReturn(dialectDatabaseMetaData);
-            executor.executeUpdate(sqlStatement, contextManager);
-        }
+        executor.executeUpdate(new RefreshTableMetaDataStatement(null, null, 
null), contextManager);
         verify(contextManager).reloadDatabase(database);
     }
     
     @Test
     void assertExecuteUpdateWithEmptyStorageUnits() {
-        RefreshTableMetaDataStatement sqlStatement = new 
RefreshTableMetaDataStatement(null, null, null);
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
         when(database.getName()).thenReturn("logic_db");
-        when(database.getProtocolType()).thenReturn(databaseType);
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
-        DialectDatabaseMetaData dialectDatabaseMetaData = 
mockDialectDatabaseMetaData();
         executor.setDatabase(database);
-        try (MockedStatic<DatabaseTypedSPILoader> mockedStatic = 
mockStatic(DatabaseTypedSPILoader.class)) {
-            mockedStatic.when(() -> 
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
databaseType)).thenReturn(dialectDatabaseMetaData);
-            assertThrows(EmptyStorageUnitException.class, () -> 
executor.executeUpdate(sqlStatement, mock(ContextManager.class)));
-        }
+        assertThrows(EmptyStorageUnitException.class, () -> 
executor.executeUpdate(new RefreshTableMetaDataStatement(null, null, null), 
mock(ContextManager.class)));
     }
     
     @Test
     void assertExecuteUpdateWithMissingStorageUnit() {
         RefreshTableMetaDataStatement sqlStatement = new 
RefreshTableMetaDataStatement(null, "miss_ds", null);
         ShardingSphereDatabase database = mockDatabase(true);
-        when(database.getProtocolType()).thenReturn(databaseType);
-        DialectDatabaseMetaData dialectDatabaseMetaData = 
mockDialectDatabaseMetaData();
+        when(database.getDefaultSchemaName()).thenReturn("foo_default_schema");
         executor.setDatabase(database);
-        try (MockedStatic<DatabaseTypedSPILoader> mockedStatic = 
mockStatic(DatabaseTypedSPILoader.class)) {
-            mockedStatic.when(() -> 
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, 
databaseType)).thenReturn(dialectDatabaseMetaData);
-            assertThrows(MissingRequiredStorageUnitsException.class, () -> 
executor.executeUpdate(sqlStatement, mock(ContextManager.class)));
-        }
+        assertThrows(MissingRequiredStorageUnitsException.class, () -> 
executor.executeUpdate(sqlStatement, mock(ContextManager.class)));
     }
     
     @Test
@@ -171,13 +142,4 @@ class RefreshTableMetaDataExecutorTest {
         
when(result.containsSchema(any(IdentifierValue.class))).thenReturn(schemaExists);
         return result;
     }
-    
-    private DialectDatabaseMetaData mockDialectDatabaseMetaData() {
-        DialectDatabaseMetaData result = mock(DialectDatabaseMetaData.class);
-        DialectSchemaOption schemaOption = mock(DialectSchemaOption.class);
-        
when(schemaOption.getDefaultSchema()).thenReturn(Optional.of("public"));
-        when(result.getSchemaOption()).thenReturn(schemaOption);
-        
when(result.getIdentifierPatternType()).thenReturn(IdentifierPatternType.KEEP_ORIGIN);
-        return result;
-    }
 }

Reply via email to