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());
+    }
 }

Reply via email to