This is an automated email from the ASF dual-hosted git repository. zhaojinchao 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 9284c595a72 Fix show tables wrong result when execute drop sharding table rule (#19644) 9284c595a72 is described below commit 9284c595a727ca70b845ad7ec4792cc549db7fa7 Author: Zhengqiang Duan <duanzhengqi...@apache.org> AuthorDate: Thu Jul 28 16:31:53 2022 +0800 Fix show tables wrong result when execute drop sharding table rule (#19644) --- .../metadata/database/ShardingSphereDatabasesFactory.java | 4 ++-- .../metadata/database/ShardingSphereDatabasesFactoryTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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 e9808fae23d..d2dd238b917 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 @@ -77,7 +77,7 @@ public final class ShardingSphereDatabasesFactory { for (Entry<String, DatabaseConfiguration> entry : databaseConfigMap.entrySet()) { String databaseName = entry.getKey(); if (!entry.getValue().getDataSources().isEmpty() || !protocolType.getSystemSchemas().contains(databaseName)) { - result.put(databaseName, ShardingSphereDatabase.create(databaseName, protocolType, storageType, entry.getValue(), props, instanceContext)); + result.put(databaseName.toLowerCase(), ShardingSphereDatabase.create(databaseName, protocolType, storageType, entry.getValue(), props, instanceContext)); } } return result; @@ -87,7 +87,7 @@ public final class ShardingSphereDatabasesFactory { Map<String, ShardingSphereDatabase> result = new HashMap<>(protocolType.getSystemDatabaseSchemaMap().size(), 1); for (String each : protocolType.getSystemDatabaseSchemaMap().keySet()) { if (!databaseConfigMap.containsKey(each) || databaseConfigMap.get(each).getDataSources().isEmpty()) { - result.put(each, ShardingSphereDatabase.create(each, protocolType)); + result.put(each.toLowerCase(), ShardingSphereDatabase.create(each, protocolType)); } } return result; diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactoryTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactoryTest.java index 36369710f91..2ea08f535ef 100644 --- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactoryTest.java +++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactoryTest.java @@ -59,4 +59,15 @@ public final class ShardingSphereDatabasesFactoryTest { assertThat(rules.iterator().next(), instanceOf(FixtureDatabaseRule.class)); assertTrue(actual.get("foo_db").getResource().getDataSources().isEmpty()); } + + @Test + public void assertCreateDatabaseMapWhenConfigUppercaseDatabaseName() throws SQLException { + DatabaseConfiguration databaseConfig = new DataSourceProvidedDatabaseConfiguration(Collections.emptyMap(), Collections.singleton(new FixtureRuleConfiguration())); + Map<String, ShardingSphereDatabase> actual = ShardingSphereDatabasesFactory.create( + Collections.singletonMap("FOO_DB", databaseConfig), new ConfigurationProperties(new Properties()), mock(InstanceContext.class)); + Collection<ShardingSphereRule> rules = actual.get("foo_db").getRuleMetaData().getRules(); + assertThat(rules.size(), is(1)); + assertThat(rules.iterator().next(), instanceOf(FixtureDatabaseRule.class)); + assertTrue(actual.get("foo_db").getResource().getDataSources().isEmpty()); + } }