This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 09ae17b4e6c Refactor ShardingSphereDatabase.databases
ConcurrentHashMap init index (#19444)
09ae17b4e6c is described below
commit 09ae17b4e6cc34590df3e675e8a6737f478eaa64
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Jul 22 13:38:51 2022 +0800
Refactor ShardingSphereDatabase.databases ConcurrentHashMap init index
(#19444)
* Adjust create databases ConcurrentHashMap index
* Adjustment database name index
---
.../infra/metadata/ShardingSphereMetaData.java | 3 +--
.../metadata/database/ShardingSphereDatabasesFactory.java | 3 ++-
.../shardingsphere/transaction/rule/TransactionRule.java | 2 +-
.../apache/shardingsphere/mode/manager/ContextManager.java | 4 ++--
.../shardingsphere/mode/metadata/MetaDataContextsTest.java | 8 +++++---
.../DatabaseCommunicationEngineFactoryTest.java | 11 +++++++----
.../jdbc/JDBCDatabaseCommunicationEngineTest.java | 11 +++++++----
.../jdbc/datasource/JDBCBackendDataSourceTest.java | 14 ++++++++------
.../proxy/backend/context/ProxyContextTest.java | 9 +++++----
.../text/admin/DatabaseAdminQueryBackendHandlerTest.java | 13 ++++++++-----
.../admin/DatabaseOperateBackendHandlerFactoryTest.java | 11 +++++++----
.../text/distsql/DistSQLBackendHandlerFactoryTest.java | 9 ++++++---
.../protocol/FrontDatabaseProtocolTypeFactoryTest.java | 9 ++++++---
.../authentication/MySQLAuthenticationEngineTest.java | 11 ++++++-----
.../mysql/command/MySQLCommandExecutorFactoryTest.java | 6 +++++-
.../binary/execute/MySQLComStmtExecuteExecutorTest.java | 8 +++++---
.../cases/dal/dataset/db/mysql/show_databases.xml | 2 +-
.../mysql/show_databases.xml | 2 +-
.../mysql/show_databases.xml | 2 +-
.../cases/dal/dataset/encrypt/mysql/show_databases.xml | 2 +-
.../dataset/readwrite_splitting/mysql/show_databases.xml | 2 +-
.../dataset/sharding_governance/mysql/show_databases.xml | 2 +-
.../cases/dal/dataset/tbl/mysql/show_databases.xml | 2 +-
23 files changed, 88 insertions(+), 58 deletions(-)
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index ba4fbf27c7d..625a1e3aaf9 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -29,7 +29,6 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
/**
* Meta data contexts.
@@ -48,7 +47,7 @@ public final class ShardingSphereMetaData {
}
public ShardingSphereMetaData(final Map<String, ShardingSphereDatabase>
databases, final ShardingSphereRuleMetaData globalRuleMetaData, final
ConfigurationProperties props) {
- this.databases = new ConcurrentHashMap<>(databases.size(), 1);
+ this.databases = databases;
databases.forEach((key, value) ->
this.databases.put(key.toLowerCase(), value));
this.globalRuleMetaData = globalRuleMetaData;
this.props = props;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
index 50e15d156c9..e9808fae23d 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
@@ -27,6 +27,7 @@ import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
/**
* ShardingSphere databases factory.
@@ -63,7 +64,7 @@ public final class ShardingSphereDatabasesFactory {
final
ConfigurationProperties props, final InstanceContext instanceContext) throws
SQLException {
DatabaseType protocolType =
DatabaseTypeEngine.getProtocolType(databaseConfigMap, props);
DatabaseType storageType =
DatabaseTypeEngine.getStorageType(databaseConfigMap);
- Map<String, ShardingSphereDatabase> result = new
HashMap<>(databaseConfigMap.size() +
protocolType.getSystemDatabaseSchemaMap().size(), 1);
+ Map<String, ShardingSphereDatabase> result = new
ConcurrentHashMap<>(databaseConfigMap.size() +
protocolType.getSystemDatabaseSchemaMap().size(), 1);
result.putAll(createGenericDatabases(databaseConfigMap, protocolType,
storageType, props, instanceContext));
result.putAll(createSystemDatabases(databaseConfigMap, protocolType));
return result;
diff --git
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
index eec58026a72..83738c8dd1d 100644
---
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
+++
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
@@ -88,7 +88,7 @@ public final class TransactionRule implements GlobalRule,
ResourceHeldRule<Shard
@Override
public synchronized void closeStaleResource(final String databaseName) {
- if (!databases.containsKey(databaseName)) {
+ if (!databases.containsKey(databaseName.toLowerCase())) {
return;
}
rebuildEngine();
diff --git
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index e486bb9bc70..709748b14a6 100644
---
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -390,8 +390,8 @@ public final class ContextManager implements AutoCloseable {
}
private void persistMetaData(final MetaDataContexts metaDataContexts) {
- metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas().forEach((schemaName, tables) ->
-
metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(each.getName(),
schemaName, tables)));
+ metaDataContexts.getMetaData().getDatabases().values().forEach(
+ each -> each.getSchemas().forEach((schemaName, tables) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(each.getName(),
schemaName, tables)));
}
/**
diff --git
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
index f1676283a4c..e117d8c8584 100644
---
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
+++
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
@@ -30,7 +30,8 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
@@ -45,8 +46,9 @@ public final class MetaDataContextsTest {
@Test
public void assertGetDefaultMetaData() {
- ShardingSphereMetaData metaData = new ShardingSphereMetaData(
- Collections.singletonMap(DefaultDatabase.LOGIC_NAME,
database), mock(ShardingSphereRuleMetaData.class), new
ConfigurationProperties(new Properties()));
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1,
1);
+ databases.put(DefaultDatabase.LOGIC_NAME, database);
+ ShardingSphereMetaData metaData = new
ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class), new
ConfigurationProperties(new Properties()));
assertThat(new MetaDataContexts(mock(MetaDataPersistService.class),
metaData,
mock(OptimizerContext.class)).getMetaData().getDatabase(DefaultDatabase.LOGIC_NAME),
is(database));
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
index 6738f19d334..398b1b43163 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
@@ -34,6 +34,7 @@ import org.junit.Before;
import org.junit.Test;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
@@ -55,10 +56,12 @@ public final class DatabaseCommunicationEngineFactoryTest
extends ProxyContextRe
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
-
when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
+
when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
index 116d0bd2acb..c4dc7bfe1fa 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
@@ -65,6 +65,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.LinkedHashMap;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
@@ -102,10 +103,12 @@ public final class JDBCDatabaseCommunicationEngineTest
extends ProxyContextResto
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
-
when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
+
when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
index 296d33c42c1..7b18c0f60af 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -40,9 +40,9 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -74,11 +74,13 @@ public final class JDBCBackendDataSourceTest extends
ProxyContextRestorer {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getName()).thenReturn("schema");
- when(result.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
-
when(result.getResource().getDataSources()).thenReturn(mockDataSources(2));
- return Collections.singletonMap("schema", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getName()).thenReturn("schema");
+ when(database.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
+
when(database.getResource().getDataSources()).thenReturn(mockDataSources(2));
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("schema", database);
+ return result;
}
private ShardingSphereRuleMetaData mockGlobalRuleMetaData() {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 2cb04c77db5..e2b6378d526 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -31,7 +31,6 @@ import
org.apache.shardingsphere.proxy.backend.exception.NoDatabaseSelectedExcep
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -125,8 +124,10 @@ public final class ProxyContextTest extends
ProxyContextRestorer {
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
H2DatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
index 1e93c5b79c7..e582dc49a39 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -41,6 +41,7 @@ import org.junit.Test;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
@@ -71,11 +72,13 @@ public final class DatabaseAdminQueryBackendHandlerTest
extends ProxyContextRest
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getName()).thenReturn("db");
- when(result.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
-
when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getName()).thenReturn("db");
+ when(database.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
+
when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
index dbb4fa79776..c78db33cc01 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
@@ -50,6 +50,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -134,10 +135,12 @@ public final class
DatabaseOperateBackendHandlerFactoryTest extends ProxyContext
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
-
when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
+
when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
private void setGovernanceMetaDataContexts(final boolean isGovernance) {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index 6ae3aa165f7..083babfe98f 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -71,6 +71,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -97,9 +98,11 @@ public final class DistSQLBackendHandlerFactoryTest extends
ProxyContextRestorer
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index f34c558797e..c60d9bd6b59 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -36,6 +36,7 @@ import org.junit.Test;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -94,8 +95,10 @@ public final class FrontDatabaseProtocolTypeFactoryTest
extends ProxyContextRest
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
- return Collections.singletonMap(DefaultDatabase.LOGIC_NAME, result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new
MySQLDatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put(DefaultDatabase.LOGIC_NAME, database);
+ return result;
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
index 581e78c8ac5..62b6a933908 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
@@ -49,9 +49,10 @@ import org.junit.Test;
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
-import java.util.Collections;
import java.util.Optional;
import java.util.Properties;
+import java.util.Map;
+import java.util.LinkedHashMap;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -160,10 +161,10 @@ public final class MySQLAuthenticationEngineTest extends
ProxyContextRestorer {
private void setMetaDataContexts() {
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
- MetaDataContexts metaDataContexts = new
MetaDataContexts(mock(MetaDataPersistService.class),
- new
ShardingSphereMetaData(Collections.singletonMap("sharding_db",
mock(ShardingSphereDatabase.class)), mock(ShardingSphereRuleMetaData.class),
- new ConfigurationProperties(new Properties())),
- mock(OptimizerContext.class));
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1,
1);
+ databases.put("sharding_db", mock(ShardingSphereDatabase.class));
+ MetaDataContexts metaDataContexts = new
MetaDataContexts(mock(MetaDataPersistService.class), new
ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class),
+ new ConfigurationProperties(new Properties())),
mock(OptimizerContext.class));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
index 882a7822c88..5b0a2ac9e91 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
@@ -66,6 +66,8 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -91,9 +93,11 @@ public final class MySQLCommandExecutorFactoryTest extends
ProxyContextRestorer
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
when(backendConnection.getConnectionSession()).thenReturn(connectionSession);
ShardingSphereDatabase database = mockDatabase();
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1,
1);
+ databases.put("logic_db", database);
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
MetaDataContexts metaDataContexts = new
MetaDataContexts(mock(MetaDataPersistService.class),
- new
ShardingSphereMetaData(Collections.singletonMap("logic_db", database),
mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new
Properties())),
+ new ShardingSphereMetaData(databases,
mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new
Properties())),
mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index 061053fd882..ca2c39a5bab 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -78,6 +78,8 @@ import java.sql.Types;
import java.util.Collections;
import java.util.Iterator;
import java.util.Optional;
+import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import java.util.function.Supplier;
@@ -110,11 +112,11 @@ public final class MySQLComStmtExecuteExecutorTest
extends ProxyContextRestorer
@Before
public void setUp() {
- ShardingSphereDatabase database = mockDatabase();
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1,
1);
+ databases.put("logic_db", mockDatabase());
ShardingSphereRuleMetaData metaData =
mock(ShardingSphereRuleMetaData.class);
MetaDataContexts metaDataContexts = new
MetaDataContexts(mock(MetaDataPersistService.class),
- new
ShardingSphereMetaData(Collections.singletonMap("logic_db", database),
metaData, new ConfigurationProperties(new Properties())),
- mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
+ new ShardingSphereMetaData(databases, metaData, new
ConfigurationProperties(new Properties())), mock(OptimizerContext.class,
RETURNS_DEEP_STUBS));
ContextManager contextManager = mock(ContextManager.class,
RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
index 43751a02ca3..e781a7b14f8 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="db" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
index 7c09a1af6d9..9e95dd770e9 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="dbtbl_with_readwrite_splitting" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
index 8f71dab57ca..6c82fe5a8ca 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="dbtbl_with_readwrite_splitting_and_encrypt" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
index a1b882c67b9..52ed5f58683 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="encrypt" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
index 948283ae84a..fe5ff48cdb5 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="readwrite_splitting" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
index 314e6dfcd63..4bd1cb613dc 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="sharding_governance" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
index b7eb1af6f4e..e60d4eb0a15 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="tbl" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>