Skip to content

Commit 8fea480

Browse files
committed
test: add date, timestamp, and binary case
1 parent 3721201 commit 8fea480

1 file changed

Lines changed: 103 additions & 0 deletions

File tree

spark/src/test/resources/sql-tests/expressions/array/sort_array.sql

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,90 @@ SELECT sort_array(arr, true) FROM test_sort_array_boolean
162162
query
163163
SELECT sort_array(arr, false) FROM test_sort_array_boolean
164164

165+
statement
166+
CREATE TABLE test_sort_array_date(arr array<date>) USING parquet
167+
168+
statement
169+
INSERT INTO test_sort_array_date VALUES
170+
(array(DATE '2026-01-03', DATE '2026-01-01', DATE '2026-01-02')),
171+
(array(DATE '2026-01-02', NULL, DATE '2026-01-01')),
172+
(array()),
173+
(NULL)
174+
175+
query
176+
SELECT sort_array(arr) FROM test_sort_array_date
177+
178+
query
179+
SELECT sort_array(arr, true) FROM test_sort_array_date
180+
181+
query
182+
SELECT sort_array(arr, false) FROM test_sort_array_date
183+
184+
statement
185+
CREATE TABLE test_sort_array_timestamp(arr array<timestamp>) USING parquet
186+
187+
statement
188+
INSERT INTO test_sort_array_timestamp VALUES
189+
(array(
190+
TIMESTAMP '2026-01-03 01:00:00',
191+
TIMESTAMP '2026-01-01 02:00:00',
192+
TIMESTAMP '2026-01-02 03:00:00')),
193+
(array(
194+
TIMESTAMP '2026-01-02 00:00:00',
195+
NULL,
196+
TIMESTAMP '2026-01-01 00:00:00')),
197+
(array()),
198+
(NULL)
199+
200+
query
201+
SELECT sort_array(arr) FROM test_sort_array_timestamp
202+
203+
query
204+
SELECT sort_array(arr, true) FROM test_sort_array_timestamp
205+
206+
query
207+
SELECT sort_array(arr, false) FROM test_sort_array_timestamp
208+
209+
statement
210+
CREATE TABLE test_sort_array_binary(arr array<binary>) USING parquet
211+
212+
statement
213+
INSERT INTO test_sort_array_binary VALUES
214+
(array(unhex('FF'), unhex('00'), unhex('0A'))),
215+
(array(unhex('0B'), NULL, unhex('01'))),
216+
(array()),
217+
(NULL)
218+
219+
query
220+
SELECT
221+
hex(element_at(sorted_arr, 1)),
222+
hex(element_at(sorted_arr, 2)),
223+
hex(element_at(sorted_arr, 3))
224+
FROM (
225+
SELECT sort_array(arr) AS sorted_arr
226+
FROM test_sort_array_binary
227+
)
228+
229+
query
230+
SELECT
231+
hex(element_at(sorted_arr, 1)),
232+
hex(element_at(sorted_arr, 2)),
233+
hex(element_at(sorted_arr, 3))
234+
FROM (
235+
SELECT sort_array(arr, true) AS sorted_arr
236+
FROM test_sort_array_binary
237+
)
238+
239+
query
240+
SELECT
241+
hex(element_at(sorted_arr, 1)),
242+
hex(element_at(sorted_arr, 2)),
243+
hex(element_at(sorted_arr, 3))
244+
FROM (
245+
SELECT sort_array(arr, false) AS sorted_arr
246+
FROM test_sort_array_binary
247+
)
248+
165249
statement
166250
CREATE TABLE test_sort_array_struct(arr array<struct<a:int,b:string>>) USING parquet
167251

@@ -278,6 +362,25 @@ SELECT
278362
sort_array(array(true, false, true, false)),
279363
sort_array(array(true, false, true, NULL, false)),
280364
sort_array(array(true, false, true, NULL, false), false),
365+
sort_array(array(DATE '2026-01-03', DATE '2026-01-01', DATE '2026-01-02')),
366+
sort_array(array(DATE '2026-01-02', NULL, DATE '2026-01-01'), false),
367+
sort_array(
368+
array(
369+
TIMESTAMP '2026-01-03 01:00:00',
370+
TIMESTAMP '2026-01-01 02:00:00',
371+
TIMESTAMP '2026-01-02 03:00:00')),
372+
sort_array(
373+
array(
374+
TIMESTAMP '2026-01-02 00:00:00',
375+
NULL,
376+
TIMESTAMP '2026-01-01 00:00:00'),
377+
false),
378+
hex(element_at(sort_array(array(unhex('FF'), unhex('00'), unhex('0A'))), 1)),
379+
hex(element_at(sort_array(array(unhex('FF'), unhex('00'), unhex('0A'))), 2)),
380+
hex(element_at(sort_array(array(unhex('FF'), unhex('00'), unhex('0A'))), 3)),
381+
hex(element_at(sort_array(array(unhex('0B'), NULL, unhex('01')), false), 1)),
382+
hex(element_at(sort_array(array(unhex('0B'), NULL, unhex('01')), false), 2)),
383+
hex(element_at(sort_array(array(unhex('0B'), NULL, unhex('01')), false), 3)),
281384
sort_array(
282385
array(
283386
named_struct('a', 2, 'b', 'b'),

0 commit comments

Comments
 (0)