From 2ea617f6a3e32ddc5c35fafbb5ad6c86d8a3278c Mon Sep 17 00:00:00 2001 From: Yongting You <2010youy01@gmail.com> Date: Tue, 21 Jul 2026 15:41:06 +0800 Subject: [PATCH] test: improve array_distance SQL coverage --- .../test_files/array/array_length.slt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/datafusion/sqllogictest/test_files/array/array_length.slt b/datafusion/sqllogictest/test_files/array/array_length.slt index 1bb5382339854..50c70758ee03c 100644 --- a/datafusion/sqllogictest/test_files/array/array_length.slt +++ b/datafusion/sqllogictest/test_files/array/array_length.slt @@ -204,6 +204,52 @@ select list_distance([1, 2, 3], [1, 2, 3]) AS distance; ---- 0 +# array_distance with null outer arrays +query RR +select + array_distance(arrow_cast(NULL, 'List(Float64)'), [1, 2]), + array_distance([1, 2], arrow_cast(NULL, 'List(Float64)')); +---- +NULL NULL + +# nested large-list inputs and nested nulls on either side +query R +select array_distance( + arrow_cast([[1, 2]], 'LargeList(LargeList(Float64))'), + arrow_cast([[1, 4]], 'LargeList(LargeList(Float64))') +); +---- +2 + +query RR +select + array_distance( + arrow_cast([[1, NULL]], 'LargeList(LargeList(Float64))'), + arrow_cast([[1, 2]], 'LargeList(LargeList(Float64))') + ), + array_distance( + arrow_cast([[1, 2]], 'LargeList(LargeList(Float64))'), + arrow_cast([[1, NULL]], 'LargeList(LargeList(Float64))') + ); +---- +NULL NULL + +# invalid argument count and types +query error DataFusion error: +select array_distance(); + +query error DataFusion error: +select array_distance([1]); + +query error DataFusion error: +select array_distance([1], [2], [3]); + +query error array_distance does not support type Int64 +select array_distance(1, [1]); + +query error array_distance does not support types +select array_distance([1], arrow_cast([1], 'LargeList(Float64)')); + # array_distance with columns query RRR select array_distance(column1, column2), array_distance(column1, column3), array_distance(column1, column4) from arrays_distance_table;