You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2016/10/29 08:36:13 UTC
arrow git commit: ARROW-354: Fix comparison of arrays of empty strings
Repository: arrow
Updated Branches:
refs/heads/master da24c1a0a -> d946e7917
ARROW-354: Fix comparison of arrays of empty strings
Author: Uwe L. Korn <uw...@xhochy.com>
Closes #189 from xhochy/ARROW-354 and squashes the following commits:
8f75d78 [Uwe L. Korn] ARROW-354: Fix comparison of arrays of empty strings
Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/d946e791
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/d946e791
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/d946e791
Branch: refs/heads/master
Commit: d946e7917d55cb220becd6469ae93430f2e60764
Parents: da24c1a
Author: Uwe L. Korn <uw...@xhochy.com>
Authored: Sat Oct 29 04:36:03 2016 -0400
Committer: Wes McKinney <we...@twosigma.com>
Committed: Sat Oct 29 04:36:03 2016 -0400
----------------------------------------------------------------------
cpp/src/arrow/types/string-test.cc | 12 ++++++++++++
cpp/src/arrow/types/string.cc | 2 ++
2 files changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/arrow/blob/d946e791/cpp/src/arrow/types/string-test.cc
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/types/string-test.cc b/cpp/src/arrow/types/string-test.cc
index d897e30..af87a14 100644
--- a/cpp/src/arrow/types/string-test.cc
+++ b/cpp/src/arrow/types/string-test.cc
@@ -129,6 +129,18 @@ TEST_F(TestStringContainer, TestGetString) {
}
}
+TEST_F(TestStringContainer, TestEmptyStringComparison) {
+ offsets_ = {0, 0, 0, 0, 0, 0};
+ offsets_buf_ = test::to_buffer(offsets_);
+ length_ = offsets_.size() - 1;
+
+ auto strings_a = std::make_shared<StringArray>(
+ length_, offsets_buf_, nullptr, null_count_, null_bitmap_);
+ auto strings_b = std::make_shared<StringArray>(
+ length_, offsets_buf_, nullptr, null_count_, null_bitmap_);
+ ASSERT_TRUE(strings_a->Equals(strings_b));
+}
+
// ----------------------------------------------------------------------
// String builder tests
http://git-wip-us.apache.org/repos/asf/arrow/blob/d946e791/cpp/src/arrow/types/string.cc
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/types/string.cc b/cpp/src/arrow/types/string.cc
index d692e13..f6d26df 100644
--- a/cpp/src/arrow/types/string.cc
+++ b/cpp/src/arrow/types/string.cc
@@ -56,6 +56,8 @@ bool BinaryArray::EqualsExact(const BinaryArray& other) const {
offset_buffer_->Equals(*other.offset_buffer_, (length_ + 1) * sizeof(int32_t));
if (!equal_offsets) { return false; }
+ if (!data_buffer_ && !(other.data_buffer_)) { return true; }
+
return data_buffer_->Equals(*other.data_buffer_, data_buffer_->size());
}