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

zhangliang 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 9d10803826f Add ShardingSphereDefaultStatisticsBuilder (#34374)
9d10803826f is described below

commit 9d10803826fa13a77070ea076c8d18eb7ce8f785
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jan 16 22:21:57 2025 +0800

    Add ShardingSphereDefaultStatisticsBuilder (#34374)
    
    * Add ShardingSphereDefaultStatisticsBuilder
    
    * Add ShardingSphereDefaultStatisticsBuilder
    
    * Add ShardingSphereDefaultStatisticsBuilder
---
 ...=> ShardingSphereDefaultStatisticsBuilder.java} | 28 +++++++++----------
 .../MySQLShardingSphereStatisticsBuilder.java      | 32 ++--------------------
 .../PostgreSQLShardingSphereStatisticsBuilder.java | 28 ++-----------------
 3 files changed, 17 insertions(+), 71 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/ShardingSphereDefaultStatisticsBuilder.java
similarity index 78%
copy from 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
copy to 
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/ShardingSphereDefaultStatisticsBuilder.java
index eeff4e09998..84b3ea070c2 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/ShardingSphereDefaultStatisticsBuilder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.metadata.statistics.builder.dialect;
+package org.apache.shardingsphere.infra.metadata.statistics.builder;
 
 import org.apache.shardingsphere.infra.autogen.version.ShardingSphereVersion;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
@@ -23,15 +23,13 @@ import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabas
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsBuilder;
 
 import java.util.Collections;
 
 /**
- * ShardingSphere statistics builder for MySQL.
+ * ShardingSphere default statistics builder.
  */
-
-public final class MySQLShardingSphereStatisticsBuilder implements 
ShardingSphereStatisticsBuilder {
+public final class ShardingSphereDefaultStatisticsBuilder {
     
     private static final String SHARDINGSPHERE = "shardingsphere";
     
@@ -39,30 +37,30 @@ public final class MySQLShardingSphereStatisticsBuilder 
implements ShardingSpher
     
     private static final String SHARDING_TABLE_STATISTICS = 
"sharding_table_statistics";
     
-    @Override
+    /**
+     * Build default statistics data.
+     *
+     * @param database database
+     * @return built statistics data
+     */
     public ShardingSphereDatabaseData build(final ShardingSphereDatabase 
database) {
         ShardingSphereDatabaseData result = new ShardingSphereDatabaseData();
         if (database.containsSchema(SHARDINGSPHERE)) {
             ShardingSphereSchemaData schemaData = new 
ShardingSphereSchemaData();
-            initClusterInformationTable(schemaData);
-            initShardingTableStatisticsTable(schemaData);
+            buildClusterInformationTable(schemaData);
+            buildShardingTableStatisticsTable(schemaData);
             result.putSchema(SHARDINGSPHERE, schemaData);
         }
         return result;
     }
     
-    private void initClusterInformationTable(final ShardingSphereSchemaData 
schemaData) {
+    private void buildClusterInformationTable(final ShardingSphereSchemaData 
schemaData) {
         ShardingSphereTableData tableData = new 
ShardingSphereTableData(CLUSTER_INFORMATION);
         tableData.getRows().add(new 
ShardingSphereRowData(Collections.singletonList(ShardingSphereVersion.VERSION)));
         schemaData.putTable(CLUSTER_INFORMATION, tableData);
     }
     
-    private void initShardingTableStatisticsTable(final 
ShardingSphereSchemaData schemaData) {
+    private void buildShardingTableStatisticsTable(final 
ShardingSphereSchemaData schemaData) {
         schemaData.putTable(SHARDING_TABLE_STATISTICS, new 
ShardingSphereTableData(SHARDING_TABLE_STATISTICS));
     }
-    
-    @Override
-    public String getDatabaseType() {
-        return "MySQL";
-    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
index eeff4e09998..f09d9436872 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
@@ -17,48 +17,20 @@
 
 package org.apache.shardingsphere.infra.metadata.statistics.builder.dialect;
 
-import org.apache.shardingsphere.infra.autogen.version.ShardingSphereVersion;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabaseData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereDefaultStatisticsBuilder;
 import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsBuilder;
 
-import java.util.Collections;
-
 /**
  * ShardingSphere statistics builder for MySQL.
  */
 
 public final class MySQLShardingSphereStatisticsBuilder implements 
ShardingSphereStatisticsBuilder {
     
-    private static final String SHARDINGSPHERE = "shardingsphere";
-    
-    private static final String CLUSTER_INFORMATION = "cluster_information";
-    
-    private static final String SHARDING_TABLE_STATISTICS = 
"sharding_table_statistics";
-    
     @Override
     public ShardingSphereDatabaseData build(final ShardingSphereDatabase 
database) {
-        ShardingSphereDatabaseData result = new ShardingSphereDatabaseData();
-        if (database.containsSchema(SHARDINGSPHERE)) {
-            ShardingSphereSchemaData schemaData = new 
ShardingSphereSchemaData();
-            initClusterInformationTable(schemaData);
-            initShardingTableStatisticsTable(schemaData);
-            result.putSchema(SHARDINGSPHERE, schemaData);
-        }
-        return result;
-    }
-    
-    private void initClusterInformationTable(final ShardingSphereSchemaData 
schemaData) {
-        ShardingSphereTableData tableData = new 
ShardingSphereTableData(CLUSTER_INFORMATION);
-        tableData.getRows().add(new 
ShardingSphereRowData(Collections.singletonList(ShardingSphereVersion.VERSION)));
-        schemaData.putTable(CLUSTER_INFORMATION, tableData);
-    }
-    
-    private void initShardingTableStatisticsTable(final 
ShardingSphereSchemaData schemaData) {
-        schemaData.putTable(SHARDING_TABLE_STATISTICS, new 
ShardingSphereTableData(SHARDING_TABLE_STATISTICS));
+        return new ShardingSphereDefaultStatisticsBuilder().build(database);
     }
     
     @Override
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
index dc369c79774..192064e839d 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
@@ -17,19 +17,17 @@
 
 package org.apache.shardingsphere.infra.metadata.statistics.builder.dialect;
 
-import org.apache.shardingsphere.infra.autogen.version.ShardingSphereVersion;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereDatabaseData;
-import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereRowData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereSchemaData;
 import 
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
+import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereDefaultStatisticsBuilder;
 import 
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsBuilder;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -40,12 +38,6 @@ import java.util.Map.Entry;
 
 public final class PostgreSQLShardingSphereStatisticsBuilder implements 
ShardingSphereStatisticsBuilder {
     
-    private static final String SHARDINGSPHERE = "shardingsphere";
-    
-    private static final String CLUSTER_INFORMATION = "cluster_information";
-    
-    private static final String SHARDING_TABLE_STATISTICS = 
"sharding_table_statistics";
-    
     private static final Map<String, Collection<String>> 
INIT_DATA_SCHEMA_TABLES = new LinkedHashMap<>();
     
     static {
@@ -54,13 +46,7 @@ public final class PostgreSQLShardingSphereStatisticsBuilder 
implements Sharding
     
     @Override
     public ShardingSphereDatabaseData build(final ShardingSphereDatabase 
database) {
-        ShardingSphereDatabaseData result = new ShardingSphereDatabaseData();
-        if (null != database.getSchema(SHARDINGSPHERE)) {
-            ShardingSphereSchemaData schemaData = new 
ShardingSphereSchemaData();
-            initClusterInformationTable(schemaData);
-            initShardingTableStatisticsTable(schemaData);
-            result.putSchema(SHARDINGSPHERE, schemaData);
-        }
+        ShardingSphereDatabaseData result = new 
ShardingSphereDefaultStatisticsBuilder().build(database);
         for (Entry<String, Collection<String>> entry : 
INIT_DATA_SCHEMA_TABLES.entrySet()) {
             ShardingSphereSchemaData schemaData = new 
ShardingSphereSchemaData();
             if (null != database.getSchema(entry.getKey())) {
@@ -71,16 +57,6 @@ public final class PostgreSQLShardingSphereStatisticsBuilder 
implements Sharding
         return result;
     }
     
-    private void initClusterInformationTable(final ShardingSphereSchemaData 
schemaData) {
-        ShardingSphereTableData tableData = new 
ShardingSphereTableData(CLUSTER_INFORMATION);
-        tableData.getRows().add(new 
ShardingSphereRowData(Collections.singletonList(ShardingSphereVersion.VERSION)));
-        schemaData.putTable(CLUSTER_INFORMATION, tableData);
-    }
-    
-    private void initShardingTableStatisticsTable(final 
ShardingSphereSchemaData schemaData) {
-        schemaData.putTable(SHARDING_TABLE_STATISTICS, new 
ShardingSphereTableData(SHARDING_TABLE_STATISTICS));
-    }
-    
     private void initTables(final ShardingSphereSchema schema, final 
Collection<String> tables, final ShardingSphereSchemaData schemaData) {
         for (ShardingSphereTable each : schema.getAllTables()) {
             if (tables.contains(each.getName().toLowerCase())) {

Reply via email to