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