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

zhangliang 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 0d30c4d3480 Refactor package structure of database.core.dict (#27518)
0d30c4d3480 is described below

commit 0d30c4d34805d811a8962d3683793344157eec2b
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 27 23:04:20 2023 +0800

    Refactor package structure of database.core.dict (#27518)
    
    * Refactor StandardJdbcUrlParser
    
    * Add test case of StandardConnectionProperties
    
    * Refactor ConnectionProperties
    
    * Refactor package structure of database.core.dict
    
    * Refactor package structure of database.core.dict
---
 docs/document/content/dev-manual/data-source.cn.md |  12 +-
 docs/document/content/dev-manual/data-source.en.md |  12 +-
 .../schema/builder/GenericSchemaBuilder.java       |  10 +-
 .../database/schema/util/SchemaMetaDataUtils.java  |   8 +-
 .../schema/builder/GenericSchemaBuilderTest.java   |  10 +-
 .../schema/util/SchemaMetaDataUtilsTest.java       |  22 +--
 .../DialectMetaDataLoader.java}                    |   6 +-
 .../MetaDataLoaderEngine.java}                     |  19 ++-
 .../MetaDataLoaderMaterial.java}                   |   6 +-
 .../adapter/MetaDataLoaderConnectionAdapter.java   |   2 +-
 .../{ => loader}/common/ColumnMetaDataLoader.java  |   2 +-
 .../{ => loader}/common/IndexMetaDataLoader.java   |   2 +-
 .../{ => loader}/common/SchemaMetaDataLoader.java  |   4 +-
 .../{ => loader}/common/TableMetaDataLoader.java   |   4 +-
 .../MetaDataLoaderConnectionAdapterTest.java       |   3 +-
 .../loader/common/ColumnMetaDataLoaderTest.java    |   5 +-
 .../loader/common/IndexMetaDataLoaderTest.java     |   3 +-
 .../loader/common/TableMetaDataLoaderTest.java     |  14 +-
 ...maMetaDataLoader.java => H2MetaDataLoader.java} |   6 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 ...taLoaderTest.java => H2MetaDataLoaderTest.java} |   8 +-
 ...etaDataLoader.java => MySQLMetaDataLoader.java} |   6 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 ...oaderTest.java => MySQLMetaDataLoaderTest.java} |   8 +-
 .../mysql/MySQLSchemaMetaDataLoaderTest.java       | 117 ++++---------
 ...ataLoader.java => OpenGaussMetaDataLoader.java} |   8 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 .../OpenGaussSchemaMetaDataLoaderTest.java}        |  31 +---
 ...taDataLoader.java => OracleMetaDataLoader.java} |   8 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 ...aderTest.java => OracleMetaDataLoaderTest.java} |   8 +-
 ...taLoader.java => PostgreSQLMetaDataLoader.java} |   8 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 ....core.dict.metadata.DialectSchemaMetaDataLoader |  18 --
 ...Test.java => PostgreSQLMetaDataLoaderTest.java} |   8 +-
 .../PostgreSQLSchemaMetaDataLoaderTest.java        | 181 +++++----------------
 ...ataLoader.java => SQLServerMetaDataLoader.java} |   6 +-
 ...atabase.core.dict.loader.DialectMetaDataLoader} |   2 +-
 ....core.dict.metadata.DialectSchemaMetaDataLoader |  18 --
 ...rTest.java => SQLServerMetaDataLoaderTest.java} |   8 +-
 .../single/datanode/SingleTableDataNodeLoader.java |   2 +-
 41 files changed, 199 insertions(+), 406 deletions(-)

diff --git a/docs/document/content/dev-manual/data-source.cn.md 
b/docs/document/content/dev-manual/data-source.cn.md
index b30519ab7cf..5a262b8edc2 100644
--- a/docs/document/content/dev-manual/data-source.cn.md
+++ b/docs/document/content/dev-manual/data-source.cn.md
@@ -42,12 +42,12 @@ chapter = true
 
 | *配置标识*     | *详细说明*                | *全限定类名*                                 
                                                                                
                                                                                
                                                                       |
 
|------------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| MySQL      | 使用 MySQL 方言加载元数据      | 
[`org.apache.shardingsphere.infra.database.mysql.MySQLSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java)
                          |
-| Oracle     | 使用 Oracle 方言加载元数据     | 
[`org.apache.shardingsphere.infra.database.oracle.OracleSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java)
                     |
-| PostgreSQL | 使用 PostgreSQL 方言加载元数据 | 
[`org.apache.shardingsphere.infra.database.postgresql.PostgreSQLSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java)
 |
-| SQLServer  | 使用 SQLServer 方言加载元数据  | 
[`org.apache.shardingsphere.infra.database.sqlserver.SQLServerSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java)
      |
-| H2         | 使用 H2 方言加载元数据         | 
[`org.apache.shardingsphere.infra.database.h2.H2SchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java)
                                         |
-| openGauss  | 使用 OpenGauss 方言加载元数据  | 
[`org.apache.shardingsphere.infra.database.opengauss.OpenGaussSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java)
      |
+| MySQL      | 使用 MySQL 方言加载元数据      | 
[`org.apache.shardingsphere.infra.database.mysql.MySQLMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java)
                          |
+| Oracle     | 使用 Oracle 方言加载元数据     | 
[`org.apache.shardingsphere.infra.database.oracle.OracleMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java)
                     |
+| PostgreSQL | 使用 PostgreSQL 方言加载元数据 | 
[`org.apache.shardingsphere.infra.database.postgresql.PostgreSQLMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java)
 |
+| SQLServer  | 使用 SQLServer 方言加载元数据  | 
[`org.apache.shardingsphere.infra.database.sqlserver.SQLServerMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java)
      |
+| H2         | 使用 H2 方言加载元数据         | 
[`org.apache.shardingsphere.infra.database.h2.H2MetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java)
                                         |
+| openGauss  | 使用 OpenGauss 方言加载元数据  | 
[`org.apache.shardingsphere.infra.database.opengauss.OpenGaussMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java)
      |
 
 ## DialectDataTypeLoader
 
diff --git a/docs/document/content/dev-manual/data-source.en.md 
b/docs/document/content/dev-manual/data-source.en.md
index f234ddce0e9..6ce74df6d3f 100644
--- a/docs/document/content/dev-manual/data-source.en.md
+++ b/docs/document/content/dev-manual/data-source.en.md
@@ -42,12 +42,12 @@ Use SQL dialect to load meta data rapidly
 
 | *Configuration Type* | *Description*                            | 
*Fully-qualified class name*                                                    
                                                                                
                                                                                
                                  |
 
|----------------------|------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| MySQL                | Use MySQL dialect to load meta data      | 
[`org.apache.shardingsphere.infra.database.mysql.MySQLSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java)
                          |
-| Oracle               | Use Oracle dialect to load meta data     | 
[`org.apache.shardingsphere.infra.database.oracle.OracleSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java)
                     |
-| PostgreSQL           | Use PostgreSQL dialect to load meta data | 
[`org.apache.shardingsphere.infra.database.postgresql.PostgreSQLSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java)
 |
-| SQLServer            | Use SQLServer dialect to load meta data  | 
[`org.apache.shardingsphere.infra.database.sqlserver.SQLServerSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java)
      |
-| H2                   | Use H2 dialect to load meta data         | 
[`org.apache.shardingsphere.infra.database.h2.H2SchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java)
                                         |
-| openGauss            | Use OpenGauss dialect to load meta data  | 
[`org.apache.shardingsphere.infra.database.opengauss.OpenGaussSchemaMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java)
      |
+| MySQL                | Use MySQL dialect to load meta data      | 
[`org.apache.shardingsphere.infra.database.mysql.MySQLMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java)
                          |
+| Oracle               | Use Oracle dialect to load meta data     | 
[`org.apache.shardingsphere.infra.database.oracle.OracleMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java)
                     |
+| PostgreSQL           | Use PostgreSQL dialect to load meta data | 
[`org.apache.shardingsphere.infra.database.postgresql.PostgreSQLMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java)
 |
+| SQLServer            | Use SQLServer dialect to load meta data  | 
[`org.apache.shardingsphere.infra.database.sqlserver.SQLServerMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java)
      |
+| H2                   | Use H2 dialect to load meta data         | 
[`org.apache.shardingsphere.infra.database.h2.H2MetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java)
                                         |
+| openGauss            | Use OpenGauss dialect to load meta data  | 
[`org.apache.shardingsphere.infra.database.opengauss.OpenGaussMetaDataLoader`](https://github.com/apache/shardingsphere/blob/master/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java)
      |
 
 ## DataSourcePoolMetaData 
 
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 885f8ef1f80..076296ddc8c 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
@@ -22,8 +22,8 @@ import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderEngine;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderMaterial;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderEngine;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderMaterial;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.dict.model.ConstraintMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
@@ -98,11 +98,11 @@ public final class GenericSchemaBuilder {
     
     private static Map<String, SchemaMetaData> loadSchemas(final 
Collection<String> tableNames, final GenericSchemaBuilderMaterial material) 
throws SQLException {
         boolean checkMetaDataEnable = 
material.getProps().getValue(ConfigurationPropertyKey.CHECK_TABLE_METADATA_ENABLED);
-        Collection<SchemaMetaDataLoaderMaterial> schemaMetaDataLoaderMaterials 
= SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(tableNames, material, 
checkMetaDataEnable);
-        if (schemaMetaDataLoaderMaterials.isEmpty()) {
+        Collection<MetaDataLoaderMaterial> metaDataLoaderMaterials = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(tableNames, material, 
checkMetaDataEnable);
+        if (metaDataLoaderMaterials.isEmpty()) {
             return Collections.emptyMap();
         }
-        return SchemaMetaDataLoaderEngine.load(schemaMetaDataLoaderMaterials);
+        return MetaDataLoaderEngine.load(metaDataLoaderMaterials);
     }
     
     private static Map<String, SchemaMetaData> translate(final Map<String, 
SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material) 
{
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 660a6cebf0b..aacd9f41578 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
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.datanode.DataNodes;
 import org.apache.shardingsphere.infra.database.core.GlobalDataSourceRegistry;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.exception.UnsupportedActualDataNodeStructureException;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderMaterial;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 
 import javax.sql.DataSource;
@@ -50,8 +50,8 @@ public final class SchemaMetaDataUtils {
      * @param checkMetaDataEnable check meta data enable config
      * @return schema meta data loader materials
      */
-    public static Collection<SchemaMetaDataLoaderMaterial> 
getSchemaMetaDataLoaderMaterials(final Collection<String> tableNames,
-                                                                               
             final GenericSchemaBuilderMaterial material, final boolean 
checkMetaDataEnable) {
+    public static Collection<MetaDataLoaderMaterial> 
getSchemaMetaDataLoaderMaterials(final Collection<String> tableNames,
+                                                                               
       final GenericSchemaBuilderMaterial material, final boolean 
checkMetaDataEnable) {
         Map<String, Collection<String>> dataSourceTableGroups = new 
LinkedHashMap<>();
         Collection<DatabaseType> notSupportThreeTierStructureStorageTypes = 
getNotSupportThreeTierStructureStorageTypes(material.getStorageTypes().values());
         DataNodes dataNodes = new DataNodes(material.getRules());
@@ -63,7 +63,7 @@ public final class SchemaMetaDataUtils {
                 addOneActualTableDataNode(material, dataSourceTableGroups, 
dataNodes, each);
             }
         }
-        return dataSourceTableGroups.entrySet().stream().map(entry -> new 
SchemaMetaDataLoaderMaterial(entry.getValue(),
+        return dataSourceTableGroups.entrySet().stream().map(entry -> new 
MetaDataLoaderMaterial(entry.getValue(),
                 getDataSource(material, entry.getKey()), 
material.getStorageTypes().get(entry.getKey()), 
material.getDefaultSchemaName())).collect(Collectors.toList());
     }
     
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
index e6d690b12bd..a6684a32416 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderTest.java
@@ -21,7 +21,7 @@ import 
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.fixture.rule.TableContainedFixtureRule;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderEngine;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderEngine;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -50,7 +50,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(AutoMockExtension.class)
-@StaticMockSettings(SchemaMetaDataLoaderEngine.class)
+@StaticMockSettings(MetaDataLoaderEngine.class)
 class GenericSchemaBuilderTest {
     
     private GenericSchemaBuilderMaterial material;
@@ -65,21 +65,21 @@ class GenericSchemaBuilderTest {
     @Test
     void assertLoadWithExistedTableName() throws SQLException {
         Collection<String> tableNames = 
Collections.singletonList("data_node_routed_table1");
-        
when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
+        
when(MetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
         assertFalse(GenericSchemaBuilder.build(tableNames, 
material).get(DefaultDatabase.LOGIC_NAME).getTables().isEmpty());
     }
     
     @Test
     void assertLoadWithNotExistedTableName() throws SQLException {
         Collection<String> tableNames = 
Collections.singletonList("invalid_table");
-        
when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
+        
when(MetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
         assertTrue(GenericSchemaBuilder.build(tableNames, 
material).get(DefaultDatabase.LOGIC_NAME).getTables().isEmpty());
     }
     
     @Test
     void assertLoadAllTables() throws SQLException {
         Collection<String> tableNames = 
Arrays.asList("data_node_routed_table1", "data_node_routed_table2");
-        
when(SchemaMetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
+        
when(MetaDataLoaderEngine.load(any())).thenReturn(createSchemaMetaDataMap(tableNames,
 material));
         Map<String, ShardingSphereSchema> actual = 
GenericSchemaBuilder.build(tableNames, material);
         assertThat(actual.size(), is(1));
         assertTables(new 
ShardingSphereSchema(actual.values().iterator().next().getTables(), 
Collections.emptyMap()).getTables());
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 74f53aba660..4c1f297ed6f 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
@@ -21,7 +21,7 @@ import 
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderMaterial;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
 import 
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
@@ -49,13 +49,13 @@ class SchemaMetaDataUtilsTest {
         
when(dataNodeContainedRule.getDataNodesByTableName("t_order")).thenReturn(mockShardingDataNodes());
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(mock(DatabaseType.class), Collections.emptyMap(), 
mockDataSourceMap(),
                 Arrays.asList(dataNodeContainedRule, 
mock(DataSourceContainedRule.class)), mock(ConfigurationProperties.class), 
"sharding_db");
-        Collection<SchemaMetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_order"),
 material, true);
+        Collection<MetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_order"),
 material, true);
         assertThat(actual.size(), is(2));
-        Iterator<SchemaMetaDataLoaderMaterial> iterator = actual.iterator();
-        SchemaMetaDataLoaderMaterial firstMaterial = iterator.next();
+        Iterator<MetaDataLoaderMaterial> iterator = actual.iterator();
+        MetaDataLoaderMaterial firstMaterial = iterator.next();
         assertThat(firstMaterial.getDefaultSchemaName(), is("sharding_db"));
         assertThat(firstMaterial.getActualTableNames(), 
is(Collections.singletonList("t_order_0")));
-        SchemaMetaDataLoaderMaterial secondMaterial = iterator.next();
+        MetaDataLoaderMaterial secondMaterial = iterator.next();
         assertThat(secondMaterial.getDefaultSchemaName(), is("sharding_db"));
         assertThat(secondMaterial.getActualTableNames(), 
is(Collections.singletonList("t_order_1")));
     }
@@ -66,10 +66,10 @@ class SchemaMetaDataUtilsTest {
         
when(dataNodeContainedRule.getDataNodesByTableName("t_order")).thenReturn(mockShardingDataNodes());
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(mock(DatabaseType.class), Collections.emptyMap(), 
mockDataSourceMap(),
                 Arrays.asList(dataNodeContainedRule, 
mock(DataSourceContainedRule.class)), mock(ConfigurationProperties.class), 
"sharding_db");
-        Collection<SchemaMetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_order"),
 material, false);
+        Collection<MetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_order"),
 material, false);
         assertThat(actual.size(), is(1));
-        Iterator<SchemaMetaDataLoaderMaterial> iterator = actual.iterator();
-        SchemaMetaDataLoaderMaterial firstMaterial = iterator.next();
+        Iterator<MetaDataLoaderMaterial> iterator = actual.iterator();
+        MetaDataLoaderMaterial firstMaterial = iterator.next();
         assertThat(firstMaterial.getDefaultSchemaName(), is("sharding_db"));
         assertThat(firstMaterial.getActualTableNames(), 
is(Collections.singletonList("t_order_0")));
     }
@@ -80,10 +80,10 @@ class SchemaMetaDataUtilsTest {
         
when(dataNodeContainedRule.getDataNodesByTableName("t_single")).thenReturn(mockSingleTableDataNodes());
         GenericSchemaBuilderMaterial material = new 
GenericSchemaBuilderMaterial(mock(DatabaseType.class), Collections.emptyMap(), 
mockDataSourceMap(),
                 Arrays.asList(dataNodeContainedRule, 
mock(DataSourceContainedRule.class)), mock(ConfigurationProperties.class), 
"public");
-        Collection<SchemaMetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_single"),
 material, false);
+        Collection<MetaDataLoaderMaterial> actual = 
SchemaMetaDataUtils.getSchemaMetaDataLoaderMaterials(Collections.singleton("t_single"),
 material, false);
         assertThat(actual.size(), is(1));
-        Iterator<SchemaMetaDataLoaderMaterial> iterator = actual.iterator();
-        SchemaMetaDataLoaderMaterial firstMaterial = iterator.next();
+        Iterator<MetaDataLoaderMaterial> iterator = actual.iterator();
+        MetaDataLoaderMaterial firstMaterial = iterator.next();
         assertThat(firstMaterial.getDefaultSchemaName(), is("public"));
         assertThat(firstMaterial.getActualTableNames(), 
is(Collections.singletonList("t_single")));
     }
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/DialectSchemaMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/DialectMetaDataLoader.java
similarity index 89%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/DialectSchemaMetaDataLoader.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/DialectMetaDataLoader.java
index 390ac0baaac..88a3a850089 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/DialectSchemaMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/DialectMetaDataLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.metadata;
+package org.apache.shardingsphere.infra.database.core.dict.loader;
 
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
 import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPI;
@@ -26,10 +26,10 @@ import java.sql.SQLException;
 import java.util.Collection;
 
 /**
- * Dialect schema meta data loader.
+ * Dialect meta data loader.
  */
 @SingletonSPI
-public interface DialectSchemaMetaDataLoader extends DatabaseTypedSPI {
+public interface DialectMetaDataLoader extends DatabaseTypedSPI {
     
     /**
      * Load schema meta data.
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderEngine.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderEngine.java
similarity index 86%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderEngine.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderEngine.java
index 772fe3c98d2..bba42bb134d 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderEngine.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderEngine.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.metadata;
+package org.apache.shardingsphere.infra.database.core.dict.loader;
 
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
-import 
org.apache.shardingsphere.infra.database.core.dict.common.TableMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.TableMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import 
org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnknownSQLException;
@@ -41,9 +41,12 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
+/**
+ * Meta data loader engine.
+ */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 @Slf4j
-public final class SchemaMetaDataLoaderEngine {
+public final class MetaDataLoaderEngine {
     
     private static final ExecutorService EXECUTOR_SERVICE = new 
ThreadPoolExecutor(Runtime.getRuntime().availableProcessors() * 2, 
Runtime.getRuntime().availableProcessors() * 2,
             0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), new 
ThreadFactoryBuilder().setDaemon(true).setNameFormat("ShardingSphere-SchemaMetaDataLoaderEngine-%d").build());
@@ -55,10 +58,10 @@ public final class SchemaMetaDataLoaderEngine {
      * @return schema meta data map
      * @throws SQLException SQL exception
      */
-    public static Map<String, SchemaMetaData> load(final 
Collection<SchemaMetaDataLoaderMaterial> materials) throws SQLException {
+    public static Map<String, SchemaMetaData> load(final 
Collection<MetaDataLoaderMaterial> materials) throws SQLException {
         Map<String, SchemaMetaData> result = new 
LinkedHashMap<>(materials.size(), 1F);
         Collection<Future<Collection<SchemaMetaData>>> futures = new 
LinkedList<>();
-        for (SchemaMetaDataLoaderMaterial each : materials) {
+        for (MetaDataLoaderMaterial each : materials) {
             futures.add(EXECUTOR_SERVICE.submit(() -> load(each)));
         }
         try {
@@ -76,8 +79,8 @@ public final class SchemaMetaDataLoaderEngine {
         return result;
     }
     
-    private static Collection<SchemaMetaData> load(final 
SchemaMetaDataLoaderMaterial material) throws SQLException {
-        Optional<DialectSchemaMetaDataLoader> dialectSchemaMetaDataLoader = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
material.getStorageType());
+    private static Collection<SchemaMetaData> load(final 
MetaDataLoaderMaterial material) throws SQLException {
+        Optional<DialectMetaDataLoader> dialectSchemaMetaDataLoader = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
material.getStorageType());
         if (dialectSchemaMetaDataLoader.isPresent()) {
             try {
                 return 
dialectSchemaMetaDataLoader.get().load(material.getDataSource(), 
material.getActualTableNames(), material.getDefaultSchemaName());
@@ -88,7 +91,7 @@ public final class SchemaMetaDataLoaderEngine {
         return loadByDefault(material);
     }
     
-    private static Collection<SchemaMetaData> loadByDefault(final 
SchemaMetaDataLoaderMaterial material) throws SQLException {
+    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()).ifPresent(tableMetaData::add);
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderMaterial.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderMaterial.java
similarity index 88%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderMaterial.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderMaterial.java
index efa6a8e003d..6ef415af5b7 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/metadata/SchemaMetaDataLoaderMaterial.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/MetaDataLoaderMaterial.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.metadata;
+package org.apache.shardingsphere.infra.database.core.dict.loader;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -25,11 +25,11 @@ import javax.sql.DataSource;
 import java.util.Collection;
 
 /**
- * Schema meta data loader material.
+ * Meta data loader material.
  */
 @RequiredArgsConstructor
 @Getter
-public final class SchemaMetaDataLoaderMaterial {
+public final class MetaDataLoaderMaterial {
     
     private final Collection<String> actualTableNames;
     
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/adapter/MetaDataLoaderConnectionAdapter.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapter.java
similarity index 99%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/adapter/MetaDataLoaderConnectionAdapter.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapter.java
index 8efbd84a174..adc2f6b2d96 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/adapter/MetaDataLoaderConnectionAdapter.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.adapter;
+package org.apache.shardingsphere.infra.database.core.dict.loader.adapter;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/ColumnMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoader.java
similarity index 98%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/ColumnMetaDataLoader.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoader.java
index 13bd44c544d..ffde4f64f0e 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/ColumnMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/IndexMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoader.java
similarity index 97%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/IndexMetaDataLoader.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoader.java
index 47ea7206f4c..a1777ba2067 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/IndexMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoader.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/SchemaMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/SchemaMetaDataLoader.java
similarity index 96%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/SchemaMetaDataLoader.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/SchemaMetaDataLoader.java
index 7f004b76165..c19fec85102 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/SchemaMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/SchemaMetaDataLoader.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import 
org.apache.shardingsphere.infra.database.core.metadata.system.SystemDatabase;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.database.core.dict.adapter.MetaDataLoaderConnectionAdapter;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.adapter.MetaDataLoaderConnectionAdapter;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/TableMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoader.java
similarity index 93%
rename from 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/TableMetaDataLoader.java
rename to 
infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoader.java
index 3b5a74a4627..40b1bc197b3 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/common/TableMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoader.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.database.core.dict.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.infra.database.core.dict.adapter.MetaDataLoaderConnectionAdapter;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.adapter.MetaDataLoaderConnectionAdapter;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
 
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
similarity index 94%
rename from 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
rename to 
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
index 650c8806c74..b385c2c6357 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
+++ 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/adapter/MetaDataLoaderConnectionAdapterTest.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package 
org.apache.shardingsphere.infra.metadata.database.schema.loader.adapter;
+package org.apache.shardingsphere.infra.database.core.dict.loader.adapter;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.adapter.MetaDataLoaderConnectionAdapter;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoaderTest.java
 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoaderTest.java
similarity index 96%
rename from 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoaderTest.java
rename to 
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoaderTest.java
index 4dc5cea0d9f..b991b41667b 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoaderTest.java
+++ 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/ColumnMetaDataLoaderTest.java
@@ -15,11 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.database.schema.loader.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.common.ColumnMetaDataLoader;
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/IndexMetaDataLoaderTest.java
 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoaderTest.java
similarity index 93%
rename from 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/IndexMetaDataLoaderTest.java
rename to 
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoaderTest.java
index 47ec30f688e..37a4610523c 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/IndexMetaDataLoaderTest.java
+++ 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/IndexMetaDataLoaderTest.java
@@ -15,9 +15,8 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.database.schema.loader.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.common.IndexMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.junit.jupiter.api.Test;
 
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/TableMetaDataLoaderTest.java
 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoaderTest.java
similarity index 89%
rename from 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/TableMetaDataLoaderTest.java
rename to 
infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoaderTest.java
index 1a3f739c5cd..af6bb85c257 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/TableMetaDataLoaderTest.java
+++ 
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/dict/loader/common/TableMetaDataLoaderTest.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.database.schema.loader.common;
+package org.apache.shardingsphere.infra.database.core.dict.loader.common;
 
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderEngine;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.SchemaMetaDataLoaderMaterial;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderEngine;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.MetaDataLoaderMaterial;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -108,8 +108,8 @@ class TableMetaDataLoaderTest {
     void assertLoadWithExistedTable() throws SQLException {
         DatabaseType databaseType = mock(DatabaseType.class, 
RETURNS_DEEP_STUBS);
         
when(databaseType.formatTableNamePattern(TEST_TABLE)).thenReturn(TEST_TABLE);
-        Map<String, SchemaMetaData> actual = 
SchemaMetaDataLoaderEngine.load(Collections.singletonList(
-                new 
SchemaMetaDataLoaderMaterial(Collections.singletonList(TEST_TABLE), dataSource, 
databaseType, "sharding_db")));
+        Map<String, SchemaMetaData> actual = 
MetaDataLoaderEngine.load(Collections.singletonList(
+                new 
MetaDataLoaderMaterial(Collections.singletonList(TEST_TABLE), dataSource, 
databaseType, "sharding_db")));
         TableMetaData tableMetaData = 
actual.get("sharding_db").getTables().iterator().next();
         Collection<ColumnMetaData> columns = tableMetaData.getColumns();
         assertThat(columns.size(), is(2));
@@ -131,8 +131,8 @@ class TableMetaDataLoaderTest {
     
     @Test
     void assertLoadWithNotExistedTable() throws SQLException {
-        Map<String, SchemaMetaData> actual = 
SchemaMetaDataLoaderEngine.load(Collections.singletonList(
-                new 
SchemaMetaDataLoaderMaterial(Collections.singletonList(TEST_TABLE), dataSource, 
mock(DatabaseType.class), "sharding_db")));
+        Map<String, SchemaMetaData> actual = 
MetaDataLoaderEngine.load(Collections.singletonList(
+                new 
MetaDataLoaderMaterial(Collections.singletonList(TEST_TABLE), dataSource, 
mock(DatabaseType.class), "sharding_db")));
         assertFalse(actual.isEmpty());
         assertTrue(actual.containsKey("sharding_db"));
         assertTrue(actual.get("sharding_db").getTables().isEmpty());
diff --git 
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java
 
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoader.java
similarity index 98%
rename from 
infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java
rename to 
infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoader.java
index 4c033c7916e..dae0c3410a9 100644
--- 
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoader.java
+++ 
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoader.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.infra.database.h2;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -38,9 +38,9 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Table meta data loader for H2.
+ * Meta data loader for H2.
  */
-public final class H2SchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class H2MetaDataLoader implements DialectMetaDataLoader {
     
     private static final String TABLE_META_DATA_NO_ORDER = "SELECT 
TABLE_CATALOG, TABLE_NAME, COLUMN_NAME, DATA_TYPE, ORDINAL_POSITION, 
COALESCE(IS_VISIBLE, FALSE) IS_VISIBLE"
             + " FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_CATALOG=? AND 
TABLE_SCHEMA=?";
diff --git 
a/infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 91%
rename from 
infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
rename to 
infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index f4f6eb49ecf..fba41ff0a64 100644
--- 
a/infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.mysql.MySQLSchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.h2.H2MetaDataLoader
diff --git 
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoaderTest.java
 
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoaderTest.java
similarity index 95%
rename from 
infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoaderTest.java
rename to 
infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoaderTest.java
index 55bae974eb8..3f18ef59067 100644
--- 
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2SchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2MetaDataLoaderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.database.h2;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class H2SchemaMetaDataLoaderTest {
+class H2MetaDataLoaderTest {
     
     @Test
     void assertLoadWithoutTables() throws SQLException {
@@ -144,8 +144,8 @@ class H2SchemaMetaDataLoaderTest {
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "H2"));
+    private DialectMetaDataLoader getDialectTableMetaDataLoader() {
+        Optional<DialectMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "H2"));
         assertTrue(result.isPresent());
         return result.get();
     }
diff --git 
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java
 
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoader.java
similarity index 97%
rename from 
infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java
rename to 
infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoader.java
index 05d4653ec19..6fcfb74d7c8 100644
--- 
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoader.java
+++ 
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoader.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.database.mysql;
 
 import org.apache.shardingsphere.infra.database.core.GlobalDataSourceRegistry;
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.dict.model.ConstraintMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
@@ -41,9 +41,9 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Table meta data loader for MySQL.
+ * Meta data loader for MySQL.
  */
-public final class MySQLSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class MySQLMetaDataLoader implements DialectMetaDataLoader {
     
     private static final String ORDER_BY_ORDINAL_POSITION = " ORDER BY 
ORDINAL_POSITION";
     
diff --git 
a/infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 92%
rename from 
infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
rename to 
infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index fc298aa18c9..f87d1c82719 100644
--- 
a/infra/database/type/h2/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/mysql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.h2.H2SchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.mysql.MySQLMetaDataLoader
diff --git 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoaderTest.java
similarity index 95%
copy from 
infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
copy to 
infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoaderTest.java
index 4fad0f3a711..a5a4a35581c 100644
--- 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLMetaDataLoaderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.database.mysql;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class MySQLSchemaMetaDataLoaderTest {
+class MySQLMetaDataLoaderTest {
     
     @Test
     void assertLoadWithoutTables() throws SQLException {
@@ -108,8 +108,8 @@ class MySQLSchemaMetaDataLoaderTest {
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
+    private DialectMetaDataLoader getDialectTableMetaDataLoader() {
+        Optional<DialectMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
         assertTrue(result.isPresent());
         return result.get();
     }
diff --git 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
index 4fad0f3a711..c1169073dfa 100644
--- 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLSchemaMetaDataLoaderTest.java
@@ -17,119 +17,70 @@
 
 package org.apache.shardingsphere.infra.database.mysql;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
-import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
-import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
+import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import javax.sql.DataSource;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Types;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
-import java.util.Optional;
+import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 class MySQLSchemaMetaDataLoaderTest {
     
-    @Test
-    void assertLoadWithoutTables() throws SQLException {
-        DataSource dataSource = mockDataSource();
-        ResultSet resultSet = mockTableMetaDataResultSet();
-        when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME, ORDINAL_POSITION, 
COLUMN_TYPE "
-                + "FROM information_schema.columns WHERE TABLE_SCHEMA=? ORDER 
BY ORDINAL_POSITION")
-                .executeQuery()).thenReturn(resultSet);
-        ResultSet indexResultSet = mockIndexMetaDataResultSet();
-        when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
INDEX_NAME "
-                + "FROM information_schema.statistics WHERE TABLE_SCHEMA=? and 
TABLE_NAME IN ('tbl')").executeQuery()).thenReturn(indexResultSet);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.emptyList(), "sharding_db"));
-    }
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private DataSource dataSource;
     
-    @Test
-    void assertLoadWithTables() throws SQLException {
-        DataSource dataSource = mockDataSource();
-        ResultSet resultSet = mockTableMetaDataResultSet();
-        when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME, ORDINAL_POSITION, 
COLUMN_TYPE "
-                + "FROM information_schema.columns WHERE TABLE_SCHEMA=? AND 
TABLE_NAME IN ('tbl') ORDER BY ORDINAL_POSITION")
-                .executeQuery()).thenReturn(resultSet);
-        ResultSet indexResultSet = mockIndexMetaDataResultSet();
-        when(dataSource.getConnection().prepareStatement(
-                "SELECT TABLE_NAME, INDEX_NAME FROM 
information_schema.statistics WHERE TABLE_SCHEMA=? and TABLE_NAME IN ('tbl')")
-                .executeQuery()).thenReturn(indexResultSet);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.singletonList("tbl"), "sharding_db"));
+    @BeforeEach
+    void setUp() throws SQLException {
+        ResultSet tableResultSet = mockTableResultSet();
+        when(dataSource.getConnection().getMetaData().getTables("catalog", 
"public", null, new String[]{"TABLE", "VIEW", "SYSTEM TABLE", "SYSTEM 
VIEW"})).thenReturn(tableResultSet);
+        when(dataSource.getConnection().getCatalog()).thenReturn("catalog");
+        when(dataSource.getConnection().getSchema()).thenReturn("public");
+        ResultSet schemaResultSet = mockSchemaResultSet();
+        
when(dataSource.getConnection().getMetaData().getSchemas()).thenReturn(schemaResultSet);
     }
     
-    private DataSource mockDataSource() throws SQLException {
-        DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS);
-        ResultSet typeInfoResultSet = mockTypeInfoResultSet();
-        
when(result.getConnection().getMetaData().getTypeInfo()).thenReturn(typeInfoResultSet);
-        return result;
-    }
-    
-    private ResultSet mockTypeInfoResultSet() throws SQLException {
+    private ResultSet mockTableResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
         when(result.next()).thenReturn(true, true, true, true, false);
-        when(result.getString("TYPE_NAME")).thenReturn("int", "varchar");
-        when(result.getInt("DATA_TYPE")).thenReturn(Types.INTEGER, 
Types.VARCHAR);
+        when(result.getString("TABLE_NAME")).thenReturn("tbl", "$tbl", "/tbl", 
"##tbl");
         return result;
     }
     
-    private ResultSet mockTableMetaDataResultSet() throws SQLException {
+    private ResultSet mockSchemaResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, true, true, true, true, true, 
true, true, true, false);
-        when(result.getString("TABLE_NAME")).thenReturn("tbl");
-        when(result.getString("COLUMN_NAME")).thenReturn("id", "name", "doc", 
"geo", "t_year", "pg", "mpg", "pt", "mpt");
-        when(result.getString("DATA_TYPE")).thenReturn("int", "varchar", 
"json", "geometry", "year", "polygon", "multipolygon", "point", "multipoint");
-        when(result.getString("COLUMN_KEY")).thenReturn("PRI", "", "", "", "", 
"", "", "", "");
-        when(result.getString("EXTRA")).thenReturn("auto_increment", 
"INVISIBLE", "", "", "", "", "", "", "");
-        when(result.getString("COLLATION_NAME")).thenReturn("utf8", 
"utf8_general_ci");
-        when(result.getString("COLUMN_TYPE")).thenReturn("int", "varchar");
-        return result;
-    }
-    
-    private ResultSet mockIndexMetaDataResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("INDEX_NAME")).thenReturn("id");
-        when(result.getString("TABLE_NAME")).thenReturn("tbl");
+        when(result.next()).thenReturn(true, true, true, true, false);
+        when(result.getString("TABLE_SCHEM")).thenReturn("information_schema", 
"public", "schema_1", "schema_2");
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"));
-        assertTrue(result.isPresent());
-        return result.get();
+    @Test
+    void assertLoadSchemaTableNames() throws SQLException {
+        Map<String, Collection<String>> schemaTableNames = 
Collections.singletonMap(DefaultDatabase.LOGIC_NAME, 
Collections.singletonList("tbl"));
+        
assertThat(SchemaMetaDataLoader.loadSchemaTableNames(DefaultDatabase.LOGIC_NAME,
 TypedSPILoader.getService(DatabaseType.class, "MySQL"), dataSource), 
is(schemaTableNames));
     }
     
-    private void assertTableMetaDataMap(final Collection<SchemaMetaData> 
schemaMetaDataList) {
-        assertThat(schemaMetaDataList.size(), is(1));
-        TableMetaData actualTableMetaData = 
schemaMetaDataList.iterator().next().getTables().iterator().next();
-        assertThat(actualTableMetaData.getColumns().size(), is(9));
-        Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 
Types.INTEGER, true, true, true, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", 
Types.LONGVARCHAR, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("geo", 
Types.BINARY, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("t_year", 
Types.DATE, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("pg", 
Types.BINARY, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpg", 
Types.BINARY, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("pt", 
Types.BINARY, false, false, false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpt", 
Types.BINARY, false, false, false, true, false)));
-        assertThat(actualTableMetaData.getIndexes().size(), is(1));
-        Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
-        assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
+    @Test
+    void assertLoadSchemaNames() throws SQLException {
+        
assertThat(SchemaMetaDataLoader.loadSchemaNames(dataSource.getConnection(), 
TypedSPILoader.getService(DatabaseType.class, "MySQL")), 
is(Collections.singletonList("public")));
     }
 }
diff --git 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java
 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussMetaDataLoader.java
similarity index 96%
rename from 
infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java
rename to 
infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussMetaDataLoader.java
index 573b383f937..de5bfe14074 100644
--- 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoader.java
+++ 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussMetaDataLoader.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.infra.database.opengauss;
 import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Multimap;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import 
org.apache.shardingsphere.infra.database.core.dict.common.SchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -43,9 +43,9 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * Schema meta data loader for openGauss.
+ * Meta data loader for openGauss.
  */
-public final class OpenGaussSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class OpenGaussMetaDataLoader implements DialectMetaDataLoader {
     
     private static final String BASIC_TABLE_META_DATA_SQL = "SELECT 
table_name, column_name, ordinal_position, data_type, udt_name, column_default, 
table_schema"
             + " FROM information_schema.columns WHERE table_schema IN (%s)";
diff --git 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 92%
copy from 
infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
copy to 
infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index b7a3b843270..008b318f811 100644
--- 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.oracle.OracleSchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.opengauss.OpenGaussMetaDataLoader
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/SchemaMetaDataLoaderTest.java
 
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoaderTest.java
similarity index 71%
rename from 
infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/SchemaMetaDataLoaderTest.java
rename to 
infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoaderTest.java
index 4595d2dd255..32da9b32026 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/SchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussSchemaMetaDataLoaderTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.database.schema.loader.common;
+package org.apache.shardingsphere.infra.database.opengauss;
 
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
-import 
org.apache.shardingsphere.infra.database.core.dict.common.SchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.BeforeEach;
@@ -46,7 +46,7 @@ import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
 @MockitoSettings(strictness = Strictness.LENIENT)
-class SchemaMetaDataLoaderTest {
+class OpenGaussSchemaMetaDataLoaderTest {
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private DataSource dataSource;
@@ -76,21 +76,10 @@ class SchemaMetaDataLoaderTest {
     }
     
     @Test
-    void assertLoadSchemaTableNamesForPostgreSQL() throws SQLException {
-        
assertThat(SchemaMetaDataLoader.loadSchemaTableNames(DefaultDatabase.LOGIC_NAME,
 TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"), dataSource), 
is(createSchemaTableNames()));
-    }
-    
-    @Test
-    void assertLoadSchemaTableNamesForOpenGauss() throws SQLException {
+    void assertLoadSchemaTableNames() throws SQLException {
         
assertThat(SchemaMetaDataLoader.loadSchemaTableNames(DefaultDatabase.LOGIC_NAME,
 TypedSPILoader.getService(DatabaseType.class, "openGauss"), dataSource), 
is(createSchemaTableNames()));
     }
     
-    @Test
-    void assertLoadSchemaTableNamesForMySQL() throws SQLException {
-        Map<String, Collection<String>> schemaTableNames = 
Collections.singletonMap(DefaultDatabase.LOGIC_NAME, 
Collections.singletonList("tbl"));
-        
assertThat(SchemaMetaDataLoader.loadSchemaTableNames(DefaultDatabase.LOGIC_NAME,
 TypedSPILoader.getService(DatabaseType.class, "MySQL"), dataSource), 
is(schemaTableNames));
-    }
-    
     private Map<String, Collection<String>> createSchemaTableNames() {
         Map<String, Collection<String>> result = new LinkedHashMap<>();
         result.put("public", Collections.singletonList("tbl"));
@@ -100,17 +89,7 @@ class SchemaMetaDataLoaderTest {
     }
     
     @Test
-    void assertLoadSchemaNamesForPostgreSQL() throws SQLException {
-        
assertThat(SchemaMetaDataLoader.loadSchemaNames(dataSource.getConnection(), 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")), 
is(Arrays.asList("public", "schema_1", "schema_2")));
-    }
-    
-    @Test
-    void assertLoadSchemaNamesForOpenGauss() throws SQLException {
+    void assertLoadSchemaNames() throws SQLException {
         
assertThat(SchemaMetaDataLoader.loadSchemaNames(dataSource.getConnection(), 
TypedSPILoader.getService(DatabaseType.class, "openGauss")), 
is(Arrays.asList("public", "schema_1", "schema_2")));
     }
-    
-    @Test
-    void assertLoadSchemaNamesForMySQL() throws SQLException {
-        
assertThat(SchemaMetaDataLoader.loadSchemaNames(dataSource.getConnection(), 
TypedSPILoader.getService(DatabaseType.class, "MySQL")), 
is(Collections.singletonList("public")));
-    }
 }
diff --git 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java
 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoader.java
similarity index 97%
rename from 
infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java
rename to 
infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoader.java
index 4116fe71bd3..7ecc7e1dec6 100644
--- 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoader.java
+++ 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoader.java
@@ -18,12 +18,12 @@
 package org.apache.shardingsphere.infra.database.oracle;
 
 import com.google.common.collect.Lists;
-import 
org.apache.shardingsphere.infra.database.core.dict.adapter.MetaDataLoaderConnectionAdapter;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.adapter.MetaDataLoaderConnectionAdapter;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
@@ -45,9 +45,9 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Schema meta data loader for Oracle.
+ * Meta data loader for Oracle.
  */
-public final class OracleSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class OracleMetaDataLoader implements DialectMetaDataLoader {
     
     private static final String TABLE_META_DATA_SQL_NO_ORDER = "SELECT OWNER 
AS TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_ID, HIDDEN_COLUMN 
%s FROM ALL_TAB_COLS WHERE OWNER = ?";
     
diff --git 
a/infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 90%
rename from 
infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
rename to 
infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index 36d85c73729..5921129b7f0 100644
--- 
a/infra/database/type/opengauss/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.opengauss.OpenGaussSchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.oracle.OracleMetaDataLoader
diff --git 
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoaderTest.java
 
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoaderTest.java
similarity index 98%
rename from 
infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoaderTest.java
rename to 
infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoaderTest.java
index 87479c1103b..2ba864fbb85 100644
--- 
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleMetaDataLoaderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.database.oracle;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class OracleSchemaMetaDataLoaderTest {
+class OracleMetaDataLoaderTest {
     
     private static final String ALL_CONSTRAINTS_SQL_WITHOUT_TABLES = "SELECT 
A.OWNER AS TABLE_SCHEMA, A.TABLE_NAME AS TABLE_NAME, B.COLUMN_NAME AS 
COLUMN_NAME FROM ALL_CONSTRAINTS A"
             + " INNER JOIN ALL_CONS_COLUMNS B ON A.CONSTRAINT_NAME = 
B.CONSTRAINT_NAME WHERE CONSTRAINT_TYPE = 'P' AND A.OWNER = 'TEST'";
@@ -267,8 +267,8 @@ class OracleSchemaMetaDataLoaderTest {
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "Oracle"));
+    private DialectMetaDataLoader getDialectTableMetaDataLoader() {
+        Optional<DialectMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "Oracle"));
         assertTrue(result.isPresent());
         return result.get();
     }
diff --git 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java
 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoader.java
similarity index 97%
rename from 
infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java
rename to 
infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoader.java
index e342eb79abe..44327c82519 100644
--- 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoader.java
+++ 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoader.java
@@ -19,11 +19,11 @@ package org.apache.shardingsphere.infra.database.postgresql;
 
 import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Multimap;
-import 
org.apache.shardingsphere.infra.database.core.dict.common.SchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.dict.model.ConstraintMetaData;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -44,9 +44,9 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
- * Schema meta data loader for PostgreSQL.
+ * Meta data loader for PostgreSQL.
  */
-public final class PostgreSQLSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class PostgreSQLMetaDataLoader implements DialectMetaDataLoader {
     
     private static final String BASIC_TABLE_META_DATA_SQL = "SELECT 
table_name, column_name, ordinal_position, data_type, udt_name, column_default, 
table_schema"
             + " FROM information_schema.columns WHERE table_schema IN (%s)";
diff --git 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 91%
copy from 
infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
copy to 
infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index b7a3b843270..a355f0da667 100644
--- 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.oracle.OracleSchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.postgresql.PostgreSQLMetaDataLoader
diff --git 
a/infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
deleted file mode 100644
index c1bb3921ddc..00000000000
--- 
a/infra/database/type/postgresql/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.infra.database.postgresql.PostgreSQLSchemaMetaDataLoader
diff --git 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoaderTest.java
similarity index 96%
copy from 
infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
copy to 
infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoaderTest.java
index 72f2ca5cd3e..cd84d88d879 100644
--- 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLMetaDataLoaderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.database.postgresql;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.dict.model.ConstraintMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
@@ -45,7 +45,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class PostgreSQLSchemaMetaDataLoaderTest {
+class PostgreSQLMetaDataLoaderTest {
     
     private static final String BASIC_TABLE_META_DATA_SQL = "SELECT 
table_name, column_name, ordinal_position, data_type, udt_name, column_default, 
table_schema"
             + " FROM information_schema.columns WHERE table_schema IN 
('public')";
@@ -173,8 +173,8 @@ class PostgreSQLSchemaMetaDataLoaderTest {
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
+    private DialectMetaDataLoader getDialectTableMetaDataLoader() {
+        Optional<DialectMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
         assertTrue(result.isPresent());
         return result.get();
     }
diff --git 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
index 72f2ca5cd3e..02906d62582 100644
--- 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLSchemaMetaDataLoaderTest.java
@@ -17,180 +17,79 @@
 
 package org.apache.shardingsphere.infra.database.postgresql;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
-import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
-import 
org.apache.shardingsphere.infra.database.core.dict.model.ConstraintMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
-import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
-import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
+import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
 
 import javax.sql.DataSource;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Types;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
-import java.util.Optional;
+import java.util.LinkedHashMap;
+import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.startsWith;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+@ExtendWith(MockitoExtension.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
 class PostgreSQLSchemaMetaDataLoaderTest {
     
-    private static final String BASIC_TABLE_META_DATA_SQL = "SELECT 
table_name, column_name, ordinal_position, data_type, udt_name, column_default, 
table_schema"
-            + " FROM information_schema.columns WHERE table_schema IN 
('public')";
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private DataSource dataSource;
     
-    private static final String TABLE_META_DATA_SQL_WITHOUT_TABLES = 
BASIC_TABLE_META_DATA_SQL + " ORDER BY ordinal_position";
-    
-    private static final String TABLE_META_DATA_SQL_WITH_TABLES = 
BASIC_TABLE_META_DATA_SQL + " AND table_name IN ('tbl') ORDER BY 
ordinal_position";
-    
-    private static final String PRIMARY_KEY_META_DATA_SQL = "SELECT 
tc.table_name, kc.column_name, kc.table_schema FROM 
information_schema.table_constraints tc"
-            + " JOIN information_schema.key_column_usage kc ON kc.table_schema 
= tc.table_schema AND kc.table_name = tc.table_name AND kc.constraint_name = 
tc.constraint_name"
-            + " WHERE tc.constraint_type = 'PRIMARY KEY' AND 
kc.ordinal_position IS NOT NULL AND kc.table_schema IN ('public')";
-    
-    private static final String BASIC_INDEX_META_DATA_SQL = "SELECT tablename, 
indexname, schemaname FROM pg_indexes WHERE schemaname IN ('public')";
-    
-    private static final String BASIC_CONSTRAINT_META_DATA_SQL = "SELECT 
tc.table_schema,tc.table_name,tc.constraint_name,pgo.relname refer_table_name 
FROM information_schema.table_constraints tc "
-            + "JOIN pg_constraint pgc ON tc.constraint_name = pgc.conname AND 
contype='f' "
-            + "JOIN pg_class pgo ON pgc.confrelid = pgo.oid "
-            + "WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_schema IN 
('public')";
-    
-    private static final String LOAD_ALL_ROLE_TABLE_GRANTS_SQL = "SELECT 
table_name FROM information_schema.role_table_grants";
-    
-    @Test
-    void assertLoadWithoutTables() throws SQLException {
-        DataSource dataSource = mockDataSource();
-        ResultSet schemaResultSet = mockSchemaMetaDataResultSet();
+    @BeforeEach
+    void setUp() throws SQLException {
+        ResultSet tableResultSet = mockTableResultSet();
+        when(dataSource.getConnection().getMetaData().getTables("catalog", 
"public", null, new String[]{"TABLE", "VIEW", "SYSTEM TABLE", "SYSTEM 
VIEW"})).thenReturn(tableResultSet);
+        when(dataSource.getConnection().getCatalog()).thenReturn("catalog");
+        when(dataSource.getConnection().getSchema()).thenReturn("public");
+        ResultSet schemaResultSet = mockSchemaResultSet();
         
when(dataSource.getConnection().getMetaData().getSchemas()).thenReturn(schemaResultSet);
-        ResultSet tableResultSet = mockTableMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(TABLE_META_DATA_SQL_WITHOUT_TABLES).executeQuery()).thenReturn(tableResultSet);
-        ResultSet primaryKeyResultSet = mockPrimaryKeyMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(PRIMARY_KEY_META_DATA_SQL).executeQuery()).thenReturn(primaryKeyResultSet);
-        ResultSet indexResultSet = mockIndexMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(BASIC_INDEX_META_DATA_SQL).executeQuery()).thenReturn(indexResultSet);
-        ResultSet constraintResultSet = mockConstraintMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(BASIC_CONSTRAINT_META_DATA_SQL).executeQuery()).thenReturn(constraintResultSet);
-        ResultSet roleTableGrantsResultSet = mockRoleTableGrantsResultSet();
-        
when(dataSource.getConnection().prepareStatement(startsWith(LOAD_ALL_ROLE_TABLE_GRANTS_SQL)).executeQuery()).thenReturn(roleTableGrantsResultSet);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.emptyList(), "sharding_db"));
     }
     
-    private ResultSet mockSchemaMetaDataResultSet() throws SQLException {
+    private ResultSet mockTableResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("TABLE_SCHEM")).thenReturn("public");
+        when(result.next()).thenReturn(true, true, true, true, false);
+        when(result.getString("TABLE_NAME")).thenReturn("tbl", "$tbl", "/tbl", 
"##tbl");
         return result;
     }
     
-    @Test
-    void assertLoadWithTables() throws SQLException {
-        DataSource dataSource = mockDataSource();
-        ResultSet schemaResultSet = mockSchemaMetaDataResultSet();
-        
when(dataSource.getConnection().getMetaData().getSchemas()).thenReturn(schemaResultSet);
-        ResultSet tableResultSet = mockTableMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(TABLE_META_DATA_SQL_WITH_TABLES).executeQuery()).thenReturn(tableResultSet);
-        ResultSet primaryKeyResultSet = mockPrimaryKeyMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(PRIMARY_KEY_META_DATA_SQL).executeQuery()).thenReturn(primaryKeyResultSet);
-        ResultSet indexResultSet = mockIndexMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(BASIC_INDEX_META_DATA_SQL).executeQuery()).thenReturn(indexResultSet);
-        ResultSet constraintResultSet = mockConstraintMetaDataResultSet();
-        
when(dataSource.getConnection().prepareStatement(BASIC_CONSTRAINT_META_DATA_SQL).executeQuery()).thenReturn(constraintResultSet);
-        ResultSet roleTableGrantsResultSet = mockRoleTableGrantsResultSet();
-        
when(dataSource.getConnection().prepareStatement(startsWith(LOAD_ALL_ROLE_TABLE_GRANTS_SQL)).executeQuery()).thenReturn(roleTableGrantsResultSet);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.singletonList("tbl"), "sharding_db"));
-    }
-    
-    private ResultSet mockRoleTableGrantsResultSet() throws SQLException {
+    private ResultSet mockSchemaResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("table_name")).thenReturn("tbl");
-        return result;
-    }
-    
-    private DataSource mockDataSource() throws SQLException {
-        DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS);
-        ResultSet typeInfoResultSet = mockTypeInfoResultSet();
-        
when(result.getConnection().getMetaData().getTypeInfo()).thenReturn(typeInfoResultSet);
+        when(result.next()).thenReturn(true, true, true, true, false);
+        when(result.getString("TABLE_SCHEM")).thenReturn("information_schema", 
"public", "schema_1", "schema_2");
         return result;
     }
     
-    private ResultSet mockTypeInfoResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, true, false);
-        when(result.getString("TYPE_NAME")).thenReturn("int4", "varchar");
-        when(result.getInt("DATA_TYPE")).thenReturn(Types.INTEGER, 
Types.VARCHAR);
-        return result;
-    }
-    
-    private ResultSet mockTableMetaDataResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, true, false);
-        when(result.getString("table_name")).thenReturn("tbl");
-        when(result.getString("column_name")).thenReturn("id", "name");
-        when(result.getInt("ordinal_position")).thenReturn(1, 2);
-        when(result.getString("data_type")).thenReturn("integer", "character 
varying");
-        when(result.getString("udt_name")).thenReturn("int4", "varchar");
-        
when(result.getString("column_default")).thenReturn("nextval('id_seq'::regclass)",
 "");
-        when(result.getString("table_schema")).thenReturn("public", "public");
-        return result;
-    }
-    
-    private ResultSet mockPrimaryKeyMetaDataResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("table_name")).thenReturn("tbl");
-        when(result.getString("column_name")).thenReturn("id");
-        when(result.getString("table_schema")).thenReturn("public");
-        return result;
-    }
-    
-    private ResultSet mockIndexMetaDataResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("tablename")).thenReturn("tbl");
-        when(result.getString("indexname")).thenReturn("id");
-        when(result.getString("schemaname")).thenReturn("public");
-        return result;
+    @Test
+    void assertLoadSchemaTableNames() throws SQLException {
+        
assertThat(SchemaMetaDataLoader.loadSchemaTableNames(DefaultDatabase.LOGIC_NAME,
 TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"), dataSource), 
is(createSchemaTableNames()));
     }
     
-    private ResultSet mockConstraintMetaDataResultSet() throws SQLException {
-        ResultSet result = mock(ResultSet.class);
-        when(result.next()).thenReturn(true, false);
-        when(result.getString("table_schema")).thenReturn("public");
-        when(result.getString("table_name")).thenReturn("tbl");
-        when(result.getString("constraint_name")).thenReturn("tbl_con");
-        when(result.getString("refer_table_name")).thenReturn("refer_tbl");
+    private Map<String, Collection<String>> createSchemaTableNames() {
+        Map<String, Collection<String>> result = new LinkedHashMap<>();
+        result.put("public", Collections.singletonList("tbl"));
+        result.put("schema_1", Collections.emptyList());
+        result.put("schema_2", Collections.emptyList());
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
-        assertTrue(result.isPresent());
-        return result.get();
-    }
-    
-    private void assertTableMetaDataMap(final Collection<SchemaMetaData> 
schemaMetaDataList) {
-        assertThat(schemaMetaDataList.size(), is(1));
-        TableMetaData actualTableMetaData = 
schemaMetaDataList.iterator().next().getTables().iterator().next();
-        assertThat(actualTableMetaData.getColumns().size(), is(2));
-        Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 
Types.INTEGER, true, true, true, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, true, true, false)));
-        assertThat(actualTableMetaData.getIndexes().size(), is(1));
-        Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
-        assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
-        assertThat(actualTableMetaData.getConstraints().size(), is(1));
-        Iterator<ConstraintMetaData> constrainsIterator = 
actualTableMetaData.getConstraints().iterator();
-        assertThat(constrainsIterator.next(), is(new 
ConstraintMetaData("tbl_con", "refer_tbl")));
+    @Test
+    void assertLoadSchemaNames() throws SQLException {
+        
assertThat(SchemaMetaDataLoader.loadSchemaNames(dataSource.getConnection(), 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")), 
is(Arrays.asList("public", "schema_1", "schema_2")));
     }
 }
diff --git 
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java
 
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoader.java
similarity index 97%
rename from 
infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java
rename to 
infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoader.java
index f69d0bd3fe2..8aeb67afc61 100644
--- 
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoader.java
+++ 
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoader.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.database.sqlserver;
 import 
org.apache.shardingsphere.infra.database.core.metadata.datatype.DataTypeLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.TableMetaData;
 
@@ -39,9 +39,9 @@ import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
 /**
- * Schema meta data loader for SQLServer.
+ * Meta data loader for SQLServer.
  */
-public final class SQLServerSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader {
+public final class SQLServerMetaDataLoader implements DialectMetaDataLoader {
     
     private static final String TABLE_META_DATA_SQL_NO_ORDER = "SELECT 
obj.name AS TABLE_NAME, col.name AS COLUMN_NAME, t.name AS DATA_TYPE,"
             + " col.collation_name AS COLLATION_NAME, col.column_id, 
is_identity AS IS_IDENTITY, %s"
diff --git 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
similarity index 92%
rename from 
infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
rename to 
infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
index b7a3b843270..788f40f279f 100644
--- 
a/infra/database/type/oracle/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ 
b/infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader
@@ -15,4 +15,4 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.infra.database.oracle.OracleSchemaMetaDataLoader
+org.apache.shardingsphere.infra.database.sqlserver.SQLServerMetaDataLoader
diff --git 
a/infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
 
b/infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
deleted file mode 100644
index e83b3a0bbd9..00000000000
--- 
a/infra/database/type/sqlserver/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.infra.database.sqlserver.SQLServerSchemaMetaDataLoader
diff --git 
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoaderTest.java
 
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoaderTest.java
similarity index 96%
rename from 
infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoaderTest.java
rename to 
infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoaderTest.java
index b86b3214cc0..b6b93507861 100644
--- 
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerSchemaMetaDataLoaderTest.java
+++ 
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerMetaDataLoaderTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.infra.database.sqlserver;
 
-import 
org.apache.shardingsphere.infra.database.core.dict.metadata.DialectSchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.DialectMetaDataLoader;
 import org.apache.shardingsphere.infra.database.core.dict.model.ColumnMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.IndexMetaData;
 import org.apache.shardingsphere.infra.database.core.dict.model.SchemaMetaData;
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-class SQLServerSchemaMetaDataLoaderTest {
+class SQLServerMetaDataLoaderTest {
     
     private static final String 
LOAD_COLUMN_META_DATA_WITHOUT_TABLES_HIGH_VERSION = "SELECT obj.name AS 
TABLE_NAME, col.name AS COLUMN_NAME, t.name AS DATA_TYPE,"
             + " col.collation_name AS COLLATION_NAME, col.column_id, 
is_identity AS IS_IDENTITY, is_hidden AS IS_HIDDEN,"
@@ -180,8 +180,8 @@ class SQLServerSchemaMetaDataLoaderTest {
         return result;
     }
     
-    private DialectSchemaMetaDataLoader getDialectTableMetaDataLoader() {
-        Optional<DialectSchemaMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectSchemaMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "SQLServer"));
+    private DialectMetaDataLoader getDialectTableMetaDataLoader() {
+        Optional<DialectMetaDataLoader> result = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
TypedSPILoader.getService(DatabaseType.class, "SQLServer"));
         assertTrue(result.isPresent());
         return result.get();
     }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
index 9c60ae59d66..ae4251b3358 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/datanode/SingleTableDataNodeLoader.java
@@ -21,7 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import 
org.apache.shardingsphere.infra.database.core.dict.common.SchemaMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.dict.loader.common.SchemaMetaDataLoader;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.single.api.constant.SingleTableConstants;
 import org.apache.shardingsphere.single.exception.SingleTablesLoadingException;

Reply via email to