You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2024/08/24 06:59:35 UTC
(shardingsphere) branch master updated: Refactor DatabaseTypeUtils (#32651)
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 e6a8f2f3bfd Refactor DatabaseTypeUtils (#32651)
e6a8f2f3bfd is described below
commit e6a8f2f3bfdde8e66e9bbeeced917d9ebfbd8f36
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Aug 24 14:59:28 2024 +0800
Refactor DatabaseTypeUtils (#32651)
* Refactor SchemaMetaDataUtils
* Refactor DatabaseTypeUtils
---
.../database/schema/util/SchemaMetaDataUtils.java | 3 ++-
.../shardingsphere/infra/util/DatabaseTypeUtils.java | 11 -----------
.../shardingsphere/infra/util/DatabaseTypeUtilsTest.java | 16 +++++++---------
.../core/ingest/dumper/inventory/InventoryDumper.java | 7 ++++---
4 files changed, 13 insertions(+), 24 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 832d2251617..f9f1dc2dcd2 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
@@ -68,7 +68,8 @@ public final class SchemaMetaDataUtils {
for (Entry<String, Collection<String>> entry : dataSourceTableGroups.entrySet()) {
DatabaseType storageType = material.getStorageTypes().get(entry.getKey());
String defaultSchemaName = getDefaultSchemaNameByStorageType(storageType, material.getDefaultSchemaName());
- result.add(new MetaDataLoaderMaterial(entry.getValue(), getDataSource(material, entry.getKey()), storageType, defaultSchemaName));
+ MetaDataLoaderMaterial metaDataLoaderMaterial = new MetaDataLoaderMaterial(entry.getValue(), getDataSource(material, entry.getKey()), storageType, defaultSchemaName);
+ result.add(metaDataLoaderMaterial);
}
return result;
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtils.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtils.java
index 30b750decd8..a6cc70e5c92 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtils.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtils.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.infra.util;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
/**
* Database type utility class.
@@ -28,16 +27,6 @@ import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class DatabaseTypeUtils {
- /**
- * Check whether database type is MySQL, include trunk database type.
- *
- * @param databaseType database type
- * @return is MySQL or not
- */
- public static boolean isMySQL(final DatabaseType databaseType) {
- return getTrunkDatabaseType(databaseType) instanceof MySQLDatabaseType;
- }
-
/**
* Get trunk database type.
*
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtilsTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtilsTest.java
index e7b10862886..7fe991b1e43 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtilsTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/util/DatabaseTypeUtilsTest.java
@@ -21,18 +21,16 @@ import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.MatcherAssert.assertThat;
class DatabaseTypeUtilsTest {
@Test
- void assertIsMySQL() {
- DatabaseType actual = TypedSPILoader.getService(DatabaseType.class, "MySQL");
- assertTrue(DatabaseTypeUtils.isMySQL(actual));
- actual = TypedSPILoader.getService(DatabaseType.class, "MariaDB");
- assertTrue(DatabaseTypeUtils.isMySQL(actual));
- actual = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
- assertFalse(DatabaseTypeUtils.isMySQL(actual));
+ void assertGetTrunkDatabaseType() {
+ assertThat(DatabaseTypeUtils.getTrunkDatabaseType(TypedSPILoader.getService(DatabaseType.class, "MySQL")), is(TypedSPILoader.getService(DatabaseType.class, "MySQL")));
+ assertThat(DatabaseTypeUtils.getTrunkDatabaseType(TypedSPILoader.getService(DatabaseType.class, "MariaDB")), is(TypedSPILoader.getService(DatabaseType.class, "MySQL")));
+ assertThat(DatabaseTypeUtils.getTrunkDatabaseType(TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")), not(TypedSPILoader.getService(DatabaseType.class, "MySQL")));
}
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/InventoryDumper.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/InventoryDumper.java
index 8ee6b74ec37..b21809b6e73 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/InventoryDumper.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/inventory/InventoryDumper.java
@@ -44,11 +44,12 @@ import org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineTable
import org.apache.shardingsphere.data.pipeline.core.query.JDBCStreamQueryBuilder;
import org.apache.shardingsphere.data.pipeline.core.ratelimit.JobRateLimitAlgorithm;
import org.apache.shardingsphere.data.pipeline.core.sqlbuilder.sql.PipelineInventoryDumpSQLBuilder;
-import org.apache.shardingsphere.infra.util.DatabaseTypeUtils;
import org.apache.shardingsphere.data.pipeline.core.util.PipelineJdbcUtils;
import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
import org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
+import org.apache.shardingsphere.infra.util.DatabaseTypeUtils;
import javax.sql.DataSource;
import java.sql.Connection;
@@ -169,7 +170,7 @@ public class InventoryDumper extends AbstractPipelineLifecycleRunnable implement
int batchSize = dumperContext.getBatchSize();
try (PreparedStatement preparedStatement = JDBCStreamQueryBuilder.build(databaseType, connection, buildInventoryDumpPageByPageSQL(queryParam))) {
runningStatement.set(preparedStatement);
- if (!DatabaseTypeUtils.isMySQL(databaseType)) {
+ if (!(DatabaseTypeUtils.getTrunkDatabaseType(databaseType) instanceof MySQLDatabaseType)) {
preparedStatement.setFetchSize(batchSize);
}
setParameters(preparedStatement, queryParam, false);
@@ -288,7 +289,7 @@ public class InventoryDumper extends AbstractPipelineLifecycleRunnable implement
}
try (PreparedStatement preparedStatement = JDBCStreamQueryBuilder.build(databaseType, connection, buildInventoryDumpSQLWithStreamingQuery())) {
runningStatement.set(preparedStatement);
- if (!DatabaseTypeUtils.isMySQL(databaseType)) {
+ if (!(DatabaseTypeUtils.getTrunkDatabaseType(databaseType) instanceof MySQLDatabaseType)) {
preparedStatement.setFetchSize(batchSize);
}
PrimaryKeyIngestPosition<?> primaryPosition = (PrimaryKeyIngestPosition<?>) dumperContext.getCommonContext().getPosition();