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 dc853fddba9 Fix wrong schema metadata caused by schema capitalized 
(#20512)
dc853fddba9 is described below

commit dc853fddba9be51fafbe316ac33f85231abdef4b
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Aug 25 15:54:20 2022 +0800

    Fix wrong schema metadata caused by schema capitalized (#20512)
---
 .../infra/context/refresher/MetaDataRefreshEngine.java         |  2 +-
 .../refresher/type/AlterIndexStatementSchemaRefresher.java     |  2 +-
 .../refresher/type/AlterSchemaStatementSchemaRefresher.java    | 10 ++++------
 .../refresher/type/CreateSchemaStatementSchemaRefresher.java   |  2 +-
 .../refresher/type/DropIndexStatementSchemaRefresher.java      |  2 +-
 .../refresher/type/DropSchemaStatementSchemaRefresher.java     |  2 +-
 6 files changed, 9 insertions(+), 11 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
index cff82409f9b..ce33960556c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/MetaDataRefreshEngine.java
@@ -62,7 +62,7 @@ public final class MetaDataRefreshEngine {
         Optional<MetaDataRefresher> schemaRefresher = 
MetaDataRefresherFactory.findInstance(sqlStatementClass);
         if (schemaRefresher.isPresent()) {
             String schemaName = 
sqlStatementContext.getTablesContext().getSchemaName()
-                    .orElseGet(() -> 
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), 
database.getName()));
+                    .orElseGet(() -> 
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(), 
database.getName())).toLowerCase();
             Collection<String> logicDataSourceNames = 
routeUnits.stream().map(each -> 
each.getDataSourceMapper().getLogicName()).collect(Collectors.toList());
             return schemaRefresher.get().refresh(database, 
logicDataSourceNames, schemaName, sqlStatementContext.getSqlStatement(), props);
         }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java
index eb0ef27a778..aff5781645c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterIndexStatementSchemaRefresher.java
@@ -46,7 +46,7 @@ public final class AlterIndexStatementSchemaRefresher 
implements MetaDataRefresh
         if (!sqlStatement.getIndex().isPresent() || !renameIndex.isPresent()) {
             return Optional.empty();
         }
-        String actualSchemaName = 
sqlStatement.getIndex().get().getOwner().map(optional -> 
optional.getIdentifier().getValue()).orElse(schemaName);
+        String actualSchemaName = 
sqlStatement.getIndex().get().getOwner().map(optional -> 
optional.getIdentifier().getValue().toLowerCase()).orElse(schemaName);
         String indexName = 
sqlStatement.getIndex().get().getIndexName().getIdentifier().getValue();
         Optional<String> logicTableName = 
findLogicTableName(database.getSchema(actualSchemaName), indexName);
         if (logicTableName.isPresent()) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java
index 887f7ed0c71..c9921af76d2 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/AlterSchemaStatementSchemaRefresher.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.infra.metadata.database.schema.event.MetaDataRe
 import 
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
 import 
org.apache.shardingsphere.infra.rule.identifier.type.MutableDataNodeRule;
 import 
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterSchemaStatement;
-import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.handler.ddl.AlterSchemaStatementHandler;
 
 import java.sql.SQLException;
@@ -41,15 +40,14 @@ public final class AlterSchemaStatementSchemaRefresher 
implements MetaDataRefres
     @Override
     public Optional<MetaDataRefreshedEvent> refresh(final 
ShardingSphereDatabase database, final Collection<String> logicDataSourceNames,
                                                     final String schemaName, 
final AlterSchemaStatement sqlStatement, final ConfigurationProperties props) 
throws SQLException {
-        Optional<IdentifierValue> renameSchemaName = 
AlterSchemaStatementHandler.getRenameSchema(sqlStatement);
+        Optional<String> renameSchemaName = 
AlterSchemaStatementHandler.getRenameSchema(sqlStatement).map(optional -> 
optional.getValue().toLowerCase());
         if (!renameSchemaName.isPresent()) {
             return Optional.empty();
         }
-        String actualSchemaName = sqlStatement.getSchemaName().getValue();
-        putSchemaMetaData(database, actualSchemaName, 
renameSchemaName.get().getValue(), logicDataSourceNames);
+        String actualSchemaName = 
sqlStatement.getSchemaName().getValue().toLowerCase();
+        putSchemaMetaData(database, actualSchemaName, renameSchemaName.get(), 
logicDataSourceNames);
         removeSchemaMetaData(database, actualSchemaName);
-        AlterSchemaEvent event = new AlterSchemaEvent(
-                database.getName(), actualSchemaName, 
renameSchemaName.get().getValue(), 
database.getSchema(renameSchemaName.get().getValue()));
+        AlterSchemaEvent event = new AlterSchemaEvent(database.getName(), 
actualSchemaName, renameSchemaName.get(), 
database.getSchema(renameSchemaName.get()));
         return Optional.of(event);
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateSchemaStatementSchemaRefresher.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateSchemaStatementSchemaRefresher.java
index 1353f14b36f..97a73d40008 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateSchemaStatementSchemaRefresher.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/CreateSchemaStatementSchemaRefresher.java
@@ -43,7 +43,7 @@ public final class CreateSchemaStatementSchemaRefresher 
implements MetaDataRefre
         if (!schema.isPresent()) {
             return Optional.empty();
         }
-        String actualSchemaName = schema.get().getValue();
+        String actualSchemaName = schema.get().getValue().toLowerCase();
         database.putSchema(actualSchemaName, new ShardingSphereSchema());
         AddSchemaEvent event = new AddSchemaEvent(database.getName(), 
actualSchemaName);
         return Optional.of(event);
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java
index e2654ee4a29..6d12c6568e7 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropIndexStatementSchemaRefresher.java
@@ -46,7 +46,7 @@ public final class DropIndexStatementSchemaRefresher 
implements MetaDataRefreshe
                                                     final String schemaName, 
final DropIndexStatement sqlStatement, final ConfigurationProperties props) 
throws SQLException {
         DropIndexEvent event = new DropIndexEvent();
         for (IndexSegment each : sqlStatement.getIndexes()) {
-            String actualSchemaName = each.getOwner().map(optional -> 
optional.getIdentifier().getValue()).orElse(schemaName);
+            String actualSchemaName = each.getOwner().map(optional -> 
optional.getIdentifier().getValue().toLowerCase()).orElse(schemaName);
             Optional<String> logicTableName = findLogicTableName(database, 
sqlStatement, Collections.singletonList(each));
             if (!logicTableName.isPresent()) {
                 continue;
diff --git 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropSchemaStatementSchemaRefresher.java
 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropSchemaStatementSchemaRefresher.java
index 91b7768d145..7fb7c4453af 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropSchemaStatementSchemaRefresher.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/refresher/type/DropSchemaStatementSchemaRefresher.java
@@ -60,7 +60,7 @@ public final class DropSchemaStatementSchemaRefresher 
implements MetaDataRefresh
     private Collection<String> getSchemaNames(final DropSchemaStatement 
sqlStatement) {
         Collection<String> result = new LinkedList<>();
         for (IdentifierValue each : sqlStatement.getSchemaNames()) {
-            result.add(each.getValue());
+            result.add(each.getValue().toLowerCase());
         }
         return result;
     }

Reply via email to