This is an automated email from the ASF dual-hosted git repository.
panjuan 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 a8135a5 Refactor schema loader (#8104)
a8135a5 is described below
commit a8135a505d2351d12f11f371961fc8c42293c621
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Nov 9 22:36:57 2020 +0800
Refactor schema loader (#8104)
* Rename SchemaLoader
* Rename SchemaLoader
* Refactor ShardingSphereMetaDataLoader
* Refactor TableAddressingMapperDataLoader
* Refactor PhysicalSchemaMetaDataLoader
* Refactor test cases
* Refactor PhysicalTableMetaDataLoaderTest
* Refactor PhysicalIndexMetaDataLoaderTest
* Refactor PhysicalColumnMetaDataLoaderTest
* Rename MetaDataLoaderConnectionAdapter
* Rename MetaDataLoaderConnectionAdapter's package
* Rename packages of adapter and dialect
---
...SchemaMetaDataLoader.java => SchemaLoader.java} | 8 ++--
.../TableAddressingMapperDataLoader.java | 13 +++--
.../physical/PhysicalColumnMetaDataLoader.java | 4 +-
.../physical/PhysicalSchemaMetaDataLoader.java | 15 +++---
.../physical/PhysicalTableMetaDataLoader.java | 6 +--
.../MetaDataLoaderConnectionAdapter.java} | 10 ++--
.../DatabaseMetaDataDialectHandler.java | 3 +-
.../DatabaseMetaDataDialectHandlerFactory.java | 2 +-
.../impl}/H2DatabaseMetaDataDialectHandler.java | 4 +-
.../MariaDBDatabaseMetaDataDialectHandler.java | 4 +-
.../impl}/MySQLDatabaseMetaDataDialectHandler.java | 4 +-
.../OracleDatabaseMetaDataDialectHandler.java | 7 +--
.../PostgreSQLDatabaseMetaDataDialectHandler.java | 4 +-
.../impl}/SQL92DatabaseMetaDataDialectHandler.java | 4 +-
.../SQLServerDatabaseMetaDataDialectHandler.java | 4 +-
.../loader/spi/ShardingSphereMetaDataLoader.java | 3 +-
...hysical.dialect.DatabaseMetaDataDialectHandler} | 14 +++---
...taDataLoaderTest.java => SchemaLoaderTest.java} | 4 +-
....java => PhysicalColumnMetaDataLoaderTest.java} | 35 ++++----------
...t.java => PhysicalIndexMetaDataLoaderTest.java} | 46 ++++++++----------
....java => PhysicalSchemaMetaDataLoaderTest.java} | 46 +++++++-----------
...t.java => PhysicalTableMetaDataLoaderTest.java} | 55 ++++++++--------------
.../MetaDataLoaderConnectionAdapterTest.java} | 16 +++----
...AbstractDatabaseMetaDataDialectHandlerTest.java | 2 +-
.../DatabaseMetaDataDialectHandlerFactoryTest.java | 2 +-
.../DatabaseMetaDataDialectHandlerTest.java | 2 +-
.../H2DatabaseMetaDataDialectHandlerTest.java | 4 +-
.../MariaDBDatabaseMetaDataDialectHandlerTest.java | 4 +-
.../MySQLDatabaseMetaDataDialectHandlerTest.java | 4 +-
.../OracleDatabaseMetaDataDialectHandlerTest.java | 4 +-
...stgreSQLDatabaseMetaDataDialectHandlerTest.java | 4 +-
.../SQL92DatabaseMetaDataDialectHandlerTest.java | 4 +-
...QLServerDatabaseMetaDataDialectHandlerTest.java | 4 +-
.../model/{physical => }/TableMetaDataTest.java | 4 +-
.../context/metadata/MetaDataContextsBuilder.java | 4 +-
35 files changed, 148 insertions(+), 205 deletions(-)
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
similarity index 96%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
index 8db4239..756d746 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoader.java
@@ -34,19 +34,19 @@ import java.util.Map;
import java.util.Map.Entry;
/**
- * Schema meta data loader.
+ * Schema loader.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class SchemaMetaDataLoader {
+public final class SchemaLoader {
/**
- * Load schema meta data.
+ * Load schema.
*
* @param databaseType database type
* @param dataSourceMap data source map
* @param rules ShardingSphere rules
* @param props configuration properties
- * @return schema meta data
+ * @return ShardingSphere schema
* @throws SQLException SQL exception
*/
public static ShardingSphereSchema load(final DatabaseType databaseType,
final Map<String, DataSource> dataSourceMap,
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
index 9889281..1fdaa6b 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/addressing/TableAddressingMapperDataLoader.java
@@ -29,7 +29,6 @@ import
org.apache.shardingsphere.infra.spi.ordered.OrderedSPIRegistry;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -56,24 +55,24 @@ public final class TableAddressingMapperDataLoader {
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public static Map<String, Collection<String>> load(final DatabaseType
databaseType, final Map<String, DataSource> dataSourceMap, final
Collection<ShardingSphereRule> rules) throws SQLException {
- Map<String, Collection<String>> result =
initializeTableAddressingMapper(databaseType, dataSourceMap);
+ Map<String, Collection<String>> result = initialize(databaseType,
dataSourceMap);
for (Entry<ShardingSphereRule, TableAddressingMapperDecorator> entry :
OrderedSPIRegistry.getRegisteredServices(rules,
TableAddressingMapperDecorator.class).entrySet()) {
entry.getValue().decorate(entry.getKey(), result);
}
return result;
}
- private static Map<String, Collection<String>>
initializeTableAddressingMapper(final DatabaseType databaseType, final
Map<String, DataSource> dataSourceMap) throws SQLException {
+ private static Map<String, Collection<String>> initialize(final
DatabaseType databaseType, final Map<String, DataSource> dataSourceMap) throws
SQLException {
Map<String, Collection<String>> result = new HashMap<>();
for (Entry<String, DataSource> entry : dataSourceMap.entrySet()) {
- appendMetaData(result, databaseType, entry.getKey(),
entry.getValue());
+ append(result, databaseType, entry.getKey(), entry.getValue());
}
return result;
}
- private static void appendMetaData(final Map<String, Collection<String>>
tableAddressingMapper,
- final DatabaseType databaseType, final
String dataSourceName, final DataSource dataSource) throws SQLException {
- for (String each :
PhysicalSchemaMetaDataLoader.loadTableNames(dataSource, databaseType,
Collections.emptyList())) {
+ private static void append(final Map<String, Collection<String>>
tableAddressingMapper,
+ final DatabaseType databaseType, final String
dataSourceName, final DataSource dataSource) throws SQLException {
+ for (String each :
PhysicalSchemaMetaDataLoader.loadAllTableNames(dataSource, databaseType)) {
if (!tableAddressingMapper.containsKey(each)) {
tableAddressingMapper.put(each, new LinkedHashSet<>());
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
index 9c79fd6..2476599 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoader.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandlerFactory;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
index 9beeef2..d2e4e42 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoader.java
@@ -21,7 +21,7 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.MetaDataConnectionAdapter;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter.MetaDataLoaderConnectionAdapter;
import javax.sql.DataSource;
import java.sql.Connection;
@@ -34,7 +34,6 @@ import java.util.List;
/**
* Physical schema meta data loader.
- * Note: this is only load table name, skip index and column info
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@Slf4j(topic = "ShardingSphere-metadata")
@@ -51,15 +50,13 @@ public final class PhysicalSchemaMetaDataLoader {
*
* @param dataSource data source
* @param databaseType database type
- * @param excludedTableNames excluded table names
- * @return all table names
+ * @return loaded all table names
* @throws SQLException SQL exception
*/
- public static Collection<String> loadTableNames(final DataSource
dataSource, final DatabaseType databaseType, final Collection<String>
excludedTableNames) throws SQLException {
- List<String> result;
- try (MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, dataSource.getConnection())) {
+ public static Collection<String> loadAllTableNames(final DataSource
dataSource, final DatabaseType databaseType) throws SQLException {
+ Collection<String> result;
+ try (MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, dataSource.getConnection())) {
result = loadAllTableNames(connectionAdapter);
- result.removeAll(excludedTableNames);
}
log.info("Loading {} tables' meta data for unconfigured tables.",
result.size());
if (result.isEmpty()) {
@@ -68,7 +65,7 @@ public final class PhysicalSchemaMetaDataLoader {
return result;
}
- private static List<String> loadAllTableNames(final Connection connection)
throws SQLException {
+ private static Collection<String> loadAllTableNames(final Connection
connection) throws SQLException {
List<String> result = new LinkedList<>();
try (ResultSet resultSet =
connection.getMetaData().getTables(connection.getCatalog(),
connection.getSchema(), null, new String[]{TABLE_TYPE, VIEW_TYPE})) {
while (resultSet.next()) {
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
index 71fae97..9c82292 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoader.java
@@ -20,8 +20,8 @@ package
org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.MetaDataConnectionAdapter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandlerFactory;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter.MetaDataLoaderConnectionAdapter;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
import javax.sql.DataSource;
@@ -46,7 +46,7 @@ public final class PhysicalTableMetaDataLoader {
* @throws SQLException SQL exception
*/
public static Optional<TableMetaData> load(final DataSource dataSource,
final String tableNamePattern, final DatabaseType databaseType) throws
SQLException {
- try (MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, dataSource.getConnection())) {
+ try (MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, dataSource.getConnection())) {
String formattedTableNamePattern =
formatTableNamePattern(tableNamePattern, databaseType);
return isTableExist(connectionAdapter, formattedTableNamePattern)
? Optional.of(new
TableMetaData(PhysicalColumnMetaDataLoader.load(
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapter.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
similarity index 97%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapter.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
index 4bfeca2..fe2e256 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapter.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapter.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandlerFactory;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandlerFactory;
import java.sql.Array;
import java.sql.Blob;
@@ -42,15 +42,16 @@ import java.util.Properties;
import java.util.concurrent.Executor;
/**
- * Meta data connection adapter.
+ * Meta data loader connection adapter.
*/
@RequiredArgsConstructor
-public final class MetaDataConnectionAdapter implements Connection {
+public final class MetaDataLoaderConnectionAdapter implements Connection {
private final DatabaseType databaseType;
private final Connection connection;
+ @SuppressWarnings("ReturnOfNull")
@Override
public String getCatalog() {
try {
@@ -70,6 +71,7 @@ public final class MetaDataConnectionAdapter implements
Connection {
return
DatabaseMetaDataDialectHandlerFactory.findHandler(databaseType).map(handler ->
handler.getSchema(connection)).orElse(getSchema(connection));
}
+ @SuppressWarnings("ReturnOfNull")
private String getSchema(final Connection connection) {
try {
return connection.getSchema();
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
similarity index 97%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
index c32189c..bf68422 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
import org.apache.shardingsphere.infra.spi.typed.TypedSPI;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
@@ -34,6 +34,7 @@ public interface DatabaseMetaDataDialectHandler extends
TypedSPI {
* @param connection connection
* @return schema
*/
+ @SuppressWarnings("ReturnOfNull")
default String getSchema(final Connection connection) {
try {
return connection.getSchema();
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactory.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
similarity index 98%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactory.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
index 9c191e3..9a9cb91 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactory.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
index ad5c1c5..f74057d 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
index aee393c..90915f2 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
index 9cd308b..9020b53 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
index 559cea7..cc13687 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.sql.Connection;
@@ -35,7 +35,8 @@ import java.util.Properties;
public final class OracleDatabaseMetaDataDialectHandler implements
DatabaseMetaDataDialectHandler {
private Properties props;
-
+
+ @SuppressWarnings("ReturnOfNull")
@Override
public String getSchema(final Connection connection) {
try {
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
index d72b2f2..efd8d78 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
index 1e19593..73518cd 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandler.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
similarity index 94%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandler.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
index 00dcdfd..90bd517 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandler.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandler.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import java.util.Properties;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
index 2306ceb..898bdcd 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/loader/spi/ShardingSphereMetaDataLoader.java
@@ -48,8 +48,7 @@ public interface ShardingSphereMetaDataLoader<T extends
TableContainedRule> exte
* @return meta data
* @throws SQLException SQL exception
*/
- Optional<TableMetaData> load(String tableName,
- DatabaseType databaseType, Map<String,
DataSource> dataSourceMap, DataNodes dataNodes, T rule, ConfigurationProperties
props) throws SQLException;
+ Optional<TableMetaData> load(String tableName, DatabaseType databaseType,
Map<String, DataSource> dataSourceMap, DataNodes dataNodes, T rule,
ConfigurationProperties props) throws SQLException;
/**
* Decorate table meta data.
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler
b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
similarity index 75%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler
rename to
shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
index 01a9b09..c46c114 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.DatabaseMetaDataDialectHandler
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.DatabaseMetaDataDialectHandler
@@ -15,10 +15,10 @@
# limitations under the License.
#
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.H2DatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.MariaDBDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.MySQLDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.OracleDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.PostgreSQLDatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.SQL92DatabaseMetaDataDialectHandler
-org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect.SQLServerDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.H2DatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.MariaDBDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.MySQLDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.OracleDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.PostgreSQLDatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.SQL92DatabaseMetaDataDialectHandler
+org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl.SQLServerDatabaseMetaDataDialectHandler
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
index ece1e94..653bc23 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaMetaDataLoaderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/SchemaLoaderTest.java
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@RunWith(MockitoJUnitRunner.class)
-public final class SchemaMetaDataLoaderTest {
+public final class SchemaLoaderTest {
@Mock
private DatabaseType databaseType;
@@ -51,7 +51,7 @@ public final class SchemaMetaDataLoaderTest {
@Test
public void assertLoadFullDatabases() throws SQLException {
- ShardingSphereSchema actual = SchemaMetaDataLoader.load(
+ ShardingSphereSchema actual = SchemaLoader.load(
databaseType, Collections.singletonMap("logic_db",
dataSource), Arrays.asList(new CommonFixtureRule(), new
DataNodeContainedFixtureRule()), props);
assertSchema(actual);
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/ColumnMetaDataLoaderTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
similarity index 77%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/ColumnMetaDataLoaderTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
index 1f2bcf6..f27fa65 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/ColumnMetaDataLoaderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalColumnMetaDataLoaderTest.java
@@ -18,20 +18,18 @@
package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.sql.Connection;
-import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
-import java.sql.Statement;
import java.sql.Types;
import java.util.Collection;
import java.util.Iterator;
@@ -39,33 +37,22 @@ import java.util.Iterator;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class ColumnMetaDataLoaderTest {
+public final class PhysicalColumnMetaDataLoaderTest {
- private static final String TEST_CATALOG = "catalog";
-
- private static final String TEST_TABLE = "table";
-
- private final DatabaseType databaseType =
DatabaseTypeRegistry.getActualDatabaseType("MySQL");
-
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Connection connection;
@Mock
- private DatabaseMetaData databaseMetaData;
-
- @Mock
private ResultSet primaryResultSet;
@Mock
private ResultSet columnResultSet;
@Mock
- private Statement statement;
-
- @Mock
private ResultSet caseSensitivesResultSet;
@Mock
@@ -73,19 +60,17 @@ public final class ColumnMetaDataLoaderTest {
@Before
public void setUp() throws SQLException {
- when(connection.getCatalog()).thenReturn(TEST_CATALOG);
- when(connection.getMetaData()).thenReturn(databaseMetaData);
- when(databaseMetaData.getPrimaryKeys(TEST_CATALOG, null,
TEST_TABLE)).thenReturn(primaryResultSet);
+ when(connection.getCatalog()).thenReturn("catalog");
+ when(connection.getMetaData().getPrimaryKeys("catalog", null,
"tbl")).thenReturn(primaryResultSet);
when(primaryResultSet.next()).thenReturn(true, false);
when(primaryResultSet.getString("COLUMN_NAME")).thenReturn("pk_col");
- when(databaseMetaData.getColumns(TEST_CATALOG, null, TEST_TABLE,
"%")).thenReturn(columnResultSet);
+ when(connection.getMetaData().getColumns("catalog", null, "tbl",
"%")).thenReturn(columnResultSet);
when(columnResultSet.next()).thenReturn(true, true, false);
- when(columnResultSet.getString("TABLE_NAME")).thenReturn(TEST_TABLE);
+ when(columnResultSet.getString("TABLE_NAME")).thenReturn("tbl");
when(columnResultSet.getString("COLUMN_NAME")).thenReturn("pk_col",
"col");
when(columnResultSet.getInt("DATA_TYPE")).thenReturn(Types.INTEGER,
Types.VARCHAR);
when(columnResultSet.getString("TYPE_NAME")).thenReturn("INT",
"VARCHAR");
- when(connection.createStatement()).thenReturn(statement);
-
when(statement.executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
+
when(connection.createStatement().executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
when(caseSensitivesResultSet.findColumn("pk_col")).thenReturn(1);
when(caseSensitivesResultSet.findColumn("col")).thenReturn(2);
when(caseSensitivesResultSet.getMetaData()).thenReturn(resultSetMetaData);
@@ -94,7 +79,7 @@ public final class ColumnMetaDataLoaderTest {
@Test
public void assertLoad() throws SQLException {
- Collection<ColumnMetaData> actual =
PhysicalColumnMetaDataLoader.load(connection, TEST_TABLE, databaseType);
+ Collection<ColumnMetaData> actual =
PhysicalColumnMetaDataLoader.load(connection, "tbl", mock(DatabaseType.class));
assertThat(actual.size(), is(2));
Iterator<ColumnMetaData> columnMetaDataIterator = actual.iterator();
assertColumnMetaData(columnMetaDataIterator.next(), "pk_col",
Types.INTEGER, "INT", true, true);
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/IndexMetaDataLoaderTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
similarity index 64%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/IndexMetaDataLoaderTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
index 8b0a81c..bd150c4 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/IndexMetaDataLoaderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalIndexMetaDataLoaderTest.java
@@ -18,52 +18,44 @@
package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.sql.Connection;
-import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class IndexMetaDataLoaderTest {
-
- private static final String TEST_CATALOG = "catalog";
-
- private static final String TEST_TABLE = "table";
-
- @Mock
- private Connection connection;
-
- @Mock
- private DatabaseMetaData databaseMetaData;
-
- @Mock
- private ResultSet indexResultSet;
-
- @Before
- public void setUp() throws SQLException {
- when(connection.getCatalog()).thenReturn(TEST_CATALOG);
- when(connection.getMetaData()).thenReturn(databaseMetaData);
- }
+public final class PhysicalIndexMetaDataLoaderTest {
@Test
public void assertLoad() throws SQLException {
- when(databaseMetaData.getIndexInfo(TEST_CATALOG, null, TEST_TABLE,
false, false)).thenReturn(indexResultSet);
- when(indexResultSet.next()).thenReturn(true, true, false);
- when(indexResultSet.getString("INDEX_NAME")).thenReturn("my_index");
- Collection<IndexMetaData> actual =
PhysicalIndexMetaDataLoader.load(connection, TEST_TABLE);
+ Collection<IndexMetaData> actual =
PhysicalIndexMetaDataLoader.load(mockConnection(), "tbl");
assertThat(actual.size(), is(1));
IndexMetaData indexMetaData = actual.iterator().next();
assertThat(indexMetaData.getName(), is("my_index"));
}
+
+ private Connection mockConnection() throws SQLException {
+ Connection result = mock(Connection.class, RETURNS_DEEP_STUBS);
+ ResultSet resultSet = mockResultSet();
+ when(result.getMetaData().getIndexInfo("catalog", null, "tbl", false,
false)).thenReturn(resultSet);
+ when(result.getCatalog()).thenReturn("catalog");
+ return result;
+ }
+
+ private ResultSet mockResultSet() throws SQLException {
+ ResultSet result = mock(ResultSet.class);
+ when(result.next()).thenReturn(true, true, false);
+ when(result.getString("INDEX_NAME")).thenReturn("my_index");
+ return result;
+ }
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/SchemaMetaDataLoaderTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
similarity index 54%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/SchemaMetaDataLoaderTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
index f60c777..8674df5 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/SchemaMetaDataLoaderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalSchemaMetaDataLoaderTest.java
@@ -18,59 +18,45 @@
package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.util.Collection;
import java.util.Collections;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class SchemaMetaDataLoaderTest {
+public final class PhysicalSchemaMetaDataLoaderTest {
- private static final String TEST_CATALOG = "catalog";
-
- private static final String TABLE_TYPE = "TABLE";
-
- private static final String VIEW_TYPE = "VIEW";
-
- private final DatabaseType databaseType =
DatabaseTypeRegistry.getTrunkDatabaseType("Oracle");
-
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private DataSource dataSource;
- @Mock
- private Connection connection;
-
- @Mock
- private DatabaseMetaData databaseMetaData;
-
- @Mock
- private ResultSet tableExistResultSet;
-
@Before
public void setUp() throws SQLException {
- when(dataSource.getConnection()).thenReturn(connection);
- when(connection.getCatalog()).thenReturn(TEST_CATALOG);
- when(connection.getMetaData()).thenReturn(databaseMetaData);
- when(databaseMetaData.getTables(TEST_CATALOG, null, null, new
String[]{TABLE_TYPE, VIEW_TYPE})).thenReturn(tableExistResultSet);
+ ResultSet resultSet = mockResultSet();
+ when(dataSource.getConnection().getMetaData().getTables("catalog",
null, null, new String[]{"TABLE", "VIEW"})).thenReturn(resultSet);
+ when(dataSource.getConnection().getCatalog()).thenReturn("catalog");
+ }
+
+ private ResultSet mockResultSet() throws SQLException {
+ ResultSet result = mock(ResultSet.class);
+ when(result.next()).thenReturn(true, true, true, false);
+ when(result.getString("TABLE_NAME")).thenReturn("tbl", "$tbl", "/tbl");
+ return result;
}
@Test
- public void assertLoadUnconfiguredTableNamesForOracle() throws
SQLException {
- Collection<String> tableNames =
PhysicalSchemaMetaDataLoader.loadTableNames(dataSource, databaseType,
Collections.emptyList());
- assertThat(tableNames.size(), is(0));
+ public void assertLoadAllTableNames() throws SQLException {
+ assertThat(PhysicalSchemaMetaDataLoader.loadAllTableNames(dataSource,
mock(DatabaseType.class)), is(Collections.singletonList("tbl")));
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/TableMetaDataLoaderTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
similarity index 73%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/TableMetaDataLoaderTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
index 76823a5..b26314c 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/TableMetaDataLoaderTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/PhysicalTableMetaDataLoaderTest.java
@@ -18,23 +18,20 @@
package org.apache.shardingsphere.infra.metadata.schema.loader.physical;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
-import java.sql.Statement;
import java.sql.Types;
import java.util.Map;
import java.util.Optional;
@@ -44,27 +41,20 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class TableMetaDataLoaderTest {
+public final class PhysicalTableMetaDataLoaderTest {
private static final String TEST_CATALOG = "catalog";
private static final String TEST_TABLE = "table";
- private final DatabaseType databaseType =
DatabaseTypeRegistry.getActualDatabaseType("MySQL");
-
- @Mock
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private DataSource dataSource;
@Mock
- private Connection connection;
-
- @Mock
- private DatabaseMetaData databaseMetaData;
-
- @Mock
private ResultSet primaryResultSet;
@Mock
@@ -77,9 +67,6 @@ public final class TableMetaDataLoaderTest {
private ResultSet columnResultSet;
@Mock
- private Statement statement;
-
- @Mock
private ResultSet caseSensitivesResultSet;
@Mock
@@ -90,34 +77,31 @@ public final class TableMetaDataLoaderTest {
@Before
public void setUp() throws SQLException {
- when(dataSource.getConnection()).thenReturn(connection);
- when(connection.getCatalog()).thenReturn(TEST_CATALOG);
- when(connection.getMetaData()).thenReturn(databaseMetaData);
- when(databaseMetaData.getTables(TEST_CATALOG, null, TEST_TABLE,
null)).thenReturn(tableExistResultSet);
+ when(dataSource.getConnection().getCatalog()).thenReturn(TEST_CATALOG);
+ when(dataSource.getConnection().getMetaData().getTables(TEST_CATALOG,
null, TEST_TABLE, null)).thenReturn(tableExistResultSet);
when(tableExistResultSet.next()).thenReturn(true);
- when(databaseMetaData.getColumns(TEST_CATALOG, null, TEST_TABLE,
"%")).thenReturn(columnResultSet);
+ when(dataSource.getConnection().getMetaData().getColumns(TEST_CATALOG,
null, TEST_TABLE, "%")).thenReturn(columnResultSet);
when(columnResultSet.next()).thenReturn(true, true, false);
when(columnResultSet.getString("TABLE_NAME")).thenReturn(TEST_TABLE);
when(columnResultSet.getString("COLUMN_NAME")).thenReturn("pk_col",
"col");
when(columnResultSet.getInt("DATA_TYPE")).thenReturn(Types.INTEGER,
Types.VARCHAR);
when(columnResultSet.getString("TYPE_NAME")).thenReturn("INT",
"VARCHAR");
- when(databaseMetaData.getPrimaryKeys(TEST_CATALOG, null,
TEST_TABLE)).thenReturn(primaryResultSet);
+
when(dataSource.getConnection().getMetaData().getPrimaryKeys(TEST_CATALOG,
null, TEST_TABLE)).thenReturn(primaryResultSet);
when(primaryResultSet.next()).thenReturn(true, false);
when(primaryResultSet.getString("COLUMN_NAME")).thenReturn("pk_col");
- when(connection.createStatement()).thenReturn(statement);
-
when(statement.executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
+
when(dataSource.getConnection().createStatement().executeQuery(anyString())).thenReturn(caseSensitivesResultSet);
when(caseSensitivesResultSet.findColumn("pk_col")).thenReturn(1);
when(caseSensitivesResultSet.findColumn("col")).thenReturn(2);
when(caseSensitivesResultSet.getMetaData()).thenReturn(resultSetMetaData);
when(resultSetMetaData.isCaseSensitive(1)).thenReturn(true);
- when(databaseMetaData.getIndexInfo(TEST_CATALOG, null, TEST_TABLE,
false, false)).thenReturn(indexResultSet);
+
when(dataSource.getConnection().getMetaData().getIndexInfo(TEST_CATALOG, null,
TEST_TABLE, false, false)).thenReturn(indexResultSet);
when(indexResultSet.next()).thenReturn(true, false);
when(indexResultSet.getString("INDEX_NAME")).thenReturn("my_index");
}
@Test
- public void assertLoad() throws SQLException {
- Optional<TableMetaData> actual =
PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE, databaseType);
+ public void assertLoadWithExistedTable() throws SQLException {
+ Optional<TableMetaData> actual =
PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE,
mock(DatabaseType.class));
assertTrue(actual.isPresent());
Map<String, ColumnMetaData> columnMetaDataMap =
actual.get().getColumns();
assertThat(columnMetaDataMap.size(), is(2));
@@ -128,14 +112,6 @@ public final class TableMetaDataLoaderTest {
assertTrue(indexMetaDataMap.containsKey("my_index"));
}
- @Test
- public void assertTableNotExist() throws SQLException {
- when(databaseMetaData.getTables(TEST_CATALOG, null, TEST_TABLE,
null)).thenReturn(tableNotExistResultSet);
- when(tableNotExistResultSet.next()).thenReturn(false);
- Optional<TableMetaData> actual =
PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE, databaseType);
- assertFalse(actual.isPresent());
- }
-
private void assertColumnMetaData(final ColumnMetaData actual, final
String name, final int dataType, final String typeName, final boolean
primaryKey, final boolean caseSensitive) {
assertThat(actual.getName(), is(name));
assertThat(actual.getDataType(), is(dataType));
@@ -143,4 +119,11 @@ public final class TableMetaDataLoaderTest {
assertThat(actual.isPrimaryKey(), is(primaryKey));
assertThat(actual.isCaseSensitive(), is(caseSensitive));
}
+
+ @Test
+ public void assertLoadWithNotExistedTable() throws SQLException {
+ when(dataSource.getConnection().getMetaData().getTables(TEST_CATALOG,
null, TEST_TABLE, null)).thenReturn(tableNotExistResultSet);
+ when(tableNotExistResultSet.next()).thenReturn(false);
+ assertFalse(PhysicalTableMetaDataLoader.load(dataSource, TEST_TABLE,
mock(DatabaseType.class)).isPresent());
+ }
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapterTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
similarity index 80%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapterTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
index 05ffb19..dad7975 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/MetaDataConnectionAdapterTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/adapter/MetaDataLoaderConnectionAdapterTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.adapter;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
@@ -35,7 +35,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class MetaDataConnectionAdapterTest {
+public final class MetaDataLoaderConnectionAdapterTest {
private static final String TEST_CATALOG = "catalog";
@@ -51,21 +51,21 @@ public final class MetaDataConnectionAdapterTest {
@Test
public void assertGetCatalog() throws SQLException {
when(connection.getCatalog()).thenReturn(TEST_CATALOG);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, connection);
assertThat(connectionAdapter.getCatalog(), is(TEST_CATALOG));
}
@Test
public void assertGetCatalogReturnNullWhenThrowsSQLException() throws
SQLException {
when(connection.getCatalog()).thenThrow(SQLException.class);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, connection);
assertNull(connectionAdapter.getCatalog());
}
@Test
public void assertGetSchema() throws SQLException {
when(connection.getSchema()).thenReturn(TEST_SCHEMA);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, connection);
assertThat(connectionAdapter.getSchema(), is(TEST_SCHEMA));
}
@@ -74,21 +74,21 @@ public final class MetaDataConnectionAdapterTest {
DatabaseMetaData databaseMetaData = mock(DatabaseMetaData.class);
when(connection.getMetaData()).thenReturn(databaseMetaData);
when(databaseMetaData.getUserName()).thenReturn(TEST_SCHEMA);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(oracleDatabaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(oracleDatabaseType, connection);
assertThat(connectionAdapter.getSchema(),
is(TEST_SCHEMA.toUpperCase()));
}
@Test
public void assertGetSchemaByMySQLSPI() throws SQLException {
when(connection.getSchema()).thenReturn(TEST_SCHEMA);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, connection);
assertThat(connectionAdapter.getSchema(), is(TEST_SCHEMA));
}
@Test
public void assertGetSchemaReturnNullWhenThrowsSQLException() throws
SQLException {
when(connection.getSchema()).thenThrow(SQLException.class);
- MetaDataConnectionAdapter connectionAdapter = new
MetaDataConnectionAdapter(databaseType, connection);
+ MetaDataLoaderConnectionAdapter connectionAdapter = new
MetaDataLoaderConnectionAdapter(databaseType, connection);
assertNull(connectionAdapter.getSchema());
}
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/AbstractDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
similarity index 99%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/AbstractDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
index 8371c2f..6afb89d 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/AbstractDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/AbstractDatabaseMetaDataDialectHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
import lombok.Getter;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactoryTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
similarity index 98%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactoryTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
index bb715dd..056dc2c 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerFactoryTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerFactoryTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
similarity index 99%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
index d9b7834..94c90a0 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/DatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/DatabaseMetaDataDialectHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
index 5d48fcc..9ee7d7a 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/H2DatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/H2DatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
index 4272c0a..be5225a 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MariaDBDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MariaDBDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import
org.apache.shardingsphere.infra.database.type.dialect.MariaDBDatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
index 9fed097..3d3a9f6 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/MySQLDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/MySQLDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
similarity index 96%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
index c7f9ec8..a0ddbb3 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/OracleDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/OracleDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import
org.apache.shardingsphere.infra.database.type.dialect.OracleDatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
index 69f896a..0a9c94e 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/PostgreSQLDatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
similarity index 95%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
index ddeee11..b16212b 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQL92DatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQL92DatabaseMetaDataDialectHandlerTest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import org.apache.shardingsphere.infra.database.type.dialect.SQL92DatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandlerTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
similarity index 96%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandlerTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
index 27f1ab0..eb9d89f 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/jdbc/handler/dialect/SQLServerDatabaseMetaDataDialectHandlerTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/loader/physical/dialect/impl/SQLServerDatabaseMetaDataDialectHandlerTest.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.dialect;
+package
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.impl;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import
org.apache.shardingsphere.infra.database.type.dialect.SQLServerDatabaseType;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.jdbc.handler.AbstractDatabaseMetaDataDialectHandlerTest;
+import
org.apache.shardingsphere.infra.metadata.schema.loader.physical.dialect.AbstractDatabaseMetaDataDialectHandlerTest;
import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
import org.junit.Before;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/TableMetaDataTest.java
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/TableMetaDataTest.java
similarity index 91%
rename from
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/TableMetaDataTest.java
rename to
shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/TableMetaDataTest.java
index 4f397a7..dd73de7 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/physical/TableMetaDataTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/model/TableMetaDataTest.java
@@ -15,10 +15,8 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.metadata.schema.model.physical;
+package org.apache.shardingsphere.infra.metadata.schema.model;
-import org.apache.shardingsphere.infra.metadata.schema.model.ColumnMetaData;
-import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
import org.junit.Before;
import org.junit.Test;
diff --git
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
index 2be0b3f..f844d4b 100644
---
a/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
+++
b/shardingsphere-infra/shardingsphere-infra-context/src/main/java/org/apache/shardingsphere/infra/context/metadata/MetaDataContextsBuilder.java
@@ -31,7 +31,7 @@ import
org.apache.shardingsphere.infra.metadata.resource.CachedDatabaseMetaData;
import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData;
import
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
import
org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
-import
org.apache.shardingsphere.infra.metadata.schema.loader.SchemaMetaDataLoader;
+import org.apache.shardingsphere.infra.metadata.schema.loader.SchemaLoader;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.builder.ShardingSphereRulesBuilder;
@@ -131,7 +131,7 @@ public final class MetaDataContextsBuilder {
private ShardingSphereSchema buildSchema(final String schemaName, final
Map<String, DataSource> dataSourceMap, final Collection<ShardingSphereRule>
rules) throws SQLException {
long start = System.currentTimeMillis();
- ShardingSphereSchema result = SchemaMetaDataLoader.load(databaseType,
dataSourceMap, rules, props);
+ ShardingSphereSchema result = SchemaLoader.load(databaseType,
dataSourceMap, rules, props);
log.info("Load meta data for schema {} finished, cost {}
milliseconds.", schemaName, System.currentTimeMillis() - start);
return result;
}