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 {