Skip to content

Commit 3911f0c

Browse files
authored
chore: Add array_slice tests for overlapping nulls across inputs (#21540)
Per reviewer comment in #21482, this adds a test case for `array_slice` for various situations in which multiple inputs (array, from, to, stride) are simultaneously null.
1 parent 5e60df6 commit 3911f0c

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

datafusion/sqllogictest/test_files/array.slt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,6 +2435,50 @@ select array_slice(a, -1, 2, 1), array_slice(a, -1, 2),
24352435
[] [] [] []
24362436
[6.0] [6.0] [] []
24372437

2438+
# array_slice with overlapping nulls across multiple inputs
2439+
query ?
2440+
select array_slice(column1, column2, column3) from (
2441+
values
2442+
(make_array(1, 2, 3), NULL, NULL),
2443+
(NULL, NULL, 3),
2444+
(NULL, 1, NULL),
2445+
(make_array(4, 5, 6), 1, 3)
2446+
) as t(column1, column2, column3);
2447+
----
2448+
NULL
2449+
NULL
2450+
NULL
2451+
[4, 5, 6]
2452+
2453+
query ?
2454+
select array_slice(arrow_cast(column1, 'LargeList(Int64)'), column2, column3) from (
2455+
values
2456+
(make_array(1, 2, 3), NULL, NULL),
2457+
(NULL, NULL, 3),
2458+
(NULL, 1, NULL),
2459+
(make_array(4, 5, 6), 1, 3)
2460+
) as t(column1, column2, column3);
2461+
----
2462+
NULL
2463+
NULL
2464+
NULL
2465+
[4, 5, 6]
2466+
2467+
# array_slice with overlapping nulls including stride
2468+
query ?
2469+
select array_slice(column1, column2, column3, column4) from (
2470+
values
2471+
(make_array(1, 2, 3, 4, 5), 1, 5, NULL),
2472+
(NULL, NULL, 3, 2),
2473+
(make_array(1, 2, 3, 4, 5), NULL, NULL, NULL),
2474+
(make_array(1, 2, 3, 4, 5), 1, 5, 2)
2475+
) as t(column1, column2, column3, column4);
2476+
----
2477+
NULL
2478+
NULL
2479+
NULL
2480+
[1, 3, 5]
2481+
24382482
# Testing with empty arguments should result in an error
24392483
query error DataFusion error: Error during planning: 'array_slice' does not support zero arguments
24402484
select array_slice();

0 commit comments

Comments
 (0)