milesgranger commented on code in PR #14395:
URL: https://github.com/apache/arrow/pull/14395#discussion_r994533597
##########
cpp/src/arrow/compute/kernels/scalar_nested_test.cc:
##########
@@ -116,6 +117,64 @@ TEST(TestScalarNested, ListElementInvalid) {
Raises(StatusCode::Invalid));
}
+void CheckListSlice(std::shared_ptr<Array> input, std::shared_ptr<Array>
expected,
+ SliceOptions& args) {
+ ASSERT_OK_AND_ASSIGN(auto result, CallFunction("list_slice", {input},
&args));
+ ASSERT_EQ(result, expected);
+}
+
+TEST(TestScalarNested, ListSlice) {
+ const auto value_types = {float32(), int32()};
+ for (auto value_type : value_types) {
+ auto inputs = {ArrayFromJSON(list(value_type), "[[1, 2, 3], [4, 5], [6]]"),
+ ArrayFromJSON(fixed_size_list(value_type, 3),
+ "[[1, 2, 3], [4, 5, null], [6, null,
null]]")};
+ for (auto input : inputs) {
+ SliceOptions args(0, 2);
+ auto expected =
+ ArrayFromJSON(fixed_size_list(value_type, 2), "[[1, 2], [4, 5], [6,
null]]");
Review Comment:
I saw the comment in the JIRA about maybe a fixed sized list would be an
option and found myself liking that; but yes, I don't think it should take that
much work to have an option to return fixed or variable sized lists from the
slice.
Need a different or extension to `SliceOptions` and update resolving the
output type; then we can just bypass the filling of nulls in the loop. Shall I
go about doing that?
--
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]