This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 6b2eda71602 Add
DialectDatabaseMetaData.isSupportThreeTierStorageStructure() (#28191)
6b2eda71602 is described below
commit 6b2eda71602f7731cd94706a30c47851b75b0cf1
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Aug 21 00:12:25 2023 +0800
Add DialectDatabaseMetaData.isSupportThreeTierStorageStructure() (#28191)
---
.../metadata/database/schema/util/SchemaMetaDataUtils.java | 8 ++++----
.../core/metadata/database/DialectDatabaseMetaData.java | 11 ++++++++++-
.../mysql/metadata/database/MySQLDatabaseMetaData.java | 5 +++++
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
index 92966fca626..6469ba02e88 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
@@ -54,10 +54,10 @@ public final class SchemaMetaDataUtils {
public static Collection<MetaDataLoaderMaterial>
getMetaDataLoaderMaterials(final Collection<String> tableNames,
final GenericSchemaBuilderMaterial material, final boolean
checkMetaDataEnable) {
Map<String, Collection<String>> dataSourceTableGroups = new
LinkedHashMap<>();
- Collection<DatabaseType> notSupportThreeTierStructureStorageTypes =
getNotSupportThreeTierStructureStorageTypes(material.getStorageTypes().values());
+ Collection<DatabaseType>
unsupportedThreeTierStorageStructureDatabaseTypes =
getUnsupportedThreeTierStorageStructureDatabaseTypes(material.getStorageTypes().values());
DataNodes dataNodes = new DataNodes(material.getRules());
for (String each : tableNames) {
-
checkDataSourceTypeIncludeInstanceAndSetDatabaseTableMap(notSupportThreeTierStructureStorageTypes,
dataNodes, each);
+
checkDataSourceTypeIncludeInstanceAndSetDatabaseTableMap(unsupportedThreeTierStorageStructureDatabaseTypes,
dataNodes, each);
if (checkMetaDataEnable) {
addAllActualTableDataNode(material, dataSourceTableGroups,
dataNodes, each);
} else {
@@ -93,10 +93,10 @@ public final class SchemaMetaDataUtils {
}
}
- private static Collection<DatabaseType>
getNotSupportThreeTierStructureStorageTypes(final Collection<DatabaseType>
storageTypes) {
+ private static Collection<DatabaseType>
getUnsupportedThreeTierStorageStructureDatabaseTypes(final
Collection<DatabaseType> storageTypes) {
Collection<DatabaseType> result = new LinkedList<>();
for (DatabaseType each : storageTypes) {
- if (!"MySQL".equals(each.getType())) {
+ if (!new
DatabaseTypeRegistry(each).getDialectDatabaseMetaData().isSupportThreeTierStorageStructure())
{
result.add(each);
}
}
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/DialectDatabaseMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/DialectDatabaseMetaData.java
index 6827475c1be..f9a7457c93c 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/DialectDatabaseMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/DialectDatabaseMetaData.java
@@ -115,9 +115,18 @@ public interface DialectDatabaseMetaData extends
DatabaseTypedSPI {
/**
* Is instance connection available.
*
- * @return true or false
+ * @return available or not
*/
default boolean isInstanceConnectionAvailable() {
return false;
}
+
+ /**
+ * Is support three tier storage structure.
+ *
+ * @return support or not
+ */
+ default boolean isSupportThreeTierStorageStructure() {
+ return false;
+ }
}
diff --git
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/database/MySQLDatabaseMetaData.java
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/database/MySQLDatabaseMetaData.java
index d6ccb6ab02e..078436c0287 100644
---
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/database/MySQLDatabaseMetaData.java
+++
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/metadata/database/MySQLDatabaseMetaData.java
@@ -87,6 +87,11 @@ public final class MySQLDatabaseMetaData implements
DialectDatabaseMetaData {
return true;
}
+ @Override
+ public boolean isSupportThreeTierStorageStructure() {
+ return true;
+ }
+
@Override
public String getDatabaseType() {
return "MySQL";