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

alexey pushed a commit to branch branch-1.15.x
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/branch-1.15.x by this push:
     new 0e65616  [client] Fix KuduSchema operator != bug
0e65616 is described below

commit 0e656165b6123fe3eabc24dbaaa88166e145ded5
Author: Yingchun Lai <[email protected]>
AuthorDate: Tue Aug 31 22:03:51 2021 +0800

    [client] Fix KuduSchema operator != bug
    
    Operator != of KuduSchema should operate on objects not pointers.
    
    Change-Id: I1c49feff42114e72c229a77ea502deca60bb3209
    Reviewed-on: http://gerrit.cloudera.org:8080/17822
    Reviewed-by: Alexey Serbin <[email protected]>
    Tested-by: Kudu Jenkins
    (cherry picked from commit ab54c39f11a9b045348cc2f864cab120839ba6b5)
    Reviewed-on: http://gerrit.cloudera.org:8080/17824
    Tested-by: Alexey Serbin <[email protected]>
---
 src/kudu/client/client-unittest.cc | 42 +++++++++++++++++++++++++++++++++++++-
 src/kudu/client/schema.cc          |  2 +-
 2 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/kudu/client/client-unittest.cc 
b/src/kudu/client/client-unittest.cc
index 2c0fb01..c452d7f 100644
--- a/src/kudu/client/client-unittest.cc
+++ b/src/kudu/client/client-unittest.cc
@@ -239,7 +239,7 @@ TEST(ClientUnitTest, TestErrorCollector) {
   }
 }
 
-TEST(ClientUnitTest, TestKuduSchemaToString) {
+TEST(KuduSchemaTest, TestToString) {
   // Test on unique PK.
   KuduSchema s1;
   KuduSchemaBuilder b1;
@@ -292,6 +292,46 @@ TEST(ClientUnitTest, TestKuduSchemaToString) {
   EXPECT_EQ(schema_str_2, s2.ToString());
 }
 
+TEST(KuduSchemaTest, TestEquals) {
+  KuduSchemaBuilder b1;
+  b1.AddColumn("key")->Type(KuduColumnSchema::INT32)->NotNull()->PrimaryKey();
+  b1.AddColumn("int_val")->Type(KuduColumnSchema::INT32);
+
+  KuduSchema s1;
+  ASSERT_OK(b1.Build(&s1));
+
+  ASSERT_FALSE(s1 != s1);
+  ASSERT_TRUE(s1 == s1);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+  ASSERT_TRUE(s1.Equals(s1));
+#pragma GCC diagnostic pop
+
+  KuduSchema s2;
+  ASSERT_OK(b1.Build(&s2));
+
+  ASSERT_FALSE(s1 != s2);
+  ASSERT_TRUE(s1 == s2);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+  ASSERT_TRUE(s1.Equals(s2));
+#pragma GCC diagnostic pop
+
+  KuduSchemaBuilder b2;
+  b2.AddColumn("key")->Type(KuduColumnSchema::INT32)->NotNull()->PrimaryKey();
+  b2.AddColumn("string_val")->Type(KuduColumnSchema::STRING);
+
+  KuduSchema s3;
+  ASSERT_OK(b2.Build(&s3));
+
+  ASSERT_TRUE(s1 != s3);
+  ASSERT_FALSE(s1 == s3);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+  ASSERT_FALSE(s1.Equals(s3));
+#pragma GCC diagnostic pop
+}
+
 TEST(ClientUnitTest, TestKuduSchemaToStringWithColumnIds) {
   // Build a KuduSchema from a Schema, so that the KuduSchema's internal Schema
   // has column ids.
diff --git a/src/kudu/client/schema.cc b/src/kudu/client/schema.cc
index 4a9f1c3..e5a1bba 100644
--- a/src/kudu/client/schema.cc
+++ b/src/kudu/client/schema.cc
@@ -869,7 +869,7 @@ bool KuduSchema::operator==(const KuduSchema& rhs) const {
 }
 
 bool KuduSchema::operator!=(const KuduSchema& rhs) const {
-  return !(this == &rhs);
+  return !(*this == rhs);
 }
 
 bool KuduSchema::Equals(const KuduSchema& other) const {

Reply via email to