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

duanzhengqiang 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 ea0e3cfb041 Refactor DialectMetaDataLoader#load (#28460)
ea0e3cfb041 is described below

commit ea0e3cfb041a6ce0d68221e71fe83318e3ab80a8
Author: zhaojinchao <[email protected]>
AuthorDate: Tue Sep 19 14:30:00 2023 +0800

    Refactor DialectMetaDataLoader#load (#28460)
---
 .../core/metadata/data/loader/DialectMetaDataLoader.java |  7 ++-----
 .../core/metadata/data/loader/MetaDataLoader.java        |  2 +-
 .../h2/metadata/data/loader/H2MetaDataLoader.java        | 10 +++++-----
 .../h2/metadata/data/loader/H2MetaDataLoaderTest.java    |  6 ++++--
 .../mysql/metadata/data/loader/MySQLMetaDataLoader.java  | 12 +++++++-----
 .../metadata/data/loader/MySQLMetaDataLoaderTest.java    |  6 ++++--
 .../metadata/data/loader/OpenGaussMetaDataLoader.java    |  8 ++++----
 .../metadata/data/loader/OracleMetaDataLoader.java       | 14 +++++++-------
 .../metadata/data/loader/OracleMetaDataLoaderTest.java   | 16 +++++++++-------
 .../metadata/data/loader/PostgreSQLMetaDataLoader.java   |  8 ++++----
 .../data/loader/PostgreSQLMetaDataLoaderTest.java        |  6 ++++--
 .../metadata/data/loader/SQLServerMetaDataLoader.java    |  9 +++++----
 .../data/loader/SQLServerMetaDataLoaderTest.java         | 10 ++++++----
 13 files changed, 62 insertions(+), 52 deletions(-)

diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/DialectMetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/DialectMetaDataLoader.java
index e21ce11eeb0..7dcf98736c9 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/DialectMetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/DialectMetaDataLoader.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaM
 import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPI;
 import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
 
-import javax.sql.DataSource;
 import java.sql.SQLException;
 import java.util.Collection;
 
@@ -34,11 +33,9 @@ public interface DialectMetaDataLoader extends 
DatabaseTypedSPI {
     /**
      * Load schema meta data.
      *
-     * @param dataSource data source
-     * @param tables tables
-     * @param defaultSchemaName default schema name
+     * @param material meta data loader material
      * @return schema meta data collection
      * @throws SQLException SQL exception
      */
-    Collection<SchemaMetaData> load(DataSource dataSource, Collection<String> 
tables, String defaultSchemaName) throws SQLException;
+    Collection<SchemaMetaData> load(MetaDataLoaderMaterial material) throws 
SQLException;
 }
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/MetaDataLoader.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/MetaDataLoader.java
index f51cac2a0a3..13765ad4d52 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/MetaDataLoader.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/loader/MetaDataLoader.java
@@ -83,7 +83,7 @@ public final class MetaDataLoader {
         Optional<DialectMetaDataLoader> dialectLoader = 
DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, 
material.getStorageType());
         if (dialectLoader.isPresent()) {
             try {
-                return dialectLoader.get().load(material.getDataSource(), 
material.getActualTableNames(), material.getDefaultSchemaName());
+                return dialectLoader.get().load(material);
             } catch (final SQLException ex) {
                 log.debug("Dialect load schema meta data error.", ex);
             }
diff --git 
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoader.java
 
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoader.java
index 50b3251d42b..656f7bc4f28 100644
--- 
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoader.java
+++ 
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoader.java
@@ -18,13 +18,13 @@
 package org.apache.shardingsphere.infra.database.h2.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeLoader;
 
-import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -65,17 +65,17 @@ public final class H2MetaDataLoader implements 
DialectMetaDataLoader {
     private static final String GENERATED_INFO_SQL_IN_TABLES = 
GENERATED_INFO_SQL + " AND UPPER(C.TABLE_NAME) IN (%s)";
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
         Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
-        try (Connection connection = dataSource.getConnection()) {
-            Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(connection, tables);
+        try (Connection connection = material.getDataSource().getConnection()) 
{
+            Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(connection, material.getActualTableNames());
             Map<String, Collection<IndexMetaData>> indexMetaDataMap = 
columnMetaDataMap.isEmpty() ? Collections.emptyMap() : 
loadIndexMetaData(connection, columnMetaDataMap.keySet());
             for (Entry<String, Collection<ColumnMetaData>> entry : 
columnMetaDataMap.entrySet()) {
                 Collection<IndexMetaData> indexMetaDataList = 
indexMetaDataMap.getOrDefault(entry.getKey(), Collections.emptyList());
                 tableMetaDataList.add(new TableMetaData(entry.getKey(), 
entry.getValue(), indexMetaDataList, Collections.emptyList()));
             }
         }
-        return Collections.singleton(new SchemaMetaData(defaultSchemaName, 
tableMetaDataList));
+        return Collections.singleton(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaDataList));
     }
     
     private Map<String, Collection<ColumnMetaData>> 
loadColumnMetaDataMap(final Connection connection, final Collection<String> 
tables) throws SQLException {
diff --git 
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
 
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
index 38e548485ae..52dfd69d72e 100644
--- 
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
+++ 
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
@@ -18,12 +18,14 @@
 package org.apache.shardingsphere.infra.database.h2.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.h2.type.H2DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -65,7 +67,7 @@ class H2MetaDataLoaderTest {
                 "SELECT C.TABLE_NAME TABLE_NAME, C.COLUMN_NAME COLUMN_NAME, 
COALESCE(I.IS_GENERATED, FALSE) IS_GENERATED FROM INFORMATION_SCHEMA.COLUMNS C 
RIGHT JOIN"
                         + " INFORMATION_SCHEMA.INDEXES I ON 
C.TABLE_NAME=I.TABLE_NAME WHERE C.TABLE_CATALOG=? AND C.TABLE_SCHEMA=?")
                 .executeQuery()).thenReturn(generatedInfo);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.emptyList(), "sharding_db"));
+        assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.emptyList(), dataSource, new 
H2DatabaseType(), "sharding_db")));
     }
     
     @Test
@@ -89,7 +91,7 @@ class H2MetaDataLoaderTest {
                 "SELECT C.TABLE_NAME TABLE_NAME, C.COLUMN_NAME COLUMN_NAME, 
COALESCE(I.IS_GENERATED, FALSE) IS_GENERATED FROM INFORMATION_SCHEMA.COLUMNS C"
                         + " RIGHT JOIN INFORMATION_SCHEMA.INDEXES I ON 
C.TABLE_NAME=I.TABLE_NAME WHERE C.TABLE_CATALOG=? AND C.TABLE_SCHEMA=? AND 
C.TABLE_NAME IN ('tbl')")
                 .executeQuery()).thenReturn(generatedInfo);
-        
assertTableMetaDataMap(getDialectTableMetaDataLoader().load(dataSource, 
Collections.singletonList("tbl"), "sharding_db"));
+        assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), dataSource, new 
H2DatabaseType(), "sharding_db")));
     }
     
     private DataSource mockDataSource() throws SQLException {
diff --git 
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoader.java
 
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoader.java
index 251e2343690..c070f0bf213 100644
--- 
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoader.java
+++ 
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoader.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.infra.database.mysql.metadata.data.loader;
 
 import org.apache.shardingsphere.infra.database.core.GlobalDataSourceRegistry;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
@@ -62,17 +63,18 @@ public final class MySQLMetaDataLoader implements 
DialectMetaDataLoader {
             + "WHERE TABLE_NAME IN (%s) AND REFERENCED_TABLE_SCHEMA IS NOT 
NULL";
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
         Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
-        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(dataSource, tables);
-        Map<String, Collection<IndexMetaData>> indexMetaDataMap = 
columnMetaDataMap.isEmpty() ? Collections.emptyMap() : 
loadIndexMetaData(dataSource, columnMetaDataMap.keySet());
-        Map<String, Collection<ConstraintMetaData>> constraintMetaDataMap = 
columnMetaDataMap.isEmpty() ? Collections.emptyMap() : 
loadConstraintMetaDataMap(dataSource, columnMetaDataMap.keySet());
+        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(material.getDataSource(), material.getActualTableNames());
+        Map<String, Collection<IndexMetaData>> indexMetaDataMap = 
columnMetaDataMap.isEmpty() ? Collections.emptyMap() : 
loadIndexMetaData(material.getDataSource(), columnMetaDataMap.keySet());
+        Map<String, Collection<ConstraintMetaData>> constraintMetaDataMap =
+                columnMetaDataMap.isEmpty() ? Collections.emptyMap() : 
loadConstraintMetaDataMap(material.getDataSource(), columnMetaDataMap.keySet());
         for (Entry<String, Collection<ColumnMetaData>> entry : 
columnMetaDataMap.entrySet()) {
             Collection<IndexMetaData> indexMetaDataList = 
indexMetaDataMap.getOrDefault(entry.getKey(), Collections.emptyList());
             Collection<ConstraintMetaData> constraintMetaDataList = 
constraintMetaDataMap.getOrDefault(entry.getKey(), Collections.emptyList());
             tableMetaDataList.add(new TableMetaData(entry.getKey(), 
entry.getValue(), indexMetaDataList, constraintMetaDataList));
         }
-        return Collections.singletonList(new SchemaMetaData(defaultSchemaName, 
tableMetaDataList));
+        return Collections.singletonList(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaDataList));
     }
     
     private Map<String, Collection<ConstraintMetaData>> 
loadConstraintMetaDataMap(final DataSource dataSource, final Collection<String> 
tables) throws SQLException {
diff --git 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
index ab41b9ce4f5..12ac455db59 100644
--- 
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
+++ 
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
@@ -18,12 +18,14 @@
 package org.apache.shardingsphere.infra.database.mysql.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -55,7 +57,7 @@ class MySQLMetaDataLoaderTest {
         ResultSet indexResultSet = mockIndexMetaDataResultSet();
         when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
INDEX_NAME, NON_UNIQUE, COLUMN_NAME FROM information_schema.statistics "
                 + "WHERE TABLE_SCHEMA=? and TABLE_NAME IN ('tbl') ORDER BY 
NON_UNIQUE, INDEX_NAME, 
SEQ_IN_INDEX").executeQuery()).thenReturn(indexResultSet);
-        assertTableMetaDataMap(dialectMetaDataLoader.load(dataSource, 
Collections.emptyList(), "sharding_db"));
+        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.emptyList(), dataSource, new 
MySQLDatabaseType(), "sharding_db")));
     }
     
     @Test
@@ -69,7 +71,7 @@ class MySQLMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, 
INDEX_NAME, NON_UNIQUE, COLUMN_NAME FROM information_schema.statistics WHERE 
TABLE_SCHEMA=? and TABLE_NAME IN ('tbl') "
                 + "ORDER BY NON_UNIQUE, INDEX_NAME, SEQ_IN_INDEX")
                 .executeQuery()).thenReturn(indexResultSet);
-        assertTableMetaDataMap(dialectMetaDataLoader.load(dataSource, 
Collections.singletonList("tbl"), "sharding_db"));
+        assertTableMetaDataMap(dialectMetaDataLoader.load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), dataSource, new 
MySQLDatabaseType(), "sharding_db")));
     }
     
     private DataSource mockDataSource() throws SQLException {
diff --git 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java
 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java
index 56d586b019e..58159925aac 100644
--- 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java
+++ 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoader.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.infra.database.opengauss.metadata.data.loader;
 import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Multimap;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.type.SchemaMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
@@ -29,7 +30,6 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.database.datatype.
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
-import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -61,11 +61,11 @@ public final class OpenGaussMetaDataLoader implements 
DialectMetaDataLoader {
     private static final String BASIC_INDEX_META_DATA_SQL = "SELECT tablename, 
indexname, schemaname FROM pg_indexes WHERE schemaname IN (%s)";
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
-        try (Connection connection = dataSource.getConnection()) {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
+        try (Connection connection = material.getDataSource().getConnection()) 
{
             Collection<String> schemaNames = 
SchemaMetaDataLoader.loadSchemaNames(connection, 
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
             Map<String, Multimap<String, IndexMetaData>> 
schemaIndexMetaDataMap = loadIndexMetaDataMap(connection, schemaNames);
-            Map<String, Multimap<String, ColumnMetaData>> 
schemaColumnMetaDataMap = loadColumnMetaDataMap(connection, tables, 
schemaNames);
+            Map<String, Multimap<String, ColumnMetaData>> 
schemaColumnMetaDataMap = loadColumnMetaDataMap(connection, 
material.getActualTableNames(), schemaNames);
             Collection<SchemaMetaData> result = new LinkedList<>();
             for (String each : schemaNames) {
                 Multimap<String, IndexMetaData> tableIndexMetaDataMap = 
schemaIndexMetaDataMap.getOrDefault(each, LinkedHashMultimap.create());
diff --git 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
index 7ff5e560c4b..057c9b4e808 100644
--- 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
+++ 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoader.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.infra.database.oracle.metadata.data.loader;
 import com.google.common.collect.Lists;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderConnection;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
@@ -28,7 +29,6 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.database.datatype.
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
-import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
@@ -76,11 +76,11 @@ public final class OracleMetaDataLoader implements 
DialectMetaDataLoader {
     private static final int MAX_EXPRESSION_SIZE = 1000;
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
-        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = new 
HashMap<>(tables.size(), 1F);
-        Map<String, Collection<IndexMetaData>> indexMetaDataMap = new 
HashMap<>(tables.size(), 1F);
-        try (Connection connection = new 
MetaDataLoaderConnection(TypedSPILoader.getService(DatabaseType.class, 
"Oracle"), dataSource.getConnection())) {
-            for (List<String> each : Lists.partition(new ArrayList<>(tables), 
MAX_EXPRESSION_SIZE)) {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
+        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = new 
HashMap<>(material.getActualTableNames().size(), 1F);
+        Map<String, Collection<IndexMetaData>> indexMetaDataMap = new 
HashMap<>(material.getActualTableNames().size(), 1F);
+        try (Connection connection = new 
MetaDataLoaderConnection(TypedSPILoader.getService(DatabaseType.class, 
"Oracle"), material.getDataSource().getConnection())) {
+            for (List<String> each : Lists.partition(new 
ArrayList<>(material.getActualTableNames()), MAX_EXPRESSION_SIZE)) {
                 columnMetaDataMap.putAll(loadColumnMetaDataMap(connection, 
each));
                 indexMetaDataMap.putAll(loadIndexMetaData(connection, each));
             }
@@ -90,7 +90,7 @@ public final class OracleMetaDataLoader implements 
DialectMetaDataLoader {
             tableMetaDataList.add(new TableMetaData(entry.getKey(), 
entry.getValue(), indexMetaDataMap.getOrDefault(entry.getKey(), 
Collections.emptyList()), Collections.emptyList()));
         }
         // TODO Load views from Oracle database.
-        return Collections.singletonList(new SchemaMetaData(defaultSchemaName, 
tableMetaDataList));
+        return Collections.singletonList(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaDataList));
     }
     
     private Map<String, Collection<ColumnMetaData>> 
loadColumnMetaDataMap(final Connection connection, final Collection<String> 
tables) throws SQLException {
diff --git 
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
 
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
index 0b56585ef12..004efe546bf 100644
--- 
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
+++ 
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
@@ -18,12 +18,14 @@
 package org.apache.shardingsphere.infra.database.oracle.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.oracle.type.OracleDatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -86,7 +88,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITHOUT_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -105,7 +107,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITHOUT_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(1);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -124,7 +126,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITHOUT_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(11);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -144,7 +146,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITH_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -164,7 +166,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITH_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(1);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -184,7 +186,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITH_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(11);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -204,7 +206,7 @@ class OracleMetaDataLoaderTest {
         
when(dataSource.getConnection().prepareStatement(ALL_CONSTRAINTS_SQL_WITH_TABLES).executeQuery()).thenReturn(primaryKeys);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(12);
         
when(dataSource.getConnection().getMetaData().getDatabaseMinorVersion()).thenReturn(2);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.singleton("tbl"), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singleton("tbl"), dataSource, new 
OracleDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
diff --git 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java
 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java
index 6c987b3cf08..75af122c54d 100644
--- 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java
+++ 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoader.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.infra.database.postgresql.metadata.data.loader
 import com.google.common.collect.LinkedHashMultimap;
 import com.google.common.collect.Multimap;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.type.SchemaMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
@@ -30,7 +31,6 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.database.datatype.
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
-import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -77,11 +77,11 @@ public final class PostgreSQLMetaDataLoader implements 
DialectMetaDataLoader {
     private static final String LOAD_FILTERED_ROLE_TABLE_GRANTS_SQL = 
LOAD_ALL_ROLE_TABLE_GRANTS_SQL + " WHERE table_name IN (%s)";
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
-        try (Connection connection = dataSource.getConnection()) {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
+        try (Connection connection = material.getDataSource().getConnection()) 
{
             Collection<String> schemaNames = 
SchemaMetaDataLoader.loadSchemaNames(connection, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
             Map<String, Multimap<String, IndexMetaData>> 
schemaIndexMetaDataMap = loadIndexMetaDataMap(connection, schemaNames);
-            Map<String, Multimap<String, ColumnMetaData>> 
schemaColumnMetaDataMap = loadColumnMetaDataMap(connection, tables, 
schemaNames);
+            Map<String, Multimap<String, ColumnMetaData>> 
schemaColumnMetaDataMap = loadColumnMetaDataMap(connection, 
material.getActualTableNames(), schemaNames);
             Map<String, Multimap<String, ConstraintMetaData>> 
schemaConstraintMetaDataMap = loadConstraintMetaDataMap(connection, 
schemaNames);
             Collection<SchemaMetaData> result = new LinkedList<>();
             for (String each : schemaNames) {
diff --git 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
index 3b8d7960f84..61e78b3b7cf 100644
--- 
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
+++ 
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
@@ -18,6 +18,7 @@
 package 
org.apache.shardingsphere.infra.database.postgresql.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
@@ -25,6 +26,7 @@ import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaM
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.database.postgresql.type.PostgreSQLDatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -89,7 +91,7 @@ class PostgreSQLMetaDataLoaderTest {
         
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"));
+        assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.emptyList(), dataSource, new 
PostgreSQLDatabaseType(), "sharding_db")));
     }
     
     private ResultSet mockSchemaMetaDataResultSet() throws SQLException {
@@ -116,7 +118,7 @@ class PostgreSQLMetaDataLoaderTest {
         
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"));
+        assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), dataSource, new 
PostgreSQLDatabaseType(), "sharding_db")));
     }
     
     private ResultSet mockRoleTableGrantsResultSet() throws SQLException {
diff --git 
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoader.java
 
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoader.java
index 46df79e10ae..7e9115ccd52 100644
--- 
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoader.java
+++ 
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoader.java
@@ -18,6 +18,7 @@
 package 
org.apache.shardingsphere.infra.database.sqlserver.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
@@ -64,17 +65,17 @@ public final class SQLServerMetaDataLoader implements 
DialectMetaDataLoader {
     private static final int HIDDEN_COLUMN_START_MAJOR_VERSION = 15;
     
     @Override
-    public Collection<SchemaMetaData> load(final DataSource dataSource, final 
Collection<String> tables, final String defaultSchemaName) throws SQLException {
+    public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
         Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
-        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(dataSource, tables);
+        Map<String, Collection<ColumnMetaData>> columnMetaDataMap = 
loadColumnMetaDataMap(material.getDataSource(), material.getActualTableNames());
         if (!columnMetaDataMap.isEmpty()) {
-            Map<String, Collection<IndexMetaData>> indexMetaDataMap = 
loadIndexMetaData(dataSource, columnMetaDataMap.keySet());
+            Map<String, Collection<IndexMetaData>> indexMetaDataMap = 
loadIndexMetaData(material.getDataSource(), columnMetaDataMap.keySet());
             for (Entry<String, Collection<ColumnMetaData>> entry : 
columnMetaDataMap.entrySet()) {
                 Collection<IndexMetaData> indexMetaDataList = 
indexMetaDataMap.getOrDefault(entry.getKey(), Collections.emptyList());
                 tableMetaDataList.add(new TableMetaData(entry.getKey(), 
entry.getValue(), indexMetaDataList, Collections.emptyList()));
             }
         }
-        return Collections.singleton(new SchemaMetaData(defaultSchemaName, 
tableMetaDataList));
+        return Collections.singleton(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaDataList));
     }
     
     private Map<String, Collection<ColumnMetaData>> 
loadColumnMetaDataMap(final DataSource dataSource, final Collection<String> 
tables) throws SQLException {
diff --git 
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
 
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
index 752d9eb05bd..8fd6d306396 100644
--- 
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
+++ 
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
@@ -18,12 +18,14 @@
 package 
org.apache.shardingsphere.infra.database.sqlserver.metadata.data.loader;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.database.sqlserver.type.SQLServerDatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
@@ -87,7 +89,7 @@ class SQLServerMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement(LOAD_INDEX_META_DATA)
                 .executeQuery()).thenReturn(indexResultSet);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(15);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.emptyList(), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.emptyList(), dataSource, new 
SQLServerDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -105,7 +107,7 @@ class SQLServerMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement(LOAD_INDEX_META_DATA)
                 .executeQuery()).thenReturn(indexResultSet);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(14);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, Collections.emptyList(), 
"sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.emptyList(), dataSource, new 
SQLServerDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -122,7 +124,7 @@ class SQLServerMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement(LOAD_INDEX_META_DATA)
                 .executeQuery()).thenReturn(indexResultSet);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(15);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, 
Collections.singletonList("tbl"), "sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), dataSource, new 
SQLServerDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
@@ -139,7 +141,7 @@ class SQLServerMetaDataLoaderTest {
         when(dataSource.getConnection().prepareStatement(LOAD_INDEX_META_DATA)
                 .executeQuery()).thenReturn(indexResultSet);
         
when(dataSource.getConnection().getMetaData().getDatabaseMajorVersion()).thenReturn(14);
-        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(dataSource, 
Collections.singletonList("tbl"), "sharding_db");
+        Collection<SchemaMetaData> actual = 
getDialectTableMetaDataLoader().load(new 
MetaDataLoaderMaterial(Collections.singletonList("tbl"), dataSource, new 
SQLServerDatabaseType(), "sharding_db"));
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();


Reply via email to