This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 5f68d723bfe Move ProxyContext.getAllDatabaseNames() to ContextManager 
(#36839)
5f68d723bfe is described below

commit 5f68d723bfe8582a9a63d4ccf06b700612088108
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Oct 10 17:35:58 2025 +0800

    Move ProxyContext.getAllDatabaseNames() to ContextManager (#36839)
---
 .../shardingsphere/mode/manager/ContextManager.java | 10 ++++++++++
 .../mode/manager/ContextManagerTest.java            |  5 +++++
 .../proxy/backend/context/ProxyContext.java         | 10 ----------
 .../executor/AbstractDatabaseMetaDataExecutor.java  |  6 +++---
 .../type/UnicastDatabaseProxyBackendHandler.java    |  2 +-
 .../proxy/backend/context/ProxyContextTest.java     | 21 ---------------------
 .../handler/ProxyBackendHandlerFactoryTest.java     |  2 +-
 .../DefaultDatabaseMetaDataExecutorTest.java        |  2 +-
 .../export/ExportStorageNodesExecutorTest.java      |  3 +--
 .../handler/admin/MySQLAdminExecutorCreator.java    |  2 +-
 .../admin/executor/ShowDatabasesExecutor.java       |  2 +-
 .../admin/executor/UnicastResourceShowExecutor.java |  2 +-
 .../SelectInformationSchemataExecutor.java          |  2 +-
 .../admin/MySQLAdminExecutorCreatorTest.java        |  4 ++--
 .../admin/executor/ShowDatabasesExecutorTest.java   |  6 +-----
 .../SelectInformationSchemataExecutorTest.java      |  5 +----
 16 files changed, 30 insertions(+), 54 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 1b9e099af92..9a221c35cd8 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -53,6 +53,7 @@ import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Context manager.
@@ -87,6 +88,15 @@ public final class ContextManager implements AutoCloseable {
         ContextManagerLifecycleListenerFactory.getListeners(this).forEach(each 
-> each.onInitialized(this));
     }
     
+    /**
+     * Get all database names.
+     *
+     * @return all database names
+     */
+    public Collection<String> getAllDatabaseNames() {
+        return 
metaDataContexts.getMetaData().getAllDatabases().stream().map(ShardingSphereDatabase::getName).collect(Collectors.toList());
+    }
+    
     /**
      * Get database.
      *
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 8bea86dfcb3..5cd0a317c30 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -115,6 +115,11 @@ class ContextManagerTest {
         return result;
     }
     
+    @Test
+    void assertGetAllDatabaseNames() {
+        assertThat(contextManager.getAllDatabaseNames(), 
is(Collections.singletonList("foo_db")));
+    }
+    
     @Test
     void assertGetDatabase() {
         assertNotNull(contextManager.getDatabase("foo_db"));
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
index 8bdca537fdb..70b53d5e5d8 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource;
 
 import java.util.Collection;
-import java.util.stream.Collectors;
 
 /**
  * Proxy context.
@@ -71,15 +70,6 @@ public final class ProxyContext {
         return 
contextManager.getMetaDataContexts().getMetaData().containsDatabase(name);
     }
     
-    /**
-     * Get all database names.
-     *
-     * @return all database names
-     */
-    public Collection<String> getAllDatabaseNames() {
-        return 
contextManager.getMetaDataContexts().getMetaData().getAllDatabases().stream().map(ShardingSphereDatabase::getName).collect(Collectors.toList());
-    }
-    
     /**
      * Get database type.
      *
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
index 95f16274eb8..e4f49aa1bd7 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
@@ -146,11 +146,11 @@ public abstract class AbstractDatabaseMetaDataExecutor 
implements DatabaseAdminQ
         @Override
         protected Collection<String> getDatabaseNames(final ConnectionSession 
connectionSession) {
             ShardingSphereDatabase database = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(connectionSession.getCurrentDatabaseName());
-            if (null != database && isAuthorized(database.getName(), 
connectionSession.getConnectionContext().getGrantee()) && 
AbstractDatabaseMetaDataExecutor.hasDataSource(database.getName())) {
+            if (null != database && isAuthorized(database.getName(), 
connectionSession.getConnectionContext().getGrantee()) && 
hasDataSource(database.getName())) {
                 return Collections.singleton(database.getName());
             }
-            Collection<String> databaseNames = 
ProxyContext.getInstance().getAllDatabaseNames().stream().filter(each -> 
isAuthorized(each, connectionSession.getConnectionContext().getGrantee()))
-                    
.filter(AbstractDatabaseMetaDataExecutor::hasDataSource).collect(Collectors.toList());
+            Collection<String> databaseNames = 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames().stream()
+                    .filter(each -> isAuthorized(each, 
connectionSession.getConnectionContext().getGrantee())).filter(AbstractDatabaseMetaDataExecutor::hasDataSource).collect(Collectors.toList());
             return databaseNames.isEmpty() ? Collections.emptyList() : 
Collections.singletonList(databaseNames.iterator().next());
         }
         
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/type/UnicastDatabaseProxyBackendHandler.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/type/UnicastDatabaseProxyBackendHandler.java
index 2eaa61599ed..edbd5870603 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/type/UnicastDatabaseProxyBackendHandler.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/data/type/UnicastDatabaseProxyBackendHandler.java
@@ -65,7 +65,7 @@ public final class UnicastDatabaseProxyBackendHandler 
implements DatabaseProxyBa
     }
     
     private String getFirstDatabaseName() {
-        Collection<String> databaseNames = 
ProxyContext.getInstance().getAllDatabaseNames();
+        Collection<String> databaseNames = 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames();
         ShardingSpherePreconditions.checkNotEmpty(databaseNames, 
NoDatabaseSelectedException::new);
         AuthorityRule authorityRule = 
queryContext.getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class);
         Optional<ShardingSpherePrivileges> privileges = 
authorityRule.findPrivileges(connectionSession.getConnectionContext().getGrantee());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 67674ee2867..717bad8e98a 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -35,12 +35,8 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Properties;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -52,8 +48,6 @@ import static org.mockito.Mockito.when;
 
 class ProxyContextTest {
     
-    private static final String SCHEMA_PATTERN = "db_%s";
-    
     private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
     
     private ContextManager currentContextManager;
@@ -90,21 +84,6 @@ class ProxyContextTest {
         assertFalse(ProxyContext.getInstance().databaseExists("db_1"));
     }
     
-    @Test
-    void assertGetAllDatabaseNames() {
-        Collection<ShardingSphereDatabase> databases = createDatabases();
-        ContextManager contextManager = mock(ContextManager.class, 
RETURNS_DEEP_STUBS);
-        ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(databases, mock(), mock(), new 
ConfigurationProperties(new Properties()));
-        MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
-        
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
-        ProxyContext.init(contextManager);
-        assertThat(new 
HashSet<>(ProxyContext.getInstance().getAllDatabaseNames()), 
is(databases.stream().map(ShardingSphereDatabase::getName).collect(Collectors.toSet())));
-    }
-    
-    private Collection<ShardingSphereDatabase> createDatabases() {
-        return IntStream.range(0, 10).mapToObj(i -> new 
ShardingSphereDatabase(String.format(SCHEMA_PATTERN, i), databaseType, mock(), 
mock(), Collections.emptyList())).collect(Collectors.toList());
-    }
-    
     private ShardingSphereDatabase mockDatabase() {
         ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         when(result.getName()).thenReturn("db");
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
index ff540e73136..2b9100c775d 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/ProxyBackendHandlerFactoryTest.java
@@ -185,7 +185,7 @@ class ProxyBackendHandlerFactoryTest {
     void assertNewInstanceWithQuery() throws SQLException {
         String sql = "SELECT * FROM t_order limit 1";
         ProxyContext proxyContext = ProxyContext.getInstance();
-        when(proxyContext.getAllDatabaseNames()).thenReturn(new 
HashSet<>(Collections.singletonList("db")));
+        
when(proxyContext.getContextManager().getAllDatabaseNames()).thenReturn(new 
HashSet<>(Collections.singletonList("db")));
         
when(proxyContext.getContextManager().getDatabase("db").containsDataSource()).thenReturn(true);
         SQLStatement sqlStatement = ProxySQLComQueryParser.parse(sql, 
databaseType, connectionSession);
         ProxyBackendHandler actual = 
ProxyBackendHandlerFactory.newInstance(databaseType, sql, sqlStatement, 
connectionSession, new HintValueContext());
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
index e52d9d068ee..9f0e572453b 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
@@ -155,7 +155,7 @@ class DefaultDatabaseMetaDataExecutorTest {
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
         when(result.getDatabase("auth_db")).thenReturn(database);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+        
when(result.getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
         return result;
     }
 }
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutorTest.java
index 3947832ed10..189b1133b36 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/export/ExportStorageNodesExecutorTest.java
@@ -93,7 +93,6 @@ class ExportStorageNodesExecutorTest {
     void assertExecuteWithWrongDatabaseName() {
         ContextManager contextManager = mockEmptyContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_metadata"));
         ExportStorageNodesStatement sqlStatement = new 
ExportStorageNodesStatement("foo", null);
         assertThrows(IllegalArgumentException.class, () -> new 
ExportStorageNodesExecutor().getRows(sqlStatement, contextManager));
     }
@@ -102,7 +101,6 @@ class ExportStorageNodesExecutorTest {
     void assertExecuteWithEmptyMetaData() {
         ContextManager contextManager = mockEmptyContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_metadata"));
         ExportStorageNodesStatement sqlStatement = new 
ExportStorageNodesStatement(null, null);
         Collection<LocalDataQueryResultRow> actual = new 
ExportStorageNodesExecutor().getRows(sqlStatement, contextManager);
         assertThat(actual.size(), is(1));
@@ -116,6 +114,7 @@ class ExportStorageNodesExecutorTest {
                 Collections.emptyList(), new 
ResourceMetaData(Collections.emptyMap()), new 
RuleMetaData(Collections.emptyList()), new ConfigurationProperties(new 
Properties()));
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, new 
ShardingSphereStatistics());
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
+        
when(result.getAllDatabaseNames()).thenReturn(Collections.singleton("empty_metadata"));
         return result;
     }
     
diff --git 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
index c43655d45fa..792d47fee3a 100644
--- 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
+++ 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreator.java
@@ -172,7 +172,7 @@ public final class MySQLAdminExecutorCreator implements 
DatabaseAdminExecutorCre
     }
     
     private boolean hasNoResource() {
-        Collection<String> databaseNames = 
ProxyContext.getInstance().getAllDatabaseNames();
+        Collection<String> databaseNames = 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames();
         if (databaseNames.isEmpty()) {
             return true;
         }
diff --git 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutor.java
 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutor.java
index 203f19870a3..4a72fb644a7 100644
--- 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutor.java
+++ 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutor.java
@@ -58,7 +58,7 @@ public final class ShowDatabasesExecutor implements 
DatabaseAdminQueryExecutor {
     private Collection<LocalDataQueryResultRow> getDatabaseNames(final 
ConnectionSession connectionSession) {
         AuthorityRule authorityRule = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class);
         AuthorityChecker authorityChecker = new 
AuthorityChecker(authorityRule, 
connectionSession.getConnectionContext().getGrantee());
-        return 
ProxyContext.getInstance().getAllDatabaseNames().stream().sorted()
+        return 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames().stream().sorted()
                 .filter(each -> checkLikePattern(each) && 
authorityChecker.isAuthorized(each)).map(LocalDataQueryResultRow::new).collect(Collectors.toList());
     }
     
diff --git 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
index ba3fe45dc76..553ee085215 100644
--- 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
+++ 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UnicastResourceShowExecutor.java
@@ -93,7 +93,7 @@ public final class UnicastResourceShowExecutor implements 
DatabaseAdminQueryExec
     }
     
     private String getFirstDatabaseName() {
-        Collection<String> databaseNames = 
ProxyContext.getInstance().getAllDatabaseNames();
+        Collection<String> databaseNames = 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames();
         if (databaseNames.isEmpty()) {
             throw new NoDatabaseSelectedException();
         }
diff --git 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
index bce94fc585e..d992a6c79b5 100644
--- 
a/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
+++ 
b/proxy/backend/dialect/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
@@ -87,7 +87,7 @@ public final class SelectInformationSchemataExecutor extends 
DefaultDatabaseMeta
     
     @Override
     protected Collection<String> getDatabaseNames(final ConnectionSession 
connectionSession) {
-        Collection<String> databaseNames = 
ProxyContext.getInstance().getAllDatabaseNames().stream()
+        Collection<String> databaseNames = 
ProxyContext.getInstance().getContextManager().getAllDatabaseNames().stream()
                 .filter(each -> isAuthorized(each, 
connectionSession.getConnectionContext().getGrantee())).collect(Collectors.toList());
         SCHEMA_WITHOUT_DATA_SOURCE.addAll(databaseNames.stream().filter(each 
-> !hasDataSource(each)).collect(Collectors.toSet()));
         Collection<String> result = 
databaseNames.stream().filter(AbstractDatabaseMetaDataExecutor::hasDataSource).collect(Collectors.toList());
diff --git 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
index 8bc896f59f4..95344d0e7d6 100644
--- 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/MySQLAdminExecutorCreatorTest.java
@@ -288,7 +288,7 @@ class MySQLAdminExecutorCreatorTest {
         ResourceMetaData resourceMetaData = new 
ResourceMetaData(Collections.singletonMap("ds", new MockedDataSource()));
         ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", 
databaseType, resourceMetaData, mock(RuleMetaData.class), 
Collections.emptyList());
         initProxyContext(Collections.singleton(database));
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+        
when(ProxyContext.getInstance().getContextManager().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
         
when(ProxyContext.getInstance().getContextManager().getDatabase("db_0")).thenReturn(database);
         SelectStatement selectStatement = mock(SelectStatement.class);
         when(selectStatement.getFrom()).thenReturn(Optional.empty());
@@ -306,7 +306,7 @@ class MySQLAdminExecutorCreatorTest {
         ResourceMetaData resourceMetaData = new 
ResourceMetaData(Collections.singletonMap("ds_0", new MockedDataSource()));
         ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", 
databaseType, resourceMetaData, mock(RuleMetaData.class), 
Collections.emptyList());
         initProxyContext(Collections.singleton(database));
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+        
when(ProxyContext.getInstance().getContextManager().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
         
when(ProxyContext.getInstance().getContextManager().getDatabase("db_0")).thenReturn(database);
         SelectStatement selectStatement = mock(SelectStatement.class);
         when(selectStatement.getFrom()).thenReturn(Optional.empty());
diff --git 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
index 9cfd3245042..bba333c7517 100644
--- 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
+++ 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
@@ -71,7 +71,6 @@ class ShowDatabasesExecutorTest {
     void assertExecute() throws SQLException {
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0,
 10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         ShowDatabasesExecutor executor = new ShowDatabasesExecutor(new 
MySQLShowDatabasesStatement(databaseType, null));
         executor.execute(mockConnectionSession());
         QueryResultMetaData queryResultMetaData = 
executor.getQueryResultMetaData();
@@ -90,7 +89,6 @@ class ShowDatabasesExecutorTest {
         MySQLShowDatabasesStatement showDatabasesStatement = new 
MySQLShowDatabasesStatement(databaseType, showFilterSegment);
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0,
 10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         ShowDatabasesExecutor executor = new 
ShowDatabasesExecutor(showDatabasesStatement);
         executor.execute(mockConnectionSession());
         assertThat(getActual(executor), is(getExpected()));
@@ -122,7 +120,6 @@ class ShowDatabasesExecutorTest {
         MySQLShowDatabasesStatement showDatabasesStatement = new 
MySQLShowDatabasesStatement(databaseType, showFilterSegment);
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0,
 10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         ShowDatabasesExecutor executor = new 
ShowDatabasesExecutor(showDatabasesStatement);
         executor.execute(mockConnectionSession());
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
@@ -142,7 +139,6 @@ class ShowDatabasesExecutorTest {
         MySQLShowDatabasesStatement showDatabasesStatement = new 
MySQLShowDatabasesStatement(databaseType, showFilterSegment);
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0,
 10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         ShowDatabasesExecutor executor = new 
ShowDatabasesExecutor(showDatabasesStatement);
         executor.execute(mockConnectionSession());
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
@@ -162,7 +158,6 @@ class ShowDatabasesExecutorTest {
         MySQLShowDatabasesStatement showDatabasesStatement = new 
MySQLShowDatabasesStatement(databaseType, showFilterSegment);
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0,
 10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         ShowDatabasesExecutor executor = new 
ShowDatabasesExecutor(showDatabasesStatement);
         executor.execute(mockConnectionSession());
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
@@ -180,6 +175,7 @@ class ShowDatabasesExecutorTest {
         ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(createDatabases(), mock(), globalRuleMetaData, mock());
         MetaDataContexts metaDataContexts = new MetaDataContexts(metaData, 
ShardingSphereStatisticsFactory.create(metaData, new 
ShardingSphereStatistics()));
         when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
+        when(result.getAllDatabaseNames()).thenReturn(IntStream.range(0, 
10).mapToObj(each -> String.format("database_%s", 
each)).collect(Collectors.toList()));
         return result;
     }
     
diff --git 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
index 5b5f5fc6574..60e5a83ba2b 100644
--- 
a/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
+++ 
b/proxy/backend/dialect/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
@@ -100,7 +100,6 @@ class SelectInformationSchemataExecutorTest {
     void assertExecuteWithUnauthorizedDatabase() throws SQLException {
         ContextManager contextManager = 
mockContextManager(createDatabase("no_auth_db"));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("no_auth_db"));
         SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
         executor.execute(connectionSession);
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
@@ -120,7 +119,6 @@ class SelectInformationSchemataExecutorTest {
             ShardingSphereDatabase database = 
createDatabase(expectedResultSetMap);
             ContextManager contextManager = mockContextManager(database);
             
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-            
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
             SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
             executor.execute(connectionSession);
             assertThat(executor.getQueryResultMetaData().getColumnCount(), 
is(2));
@@ -136,7 +134,6 @@ class SelectInformationSchemataExecutorTest {
     void assertExecuteWithAuthorizedDatabaseAndEmptyResource() throws 
SQLException {
         ContextManager contextManager = 
mockContextManager(createDatabase("auth_db"));
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
         SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
         executor.execute(connectionSession);
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
@@ -150,7 +147,6 @@ class SelectInformationSchemataExecutorTest {
     void assertExecuteWithoutDatabase() throws SQLException {
         ContextManager contextManager = mockContextManager();
         
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
         SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
         executor.execute(connectionSession);
         assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
@@ -168,6 +164,7 @@ class SelectInformationSchemataExecutorTest {
         for (ShardingSphereDatabase each : databases) {
             when(result.getDatabase(each.getName())).thenReturn(each);
         }
+        
when(result.getAllDatabaseNames()).thenReturn(Arrays.stream(databases).map(ShardingSphereDatabase::getName).collect(Collectors.toList()));
         return result;
     }
     

Reply via email to