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

menghaoran 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 99aef45f4fe Improve QualifiedTable equals (#35297)
99aef45f4fe is described below

commit 99aef45f4fe7eafbbca1ca7092f15fdb883fd460
Author: Hongsheng Zhong <zhonghongsh...@apache.org>
AuthorDate: Wed Apr 30 16:30:50 2025 +0800

    Improve QualifiedTable equals (#35297)
---
 .../metadata/database/schema/QualifiedTable.java   | 19 +++++++++++++--
 .../database/schema/QualifiedTableTest.java        | 28 ++++++++++++++++++++++
 2 files changed, 45 insertions(+), 2 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTable.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTable.java
index 9579c562a60..c6a77a95010 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTable.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTable.java
@@ -17,13 +17,13 @@
 
 package org.apache.shardingsphere.infra.metadata.database.schema;
 
-import lombok.EqualsAndHashCode;
 import 
org.apache.shardingsphere.infra.metadata.identifier.ShardingSphereIdentifier;
 
+import java.util.Objects;
+
 /**
  * Qualified table.
  */
-@EqualsAndHashCode
 public final class QualifiedTable {
     
     private final ShardingSphereIdentifier schemaName;
@@ -53,6 +53,21 @@ public final class QualifiedTable {
         return tableName.getValue();
     }
     
+    @Override
+    public boolean equals(final Object o) {
+        if (null == o || getClass() != o.getClass()) {
+            return false;
+        }
+        QualifiedTable that = (QualifiedTable) o;
+        return Objects.equals(null == schemaName.getValue() ? null : 
schemaName, null == that.schemaName.getValue() ? null : that.schemaName)
+                && Objects.equals(null == tableName.getValue() ? null : 
tableName, null == that.tableName.getValue() ? null : that.tableName);
+    }
+    
+    @Override
+    public int hashCode() {
+        return Objects.hash(schemaName, tableName);
+    }
+    
     @Override
     public String toString() {
         return null == getSchemaName() ? getTableName() : String.join(".", 
getSchemaName(), getTableName());
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
index c571969aa81..cdb62891575 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/QualifiedTableTest.java
@@ -21,9 +21,37 @@ import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
 class QualifiedTableTest {
     
+    @Test
+    void assertEqualsTrueWithoutSchema() {
+        QualifiedTable actual = new QualifiedTable(null, "t_order");
+        QualifiedTable expected = new QualifiedTable(null, "T_ORDER");
+        assertThat(actual, is(expected));
+    }
+    
+    @Test
+    void assertEqualsTrueWithSchema() {
+        QualifiedTable actual = new QualifiedTable("schema", "t_order");
+        QualifiedTable expected = new QualifiedTable("SCHEMA", "T_ORDER");
+        assertThat(actual, is(expected));
+        actual = new QualifiedTable("schema", null);
+        expected = new QualifiedTable("SCHEMA", null);
+        assertThat(actual, is(expected));
+    }
+    
+    @Test
+    void assertEqualsFalse() {
+        QualifiedTable actual = new QualifiedTable("schema", "t_order");
+        QualifiedTable expected = new QualifiedTable(null, "t_order");
+        assertNotEquals(actual, expected);
+        actual = new QualifiedTable("schema", "t_order");
+        expected = new QualifiedTable("schema", null);
+        assertNotEquals(actual, expected);
+    }
+    
     @Test
     void assertToString() {
         assertThat(new QualifiedTable("foo_schema", "foo_tbl").toString(), 
is("foo_schema.foo_tbl"));

Reply via email to