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 78698896fb7 Fix table metadata check uniformed (#35341)
78698896fb7 is described below

commit 78698896fb7f9467a76a7aa5c2dbd09f207fc3c0
Author: ZhangCheng <chengzh...@apache.org>
AuthorDate: Tue May 6 18:15:24 2025 +0800

    Fix table metadata check uniformed (#35341)
    
    * Fix table metadata check uniformed
    
    * Fix table metadata check uniformed
---
 .../ShardingSchemaTableAggregationReviser.java     |  2 +-
 .../ShardingSchemaTableAggregationReviserTest.java | 28 +++++++++++++++++++---
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
index ebcfe4a8951..bc8fc30399b 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviser.java
@@ -62,7 +62,7 @@ public final class ShardingSchemaTableAggregationReviser 
implements SchemaTableA
     private void checkUniformed(final String logicTableName, final 
Collection<TableMetaData> tableMetaDataList) {
         TableMetaData sample = tableMetaDataList.iterator().next();
         Collection<TableMetaDataViolation> violations = 
tableMetaDataList.stream()
-                .filter(each -> !sample.equals(each)).map(each -> new 
TableMetaDataViolation(each.getName(), each)).collect(Collectors.toList());
+                .filter(each -> 
!sample.toString().equals(each.toString())).map(each -> new 
TableMetaDataViolation(each.getName(), each)).collect(Collectors.toList());
         ShardingSpherePreconditions.checkMustEmpty(violations, () -> new 
RuleAndStorageMetaDataMismatchedException(createErrorReason(logicTableName, 
violations)));
     }
     
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviserTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviserTest.java
index 1f12f362eec..384800d4e2e 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviserTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/reviser/schema/ShardingSchemaTableAggregationReviserTest.java
@@ -18,11 +18,14 @@
 package org.apache.shardingsphere.sharding.metadata.reviser.schema;
 
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
 import 
org.apache.shardingsphere.infra.exception.kernel.metadata.RuleAndStorageMetaDataMismatchedException;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.jupiter.api.Test;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 
@@ -44,11 +47,30 @@ class ShardingSchemaTableAggregationReviserTest {
     
     @Test
     void assertAggregateSuccessWithCheckTableMetaDataEnabled() {
-        TableMetaData tableMetaData = new TableMetaData("foo_tbl", null, null, 
null);
+        TableMetaData tableMetaData1 = createTableMetadata();
+        TableMetaData tableMetaData2 = createTableMetadata();
         ShardingSchemaTableAggregationReviser reviser = new 
ShardingSchemaTableAggregationReviser(true);
-        reviser.add(tableMetaData);
+        reviser.add(tableMetaData1);
+        reviser.add(tableMetaData2);
         Collection<TableMetaData> actual = 
reviser.aggregate(mock(ShardingRule.class));
-        assertThat(actual, is(Collections.singletonList(tableMetaData)));
+        assertThat(actual, is(Collections.singletonList(tableMetaData1)));
+    }
+    
+    private TableMetaData createTableMetadata() {
+        return new TableMetaData("foo_tbl", 
Arrays.asList(createColumnMetaData("id"), createColumnMetaData("name")), 
Arrays.asList(createIndexMetaData("id"), createIndexMetaData("name")),
+                Arrays.asList(createConstraintMetaData("id"), 
createConstraintMetaData("name")));
+    }
+    
+    private ColumnMetaData createColumnMetaData(final String columnName) {
+        return new ColumnMetaData(columnName, 1, true, false, true, true, 
true, true);
+    }
+    
+    private static IndexMetaData createIndexMetaData(final String columnName) {
+        return new IndexMetaData("idx_" + columnName, 
Collections.singletonList(columnName));
+    }
+    
+    private static ConstraintMetaData createConstraintMetaData(final String 
name) {
+        return new ConstraintMetaData("constraint_" + name, "foo_tbl");
     }
     
     @Test

Reply via email to