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();