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 <[email protected]>
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());
+ }
}