This is an automated email from the ASF dual-hosted git repository.

menghaoranss 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 5702a14ade7 Simplify table name handling and normalize loading logic 
(#39202)
5702a14ade7 is described below

commit 5702a14ade73a3b5eeb34872af672ef5a9e1f264
Author: Haoran Meng <[email protected]>
AuthorDate: Tue Jul 21 15:21:07 2026 +0800

    Simplify table name handling and normalize loading logic (#39202)
---
 .../core/metadata/data/loader/MetaDataLoader.java  |  2 +-
 .../data/loader/MetaDataLoaderMaterial.java        | 18 ----------------
 .../data/loader/type/TableMetaDataLoader.java      | 25 ++++++++++++++++++----
 .../metadata/data/loader/MetaDataLoaderTest.java   |  9 --------
 .../data/loader/type/TableMetaDataLoaderTest.java  | 10 ++++++++-
 .../data/loader/FirebirdBlobColumnLoader.java      |  4 +---
 .../data/loader/FirebirdMetaDataLoader.java        |  2 +-
 .../FirebirdNonFixedLengthColumnSizeLoader.java    |  4 +---
 .../data/loader/FirebirdBlobColumnLoaderTest.java  | 12 +++++------
 .../data/loader/FirebirdMetaDataLoaderTest.java    | 17 ++++++---------
 ...FirebirdNonFixedLengthColumnSizeLoaderTest.java | 12 +++++------
 .../metadata/data/loader/HiveMetaDataLoader.java   |  2 +-
 .../data/loader/HiveMetaDataLoaderTest.java        |  7 ++----
 .../schema/builder/GenericSchemaBuilder.java       |  7 +++---
 .../database/schema/util/SchemaMetaDataUtils.java  | 16 +++++---------
 .../schema/util/SchemaMetaDataUtilsTest.java       | 12 +++++------
 16 files changed, 70 insertions(+), 89 deletions(-)

diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoader.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoader.java
index fe62e92816e..6f65d063821 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoader.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoader.java
@@ -95,7 +95,7 @@ public final class MetaDataLoader {
     private static Collection<SchemaMetaData> loadByDefault(final 
MetaDataLoaderMaterial material) throws SQLException {
         Collection<TableMetaData> tableMetaData = new LinkedList<>();
         for (String each : material.getActualTableNames()) {
-            TableMetaDataLoader.load(material.getDataSource(), each, 
material.getStorageType(), 
material.getTableIdentifierPolicy()).ifPresent(tableMetaData::add);
+            TableMetaDataLoader.loadNormalized(material.getDataSource(), each, 
material.getStorageType()).ifPresent(tableMetaData::add);
         }
         return Collections.singleton(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaData));
     }
diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderMaterial.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderMaterial.java
index 3f03dbcb37e..7d4de051dc0 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderMaterial.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderMaterial.java
@@ -17,12 +17,8 @@
 
 package org.apache.shardingsphere.database.connector.core.metadata.data.loader;
 
-import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierCasePolicy;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierNormalizeEngine;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierScope;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 
 import javax.sql.DataSource;
@@ -45,18 +41,4 @@ public final class MetaDataLoaderMaterial {
     
     private final String defaultSchemaName;
     
-    @Getter(AccessLevel.NONE)
-    private volatile IdentifierCasePolicy tableIdentifierPolicy;
-    
-    /**
-     * Get table identifier case policy.
-     *
-     * @return table identifier case policy
-     */
-    public synchronized IdentifierCasePolicy getTableIdentifierPolicy() {
-        if (null == tableIdentifierPolicy) {
-            tableIdentifierPolicy = 
IdentifierNormalizeEngine.resolvePolicy(storageType, dataSource, 
IdentifierScope.TABLE);
-        }
-        return tableIdentifierPolicy;
-    }
 }
diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoader.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoader.java
index 872ee837070..70df9f44555 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoader.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoader.java
@@ -64,11 +64,28 @@ public final class TableMetaDataLoader {
      */
     public static Optional<TableMetaData> load(final DataSource dataSource, 
final String tableNamePattern, final DatabaseType databaseType,
                                                final IdentifierCasePolicy 
tableIdentifierPolicy) throws SQLException {
+        return loadTableMetaData(dataSource, tableNamePattern, 
IdentifierNormalizeEngine.normalize(tableIdentifierPolicy, tableNamePattern), 
databaseType);
+    }
+    
+    /**
+     * Load table meta data with normalized table name pattern.
+     *
+     * @param dataSource data source
+     * @param tableNamePattern normalized table name pattern
+     * @param databaseType database type
+     * @return table meta data
+     * @throws SQLException SQL exception
+     */
+    public static Optional<TableMetaData> loadNormalized(final DataSource 
dataSource, final String tableNamePattern, final DatabaseType databaseType) 
throws SQLException {
+        return loadTableMetaData(dataSource, tableNamePattern, 
tableNamePattern, databaseType);
+    }
+    
+    private static Optional<TableMetaData> loadTableMetaData(final DataSource 
dataSource, final String tableName,
+                                                             final String 
tableNamePattern, final DatabaseType databaseType) throws SQLException {
         try (MetaDataLoaderConnection connection = new 
MetaDataLoaderConnection(databaseType, dataSource.getConnection())) {
-            String formattedTableNamePattern = 
IdentifierNormalizeEngine.normalize(tableIdentifierPolicy, tableNamePattern);
-            return isTableExist(connection, formattedTableNamePattern)
-                    ? Optional.of(new TableMetaData(tableNamePattern, 
ColumnMetaDataLoader.load(
-                            connection, formattedTableNamePattern, 
databaseType), IndexMetaDataLoader.load(connection, formattedTableNamePattern), 
Collections.emptyList()))
+            return isTableExist(connection, tableNamePattern)
+                    ? Optional.of(new TableMetaData(tableName, 
ColumnMetaDataLoader.load(
+                            connection, tableNamePattern, databaseType), 
IndexMetaDataLoader.load(connection, tableNamePattern), 
Collections.emptyList()))
                     : Optional.empty();
         }
     }
diff --git 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderTest.java
 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderTest.java
index 93ba7c6acd6..f0e60a19844 100644
--- 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderTest.java
+++ 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/MetaDataLoaderTest.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.database.connector.core.metadata.data.loader;
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.TableMetaData;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierCasePolicy;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
@@ -42,7 +41,6 @@ import java.util.concurrent.TimeUnit;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.isA;
-import static org.hamcrest.Matchers.sameInstance;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -98,13 +96,6 @@ class MetaDataLoaderTest {
         assertTrue(actual.get("foo_db").getTables().isEmpty());
     }
     
-    @Test
-    void assertGetTableIdentifierPolicyCachesResolvedPolicy() {
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", 
mock(DataSource.class), databaseType, "foo_db");
-        IdentifierCasePolicy actual = material.getTableIdentifierPolicy();
-        assertThat(material.getTableIdentifierPolicy(), sameInstance(actual));
-    }
-    
     @Test
     void assertLoadWhenInterrupted() throws Exception {
         MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", 
mock(DataSource.class, RETURNS_DEEP_STUBS), databaseType, "foo_db");
diff --git 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoaderTest.java
 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoaderTest.java
index a61d239e896..123cce0807b 100644
--- 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoaderTest.java
+++ 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/metadata/data/loader/type/TableMetaDataLoaderTest.java
@@ -43,6 +43,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Optional;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -58,7 +59,7 @@ class TableMetaDataLoaderTest {
     
     private static final String TEST_CATALOG = "catalog";
     
-    private static final String TEST_TABLE = "table";
+    private static final String TEST_TABLE = "Normalized_Table";
     
     private static final String NOT_EXISTED_TABLE = "not_existed_table";
     
@@ -125,6 +126,13 @@ class TableMetaDataLoaderTest {
         assertThat(indexesIterator.next().getName(), is("my_index"));
     }
     
+    @Test
+    void assertLoadNormalizedTableName() throws SQLException {
+        Optional<TableMetaData> actual = 
TableMetaDataLoader.loadNormalized(dataSource, TEST_TABLE, databaseType);
+        assertTrue(actual.isPresent());
+        assertThat(actual.get().getName(), is(TEST_TABLE));
+    }
+    
     private void assertColumnMetaData(final ColumnMetaData actual, final 
String name, final int dataType, final boolean primaryKey, final boolean 
caseSensitive) {
         assertThat(actual.getName(), is(name));
         assertThat(actual.getDataType(), is(dataType));
diff --git 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
index da091a3f3d0..54a45ff3ea3 100644
--- 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
+++ 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoader.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.database.connector.firebird.metadata.data.load
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderConnection;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderMaterial;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierNormalizeEngine;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -54,8 +53,7 @@ final class FirebirdBlobColumnLoader {
                 MetaDataLoaderConnection connection = new 
MetaDataLoaderConnection(
                         material.getStorageType(), 
material.getDataSource().getConnection())) {
             for (String each : material.getActualTableNames()) {
-                String formattedTableName = 
IdentifierNormalizeEngine.normalize(material.getTableIdentifierPolicy(), each);
-                Map<String, Integer> blobColumns = 
loadTableBlobColumns(connection, formattedTableName);
+                Map<String, Integer> blobColumns = 
loadTableBlobColumns(connection, each);
                 result.put(each, blobColumns);
             }
         }
diff --git 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
index 9ac3b39d549..bf4104c18c8 100644
--- 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
+++ 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoader.java
@@ -40,7 +40,7 @@ public final class FirebirdMetaDataLoader implements 
DialectMetaDataLoader {
     public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
         Collection<TableMetaData> tableMetaData = new LinkedList<>();
         for (String each : material.getActualTableNames()) {
-            TableMetaDataLoader.load(material.getDataSource(), each, 
material.getStorageType(), 
material.getTableIdentifierPolicy()).ifPresent(tableMetaData::add);
+            TableMetaDataLoader.loadNormalized(material.getDataSource(), each, 
material.getStorageType()).ifPresent(tableMetaData::add);
         }
         loadBlobColumns(material);
         loadNonFixedLengthColumnSizes(material);
diff --git 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
index 2acc8a4c671..65445ec498f 100644
--- 
a/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
+++ 
b/database/connector/dialect/firebird/src/main/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoader.java
@@ -20,7 +20,6 @@ package 
org.apache.shardingsphere.database.connector.firebird.metadata.data.load
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderConnection;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.MetaDataLoaderMaterial;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierNormalizeEngine;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -46,8 +45,7 @@ final class FirebirdNonFixedLengthColumnSizeLoader {
         Map<String, Map<String, Integer>> result = new 
HashMap<>(material.getActualTableNames().size(), 1F);
         try (MetaDataLoaderConnection connection = new 
MetaDataLoaderConnection(material.getStorageType(), 
material.getDataSource().getConnection())) {
             for (String each : material.getActualTableNames()) {
-                String formattedTableName = 
IdentifierNormalizeEngine.normalize(material.getTableIdentifierPolicy(), each);
-                Map<String, Integer> columnSizes = 
loadTableColumnSizes(connection, formattedTableName);
+                Map<String, Integer> columnSizes = 
loadTableColumnSizes(connection, each);
                 result.put(each, columnSizes);
             }
         }
diff --git 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoaderTest.java
 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoaderTest.java
index 6db5cdab100..3d46f03db0f 100644
--- 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoaderTest.java
+++ 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdBlobColumnLoaderTest.java
@@ -71,10 +71,10 @@ class FirebirdBlobColumnLoaderTest {
         when(preparedStatement.executeQuery()).thenReturn(resultSet);
         
when(connection.prepareStatement(anyString())).thenReturn(preparedStatement);
         when(dataSource.getConnection()).thenReturn(connection);
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("foo_tbl"), "foo_ds", dataSource, 
databaseType, "schema");
+        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("FOO_TBL"), "foo_ds", dataSource, 
databaseType, "schema");
         Map<String, Map<String, Integer>> actual = new 
FirebirdBlobColumnLoader(material).load();
-        assertThat(actual, hasKey("foo_tbl"));
-        Map<String, Integer> actualTableColumns = actual.get("foo_tbl");
+        assertThat(actual, hasKey("FOO_TBL"));
+        Map<String, Integer> actualTableColumns = actual.get("FOO_TBL");
         assertThat(actualTableColumns.size(), is(1));
         assertThat(actualTableColumns.get("BLOB_COL"), is(expectedSubType));
         verify(preparedStatement).setString(1, "FOO_TBL");
@@ -87,10 +87,10 @@ class FirebirdBlobColumnLoaderTest {
         when(preparedStatement.executeQuery()).thenReturn(resultSet);
         
when(connection.prepareStatement(anyString())).thenReturn(preparedStatement);
         when(dataSource.getConnection()).thenReturn(connection);
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("foo_tbl"), "foo_ds", dataSource, 
databaseType, "schema");
+        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("FOO_TBL"), "foo_ds", dataSource, 
databaseType, "schema");
         Map<String, Map<String, Integer>> actual = new 
FirebirdBlobColumnLoader(material).load();
-        assertThat(actual, hasKey("foo_tbl"));
-        assertTrue(actual.get("foo_tbl").isEmpty());
+        assertThat(actual, hasKey("FOO_TBL"));
+        assertTrue(actual.get("FOO_TBL").isEmpty());
         verify(preparedStatement).setString(1, "FOO_TBL");
     }
     
diff --git 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoaderTest.java
 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoaderTest.java
index 01e3b61876b..9784c54b662 100644
--- 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoaderTest.java
+++ 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdMetaDataLoaderTest.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.Me
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.loader.type.TableMetaDataLoader;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.TableMetaData;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierCasePolicy;
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import 
org.apache.shardingsphere.database.connector.firebird.metadata.data.FirebirdBlobInfoRegistry;
@@ -43,8 +42,6 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.contains;
 import static org.hamcrest.Matchers.hasSize;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.mockConstruction;
 import static org.mockito.Mockito.mockStatic;
@@ -60,12 +57,12 @@ class FirebirdMetaDataLoaderTest {
     @Test
     void assertLoadRefreshesSizeRegistry() throws SQLException {
         DataSource dataSource = mock(DataSource.class);
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("test_table"), "logic_ds", 
dataSource, databaseType, "schema");
-        TableMetaData tableMetaData = new TableMetaData("test_table", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
+        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("TEST_TABLE"), "logic_ds", 
dataSource, databaseType, "schema");
+        TableMetaData tableMetaData = new TableMetaData("TEST_TABLE", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
         Map<String, Integer> tableSizes = Collections.singletonMap("COLUMN", 
16);
-        Map<String, Map<String, Integer>> allSizes = 
Collections.singletonMap("test_table", tableSizes);
+        Map<String, Map<String, Integer>> allSizes = 
Collections.singletonMap("TEST_TABLE", tableSizes);
         Map<String, Integer> tableBlobColumns = 
Collections.singletonMap("BLOB_COL", 1);
-        Map<String, Map<String, Integer>> allBlobColumns = 
Collections.singletonMap("test_table", tableBlobColumns);
+        Map<String, Map<String, Integer>> allBlobColumns = 
Collections.singletonMap("TEST_TABLE", tableBlobColumns);
         try (
                 MockedStatic<TableMetaDataLoader> tableLoaderMocked = 
mockStatic(TableMetaDataLoader.class);
                 MockedStatic<FirebirdNonFixedLengthColumnSizeRegistry> 
sizeRegistryMocked = mockStatic(FirebirdNonFixedLengthColumnSizeRegistry.class);
@@ -74,14 +71,14 @@ class FirebirdMetaDataLoaderTest {
                         
mockConstruction(FirebirdNonFixedLengthColumnSizeLoader.class, (mock, context) 
-> when(mock.load()).thenReturn(allSizes));
                 MockedConstruction<FirebirdBlobColumnLoader> 
blobColumnLoaderMocked =
                         mockConstruction(FirebirdBlobColumnLoader.class, 
(mock, context) -> when(mock.load()).thenReturn(allBlobColumns))) {
-            tableLoaderMocked.when(() -> 
TableMetaDataLoader.load(eq(dataSource), eq("test_table"), eq(databaseType), 
any(IdentifierCasePolicy.class))).thenReturn(Optional.of(tableMetaData));
+            tableLoaderMocked.when(() -> 
TableMetaDataLoader.loadNormalized(dataSource, "TEST_TABLE", 
databaseType)).thenReturn(Optional.of(tableMetaData));
             Collection<SchemaMetaData> actual = 
dialectMetaDataLoader.load(material);
             assertThat(actual, hasSize(1));
             SchemaMetaData schema = actual.iterator().next();
             assertThat(schema.getName(), is("schema"));
             assertThat(schema.getTables(), contains(tableMetaData));
-            sizeRegistryMocked.verify(() -> 
FirebirdNonFixedLengthColumnSizeRegistry.refreshTable("schema", "test_table", 
tableSizes));
-            blobRegistryMocked.verify(() -> 
FirebirdBlobInfoRegistry.refreshTable("schema", "test_table", 
tableBlobColumns));
+            sizeRegistryMocked.verify(() -> 
FirebirdNonFixedLengthColumnSizeRegistry.refreshTable("schema", "TEST_TABLE", 
tableSizes));
+            blobRegistryMocked.verify(() -> 
FirebirdBlobInfoRegistry.refreshTable("schema", "TEST_TABLE", 
tableBlobColumns));
             verify(columnSizeLoaderMocked.constructed().get(0)).load();
             verify(blobColumnLoaderMocked.constructed().get(0)).load();
         }
diff --git 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoaderTest.java
 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoaderTest.java
index 3b472ab8dc1..c6477acb03e 100644
--- 
a/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoaderTest.java
+++ 
b/database/connector/dialect/firebird/src/test/java/org/apache/shardingsphere/database/connector/firebird/metadata/data/loader/FirebirdNonFixedLengthColumnSizeLoaderTest.java
@@ -70,10 +70,10 @@ class FirebirdNonFixedLengthColumnSizeLoaderTest {
         when(columnsResultSet.getInt("DATA_TYPE")).thenReturn(dataType);
         when(columnsResultSet.getString("COLUMN_NAME")).thenReturn(columnName);
         when(columnsResultSet.getInt("COLUMN_SIZE")).thenReturn(columnSize);
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("foo_tbl"), "logic_ds", 
dataSource, databaseType, "schema");
+        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("FOO_TBL"), "logic_ds", 
dataSource, databaseType, "schema");
         Map<String, Map<String, Integer>> actual = new 
FirebirdNonFixedLengthColumnSizeLoader(material).load();
-        assertThat(actual, hasKey("foo_tbl"));
-        assertThat(actual.get("foo_tbl"), is(expected));
+        assertThat(actual, hasKey("FOO_TBL"));
+        assertThat(actual.get("FOO_TBL"), is(expected));
     }
     
     @ParameterizedTest(name = "{0}")
@@ -95,10 +95,10 @@ class FirebirdNonFixedLengthColumnSizeLoaderTest {
         if (stubWasNull) {
             when(columnsResultSet.wasNull()).thenReturn(wasNull);
         }
-        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("foo_tbl"), "logic_ds", 
dataSource, databaseType, "schema");
+        MetaDataLoaderMaterial material = new 
MetaDataLoaderMaterial(Collections.singleton("FOO_TBL"), "logic_ds", 
dataSource, databaseType, "schema");
         Map<String, Map<String, Integer>> actual = new 
FirebirdNonFixedLengthColumnSizeLoader(material).load();
-        assertThat(actual, hasKey("foo_tbl"));
-        assertTrue(actual.get("foo_tbl").isEmpty());
+        assertThat(actual, hasKey("FOO_TBL"));
+        assertTrue(actual.get("FOO_TBL").isEmpty());
     }
     
     @Test
diff --git 
a/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoader.java
 
b/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoader.java
index b5386fc3992..faccb2ef238 100644
--- 
a/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoader.java
+++ 
b/database/connector/dialect/hive/src/main/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoader.java
@@ -60,7 +60,7 @@ public final class HiveMetaDataLoader implements 
DialectMetaDataLoader {
             return Collections.singleton(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaData));
         }
         for (String each : material.getActualTableNames()) {
-            TableMetaDataLoader.load(material.getDataSource(), each, 
material.getStorageType(), 
material.getTableIdentifierPolicy()).ifPresent(tableMetaData::add);
+            TableMetaDataLoader.loadNormalized(material.getDataSource(), each, 
material.getStorageType()).ifPresent(tableMetaData::add);
         }
         return Collections.singleton(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaData));
     }
diff --git 
a/database/connector/dialect/hive/src/test/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoaderTest.java
 
b/database/connector/dialect/hive/src/test/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoaderTest.java
index f2fefbf1d36..c1968b84fa0 100644
--- 
a/database/connector/dialect/hive/src/test/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoaderTest.java
+++ 
b/database/connector/dialect/hive/src/test/java/org/apache/shardingsphere/database/connector/hive/metadata/data/loader/HiveMetaDataLoaderTest.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.Col
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.database.connector.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.database.connector.core.metadata.database.datatype.DataTypeRegistry;
-import 
org.apache.shardingsphere.database.connector.core.metadata.identifier.IdentifierCasePolicy;
 import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
@@ -56,8 +55,6 @@ import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -119,8 +116,8 @@ class HiveMetaDataLoaderTest {
     void assertLoadWithoutInformationSchemaFallbackToDefaultLoader() throws 
SQLException {
         DataSource dataSource = 
mockDataSource(mockInformationSchemaConnection(false));
         TableMetaData tableMetaData = new TableMetaData("present_table", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList());
-        when(TableMetaDataLoader.load(eq(dataSource), eq("missing_table"), 
eq(databaseType), 
any(IdentifierCasePolicy.class))).thenReturn(Optional.empty());
-        when(TableMetaDataLoader.load(eq(dataSource), eq("present_table"), 
eq(databaseType), 
any(IdentifierCasePolicy.class))).thenReturn(Optional.of(tableMetaData));
+        when(TableMetaDataLoader.loadNormalized(dataSource, "missing_table", 
databaseType)).thenReturn(Optional.empty());
+        when(TableMetaDataLoader.loadNormalized(dataSource, "present_table", 
databaseType)).thenReturn(Optional.of(tableMetaData));
         Collection<SchemaMetaData> fallbackSchemas = loader.load(new 
MetaDataLoaderMaterial(Arrays.asList("missing_table", "present_table"), "ds_2", 
dataSource, databaseType, "fallback_schema"));
         TableMetaData defaultLoadedTable = 
fallbackSchemas.iterator().next().getTables().iterator().next();
         assertThat(defaultLoadedTable.getName(), is("present_table"));
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
index 0a723853d7d..55558c99a81 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
@@ -70,7 +70,7 @@ public final class GenericSchemaBuilder {
      */
     public static Map<String, ShardingSphereSchema> build(final 
Collection<String> tableNames, final DatabaseType protocolType, final 
GenericSchemaBuilderMaterial material) throws SQLException {
         boolean isSameProtocolAndStorageTypes = 
isSameProtocolAndStorageTypes(protocolType, material.getStorageUnits());
-        Map<String, SchemaMetaData> result = loadSchemas(tableNames, material, 
isSameProtocolAndStorageTypes);
+        Map<String, SchemaMetaData> result = loadSchemas(tableNames, material);
         if (!isSameProtocolAndStorageTypes) {
             result = translate(result, protocolType, material);
         }
@@ -85,9 +85,8 @@ public final class GenericSchemaBuilder {
         return result;
     }
     
-    private static Map<String, SchemaMetaData> loadSchemas(final 
Collection<String> tableNames, final GenericSchemaBuilderMaterial material,
-                                                           final boolean 
isSameProtocolAndStorageTypes) throws SQLException {
-        Collection<MetaDataLoaderMaterial> materials = 
SchemaMetaDataUtils.getMetaDataLoaderMaterials(tableNames, material, 
isSameProtocolAndStorageTypes);
+    private static Map<String, SchemaMetaData> loadSchemas(final 
Collection<String> tableNames, final GenericSchemaBuilderMaterial material) 
throws SQLException {
+        Collection<MetaDataLoaderMaterial> materials = 
SchemaMetaDataUtils.getMetaDataLoaderMaterials(tableNames, material);
         return materials.isEmpty() ? Collections.emptyMap() : 
MetaDataLoader.load(materials);
     }
     
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
index 36156e41224..e23ed99629e 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
@@ -57,11 +57,9 @@ public final class SchemaMetaDataUtils {
      *
      * @param tableNames table name collection
      * @param material material
-     * @param isSameProtocolAndStorageTypes whether protocol and storage types 
are the same
      * @return meta data loader materials
      */
-    public static Collection<MetaDataLoaderMaterial> 
getMetaDataLoaderMaterials(final Collection<String> tableNames, final 
GenericSchemaBuilderMaterial material,
-                                                                               
 final boolean isSameProtocolAndStorageTypes) {
+    public static Collection<MetaDataLoaderMaterial> 
getMetaDataLoaderMaterials(final Collection<String> tableNames, final 
GenericSchemaBuilderMaterial material) {
         Map<String, Collection<String>> dataSourceTableGroups = new 
LinkedHashMap<>();
         Collection<DatabaseType> 
unsupportedThreeTierStorageStructureDatabaseTypes = 
getUnsupportedThreeTierStorageStructureDatabaseTypes(material.getStorageUnits().values());
         DataNodes dataNodes = new DataNodes(material.getRules());
@@ -79,26 +77,22 @@ public final class SchemaMetaDataUtils {
         for (Entry<String, Collection<String>> entry : 
dataSourceTableGroups.entrySet()) {
             DatabaseType storageType = 
material.getStorageUnits().get(entry.getKey()).getStorageType();
             String defaultSchemaName = new 
DatabaseTypeRegistry(storageType).getDefaultSchemaName(material.getDefaultSchemaName());
-            result.addAll(buildMaterials(material, entry.getKey(), 
entry.getValue(), storageType, defaultSchemaName, loadTableMetadataBatchSize, 
isSameProtocolAndStorageTypes));
+            result.addAll(buildMaterials(material, entry.getKey(), 
entry.getValue(), storageType, defaultSchemaName, loadTableMetadataBatchSize));
         }
         return result;
     }
     
     private static Collection<MetaDataLoaderMaterial> buildMaterials(final 
GenericSchemaBuilderMaterial material, final String dataSourceName, final 
Collection<String> actualTableNames,
-                                                                     final 
DatabaseType storageType, final String defaultSchemaName, final int 
loadTableMetadataBatchSize,
-                                                                     final 
boolean isSameProtocolAndStorageTypes) {
+                                                                     final 
DatabaseType storageType, final String defaultSchemaName, final int 
loadTableMetadataBatchSize) {
         Collection<MetaDataLoaderMaterial> result = new LinkedList<>();
         DataSource dataSource = getDataSource(material, dataSourceName);
         for (List<String> each : Lists.partition(new 
ArrayList<>(actualTableNames), loadTableMetadataBatchSize)) {
-            result.add(new MetaDataLoaderMaterial(normalize(each, 
material.getIdentifierContext(), isSameProtocolAndStorageTypes), 
dataSourceName, dataSource, storageType, defaultSchemaName));
+            result.add(new MetaDataLoaderMaterial(normalize(each, 
material.getIdentifierContext()), dataSourceName, dataSource, storageType, 
defaultSchemaName));
         }
         return result;
     }
     
-    private static Collection<String> normalize(final Collection<String> 
tableNames, final DatabaseIdentifierContext identifierContext, final boolean 
isSameProtocolAndStorageTypes) {
-        if (isSameProtocolAndStorageTypes) {
-            return tableNames;
-        }
+    private static Collection<String> normalize(final Collection<String> 
tableNames, final DatabaseIdentifierContext identifierContext) {
         return tableNames.stream().map(each -> 
identifierContext.normalizeStorage(IdentifierScope.TABLE, new 
IdentifierValue(each))).collect(Collectors.toList());
     }
     
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtilsTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtilsTest.java
index cd7c3b63014..8f99c4848de 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtilsTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtilsTest.java
@@ -84,7 +84,7 @@ class SchemaMetaDataUtilsTest {
                                           final List<List<String>> 
expectedActualTableNames, final List<String> expectedDefaultSchemaNames) {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(storageUnits, 
Collections.singleton(mockDataNodeRule(dataNodes)), props, defaultSchemaName,
                 DatabaseIdentifierContextFactory.createDefault());
-        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, true));
+        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.size(), is(expectedStorageUnitNames.size()));
         for (int i = 0; i < actual.size(); i++) {
             assertThat(actual.get(i).getStorageUnitName(), 
is(expectedStorageUnitNames.get(i)));
@@ -102,7 +102,7 @@ class SchemaMetaDataUtilsTest {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(storageUnits,
                 
Collections.singleton(mockDataNodeRule(Collections.singleton(new 
DataNode("ds.foo_db", "foo_db", "foo_tbl")))),
                 createProperties(Boolean.FALSE, null), "foo_db", 
DatabaseIdentifierContextFactory.createDefault());
-        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, true));
+        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.size(), is(1));
         assertThat(actual.get(0).getStorageUnitName(), is("ds.foo_db"));
         assertThat(actual.get(0).getDataSource(), is(dataSource));
@@ -120,7 +120,7 @@ class SchemaMetaDataUtilsTest {
                 
Collections.singleton(mockDataNodeRule(Collections.singleton(new 
DataNode("ds.foo_db", "foo_db", "foo_tbl")))),
                 createProperties(Boolean.FALSE, null), "foo_db", 
DatabaseIdentifierContextFactory.createDefault());
         UnsupportedActualDataNodeStructureException actual = 
assertThrows(UnsupportedActualDataNodeStructureException.class,
-                () -> 
SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, true));
+                () -> 
SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.getMessage(), is("Can not support 3-tier structure 
for actual data node 'ds.foo_db.foo_tbl' with JDBC 'jdbc:mock'."));
     }
     
@@ -131,7 +131,7 @@ class SchemaMetaDataUtilsTest {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(storageUnits, Collections.singleton(
                 mockDataNodeRule(Arrays.asList(new DataNode("ds_0.foo_tbl_0"), 
new DataNode("ds_0.foo_tbl_1"), new DataNode("ds_0.foo_tbl_2")))),
                 createProperties(Boolean.TRUE, 2), "foo_db", 
DatabaseIdentifierContextFactory.createDefault());
-        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, true));
+        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.size(), is(2));
         assertThat(actual.get(0).getStorageUnitName(), is("ds_0"));
         assertThat(new ArrayList<>(actual.get(0).getActualTableNames()), 
is(Arrays.asList("foo_tbl_0", "foo_tbl_1")));
@@ -147,7 +147,7 @@ class SchemaMetaDataUtilsTest {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(storageUnits,
                 
Collections.singleton(mockDataNodeRule(Collections.singleton(new 
DataNode("ds_0.t_user")))), props, "foo_db",
                 DatabaseIdentifierContextFactory.create(MYSQL_DATABASE_TYPE, 
new ResourceMetaData(Collections.emptyMap(), storageUnits), props));
-        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, false));
+        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.size(), is(1));
         assertThat(new ArrayList<>(actual.get(0).getActualTableNames()), 
is(Collections.singletonList("T_USER")));
     }
@@ -161,7 +161,7 @@ class SchemaMetaDataUtilsTest {
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(storageUnits, Collections.singleton(
                 mockDataNodeRule(Arrays.asList(new 
DataNode("ds_mysql.t_order"), new DataNode("ds_oracle.t_user")))), props, 
"foo_db",
                 DatabaseIdentifierContextFactory.create(MYSQL_DATABASE_TYPE, 
new ResourceMetaData(Collections.emptyMap(), storageUnits), props));
-        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material, false));
+        List<MetaDataLoaderMaterial> actual = new 
ArrayList<>(SchemaMetaDataUtils.getMetaDataLoaderMaterials(Collections.singleton("foo_tbl"),
 material));
         assertThat(actual.size(), is(2));
         assertThat(actual.get(0).getStorageUnitName(), is("ds_mysql"));
         assertThat(new ArrayList<>(actual.get(0).getActualTableNames()), 
is(Collections.singletonList("t_order")));


Reply via email to