@@ -162,6 +162,90 @@ SELECT sort_array(arr, true) FROM test_sort_array_boolean
162162query
163163SELECT 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+
165249statement
166250CREATE 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