jorisvandenbossche commented on code in PR #15210:
URL: https://github.com/apache/arrow/pull/15210#discussion_r1064477436
##########
cpp/src/arrow/array/array_list_test.cc:
##########
@@ -509,6 +509,18 @@ class TestListArray : public ::testing::Test {
ASSERT_RAISES(Invalid, ValidateOffsets(2, {0, 7, 4}, values));
}
+ void TestSliced() {
+ auto arr = ArrayFromJSON(list(int16()), "[[1, 2], [3, 4, 5], [6], [7,
8]]");
+
+ auto arr_sliced = arr->Slice(0, 2);
+ auto expected_sliced = ArrayFromJSON(list(int16()), "[[1, 2], [3, 4, 5]]");
+ AssertArraysEqual(*expected_sliced, *arr_sliced);
+
+ auto values = checked_cast<ListArray*>(arr_sliced.get())->values();
+ auto expected_values = ArrayFromJSON(int16(), "[1, 2, 3, 4, 5]");
+ AssertArraysEqual(*expected_values, *values);
Review Comment:
> The problem with Flatten though is that it removes the null values from
the values array, but in this case we want them.
Because we use the offsets to slice into the flat values, and those offsets
take into account potential values behind a null?
This corner case is covered by existing tests?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]