You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by gi...@apache.org on 2026/07/09 21:16:03 UTC

(datafusion) branch gh-readonly-queue/main/pr-23382-66b059e041e332293c21bde857865cfdf04f0772 created (now 1c1a78a0a4)

This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a change to branch gh-readonly-queue/main/pr-23382-66b059e041e332293c21bde857865cfdf04f0772
in repository https://gitbox.apache.org/repos/asf/datafusion.git


      at 1c1a78a0a4 chore: cleanup some TODO items in sqllogictests (#23382)

This branch includes the following new commits:

     new 1c1a78a0a4 chore: cleanup some TODO items in sqllogictests (#23382)

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org


(datafusion) 01/01: chore: cleanup some TODO items in sqllogictests (#23382)

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/main/pr-23382-66b059e041e332293c21bde857865cfdf04f0772
in repository https://gitbox.apache.org/repos/asf/datafusion.git

commit 1c1a78a0a424f88a8170f721bd23e142738a8fb3
Author: Jeffrey Vo <je...@gmail.com>
AuthorDate: Fri Jul 10 06:15:51 2026 +0900

    chore: cleanup some TODO items in sqllogictests (#23382)
    
    Cleaning some outdated TODO items or updating the queries so they at
    least run (even if result is incorrect)
---
 .../test_files/array/array_distinct.slt            |   9 +-
 .../sqllogictest/test_files/array/array_empty.slt  |   6 +-
 .../sqllogictest/test_files/array/array_has.slt    |  16 +--
 .../sqllogictest/test_files/array/array_index.slt  | 109 ++++++++++-------
 .../sqllogictest/test_files/array/array_pop.slt    |  12 +-
 .../test_files/array/array_position.slt            |   6 +-
 .../test_files/array/array_prepend.slt             |   1 -
 .../test_files/datetime/timestamps.slt             |   6 +-
 datafusion/sqllogictest/test_files/ddl.slt         |   4 -
 datafusion/sqllogictest/test_files/expr.slt        | 133 ++++++++++-----------
 datafusion/sqllogictest/test_files/map.slt         |   2 +-
 11 files changed, 157 insertions(+), 147 deletions(-)

diff --git a/datafusion/sqllogictest/test_files/array/array_distinct.slt b/datafusion/sqllogictest/test_files/array/array_distinct.slt
index 777ec1ac8a..2682413cac 100644
--- a/datafusion/sqllogictest/test_files/array/array_distinct.slt
+++ b/datafusion/sqllogictest/test_files/array/array_distinct.slt
@@ -19,11 +19,10 @@ include ./init_data.slt.part
 
 ## array_distinct
 
-#TODO: https://github.com/apache/datafusion/issues/7142
-#query ?
-#select array_distinct(null);
-#----
-#NULL
+query ?
+select array_distinct(null);
+----
+NULL
 
 # test with empty row, the row that does not match the condition has row count 0
 statement ok
diff --git a/datafusion/sqllogictest/test_files/array/array_empty.slt b/datafusion/sqllogictest/test_files/array/array_empty.slt
index 15cf2b4860..800f568934 100644
--- a/datafusion/sqllogictest/test_files/array/array_empty.slt
+++ b/datafusion/sqllogictest/test_files/array/array_empty.slt
@@ -68,10 +68,8 @@ false
 
 #TODO: https://github.com/apache/datafusion/issues/7142
 # empty scalar function #4
-#query B
-#select empty(NULL);
-#----
-#NULL
+query error array_empty does not support type Null
+select empty(NULL);
 
 # empty scalar function #5
 query B
diff --git a/datafusion/sqllogictest/test_files/array/array_has.slt b/datafusion/sqllogictest/test_files/array/array_has.slt
index e343c1b1fa..82712ece89 100644
--- a/datafusion/sqllogictest/test_files/array/array_has.slt
+++ b/datafusion/sqllogictest/test_files/array/array_has.slt
@@ -41,13 +41,15 @@ select array_has([1, null, 2], 3),
 false false
 
 #TODO: array_has_all and array_has_any cannot handle NULL
-#query BBBB
-#select array_has_any([], null),
-#       array_has_any([1, 2, 3], null),
-#       array_has_all([], null),
-#       array_has_all([1, 2, 3], null);
-#----
-#false false false false
+query BB
+select array_has_any([], null),
+       array_has_any([1, 2, 3], null);
+----
+NULL NULL
+
+query error array_has does not support type 'Null'
+select array_has_all([], null),
+       array_has_all([1, 2, 3], null);
 
 query BBBBBBBBBBBB
 select array_has(make_array(1,2), 1),
diff --git a/datafusion/sqllogictest/test_files/array/array_index.slt b/datafusion/sqllogictest/test_files/array/array_index.slt
index 9cd033418d..1d9e2989e2 100644
--- a/datafusion/sqllogictest/test_files/array/array_index.slt
+++ b/datafusion/sqllogictest/test_files/array/array_index.slt
@@ -94,17 +94,23 @@ NULL NULL e
 [13, 14] NULL NULL
 [NULL, 18] NULL NULL
 
-# TODO: support index as column
 # single index with columns #5 (index as column)
-# query ?
-# select make_array(1, 2, 3, 4, 5)[column2] from arrays_with_repeating_elements;
-# ----
+query I
+select make_array(1, 2, 3, 4, 5)[column2] from arrays_with_repeating_elements;
+----
+2
+4
+NULL
+NULL
 
-# TODO: support argument and index as columns
 # single index with columns #6 (argument and index as columns)
-# query I
-# select column1[column2] from arrays_with_repeating_elements;
-# ----
+query I
+select column1[column2] from arrays_with_repeating_elements;
+----
+2
+5
+7
+10
 
 ## array[i:j]
 
@@ -141,17 +147,17 @@ select arrow_cast([1, 2, 3], 'LargeList(Int64)')[1];
 ----
 1
 
-# TODO: support multiple negative index
 # multiple index with columns #3 (negative index)
-# query II
-# select make_array(1, 2, 3)[-3:-1], make_array(1.0, 2.0, 3.0)[-3:-1], make_array('h', 'e', 'l', 'l', 'o')[-2:0];
-# ----
+query ???
+select make_array(1, 2, 3)[-3:-1], make_array(1.0, 2.0, 3.0)[-3:-1], make_array('h', 'e', 'l', 'l', 'o')[-2:0];
+----
+[1, 2, 3] [1.0, 2.0, 3.0] []
 
-# TODO: support complex index
 # multiple index with columns #4 (complex index)
-# query III
-# select make_array(1, 2, 3)[2 + 1 - 1:10], make_array(1.0, 2.0, 3.0)[2 | 2:10], make_array('h', 'e', 'l', 'l', 'o')[6 ^ 6:10];
-# ----
+query ???
+select make_array(1, 2, 3)[2 + 1 - 1:10], make_array(1.0, 2.0, 3.0)[(2 | 2):10], make_array('h', 'e', 'l', 'l', 'o')[6 ^ 6:10];
+----
+[2, 3] [2.0, 3.0] [h, e, l, l, o]
 
 # multiple index with columns #1 (positive index)
 query ???
@@ -177,36 +183,56 @@ NULL [13.3, 14.4, 15.5] [a, m, e, t]
 [[11, 12], [13, 14]] NULL [,]
 [[15, 16], [NULL, 18]] [16.6, 17.7, 18.8] NULL
 
-# TODO: support negative index
 # multiple index with columns #3 (negative index)
-# query ?RT
-# select column1[-2:-4], column2[-3:-5], column3[-1:-4] from arrays;
-# ----
-# [NULL, 2] 1.1 m
+query ???
+select column1[-2:-4], column2[-3:-5], column3[-1:-4] from arrays;
+----
+[] [] []
+[] [] []
+[] [] []
+[] [] []
+NULL [] []
+[] NULL []
+[] [] NULL
 
-# TODO: support complex index
 # multiple index with columns #4 (complex index)
-# query ?RT
-# select column1[9 - 7:2 + 2], column2[1 * 0:2 * 3], column3[1 + 1 - 0:5 % 3] from arrays;
-# ----
+query ???
+select column1[9 - 7:2 + 2], column2[1 * 0:2 * 3], column3[1 + 1 - 0:5 % 3] from arrays;
+----
+[[3, NULL]] [1.1, 2.2, 3.3] [o]
+[[5, 6]] [NULL, 5.5, 6.6] [p]
+[[7, 8]] [7.7, 8.8, 9.9] [NULL]
+[[9, 10]] [10.1, NULL, 12.2] [i]
+NULL [13.3, 14.4, 15.5] [m]
+[[13, 14]] NULL []
+[[NULL, 18]] [16.6, 17.7, 18.8] NULL
 
-# TODO: support first index as column
 # multiple index with columns #5 (first index as column)
-# query ?
-# select make_array(1, 2, 3, 4, 5)[column2:4] from arrays_with_repeating_elements
-# ----
+query ?
+select make_array(1, 2, 3, 4, 5)[column2:4] from arrays_with_repeating_elements
+----
+[2, 3, 4]
+[4]
+[]
+[]
 
-# TODO: support last index as column
 # multiple index with columns #6 (last index as column)
-# query ?RT
-# select make_array(1, 2, 3, 4, 5)[2:column3] from arrays_with_repeating_elements;
-# ----
+query ?
+select make_array(1, 2, 3, 4, 5)[2:column3] from arrays_with_repeating_elements;
+----
+[2, 3, 4]
+[2, 3, 4, 5]
+[2, 3, 4, 5]
+[2, 3, 4, 5]
 
-# TODO: support argument and indices as column
 # multiple index with columns #7 (argument and indices as column)
-# query ?RT
-# select column1[column2:column3] from arrays_with_repeating_elements;
-# ----
+query ?
+select column1[column2:column3] from arrays_with_repeating_elements;
+----
+[2, 1, 3]
+[5, 6, 5, 5]
+[7, 8, 7, 7]
+[10]
 
 # array[i:j:k]
 
@@ -222,12 +248,11 @@ select make_array(1, 2, 3)[0:0:2], make_array(1.0, 2.0, 3.0)[0:2:2], make_array(
 ----
 [] [1.0] [h, l, o]
 
-#TODO: sqlparser does not support negative index
 ## multiple index with columns #3 (negative index)
-#query ???
-#select make_array(1, 2, 3)[-1:-2:-2], make_array(1.0, 2.0, 3.0)[-2:-3:-2], make_array('h', 'e', 'l', 'l', 'o')[-2:-4:-2];
-#----
-#[1] [2.0] [e, l]
+query ???
+select make_array(1, 2, 3)[-1:-2:-2], make_array(1.0, 2.0, 3.0)[-2:-3:-2], make_array('h', 'e', 'l', 'l', 'o')[-2:-4:-2];
+----
+[3] [2.0] [l, e]
 
 # multiple index with columns #1 (positive index)
 query ???
diff --git a/datafusion/sqllogictest/test_files/array/array_pop.slt b/datafusion/sqllogictest/test_files/array/array_pop.slt
index b830fa464a..a72e566b9e 100644
--- a/datafusion/sqllogictest/test_files/array/array_pop.slt
+++ b/datafusion/sqllogictest/test_files/array/array_pop.slt
@@ -22,10 +22,8 @@ include ./init_data.slt.part
 # array_pop_back scalar function with null
 #TODO: https://github.com/apache/datafusion/issues/7142
 # follow clickhouse and duckdb
-#query ?
-#select array_pop_back(null);
-#----
-#NULL
+query error array_pop_back does not support type: Null
+select array_pop_back(null);
 
 # array_pop_back scalar function #1
 query ??
@@ -201,10 +199,8 @@ NULL
 #TODO:https://github.com/apache/datafusion/issues/7142
 # array_pop_front scalar function with null
 # follow clickhouse and duckdb
-#query ?
-#select array_pop_front(null);
-#----
-#NULL
+query error array_pop_front does not support type: Null
+select array_pop_front(null);
 
 # array_pop_front scalar function #1
 query ??
diff --git a/datafusion/sqllogictest/test_files/array/array_position.slt b/datafusion/sqllogictest/test_files/array/array_position.slt
index 07e3d31435..e3dd830dfb 100644
--- a/datafusion/sqllogictest/test_files/array/array_position.slt
+++ b/datafusion/sqllogictest/test_files/array/array_position.slt
@@ -314,10 +314,8 @@ select array_positions([1, 2, 3, 4, 5], null);
 
 #TODO: https://github.com/apache/datafusion/issues/7142
 # array_positions with NULL (follow PostgreSQL)
-#query ?
-#select array_positions(null, 1);
-#----
-#NULL
+query error array_positions does not support type 'Null'
+select array_positions(null, 1);
 
 # array_positions scalar function #1
 query ???
diff --git a/datafusion/sqllogictest/test_files/array/array_prepend.slt b/datafusion/sqllogictest/test_files/array/array_prepend.slt
index 0782680ed2..14b53e93b3 100644
--- a/datafusion/sqllogictest/test_files/array/array_prepend.slt
+++ b/datafusion/sqllogictest/test_files/array/array_prepend.slt
@@ -57,7 +57,6 @@ select array_prepend(null, [[1,2,3]]);
 
 # DuckDB: [[]]
 # ClickHouse: [[]]
-# TODO: We may also return [[]]
 query ?
 select array_prepend([], []);
 ----
diff --git a/datafusion/sqllogictest/test_files/datetime/timestamps.slt b/datafusion/sqllogictest/test_files/datetime/timestamps.slt
index 06740fa0f5..8ba095ef93 100644
--- a/datafusion/sqllogictest/test_files/datetime/timestamps.slt
+++ b/datafusion/sqllogictest/test_files/datetime/timestamps.slt
@@ -1936,10 +1936,8 @@ SELECT '2000-01-01T00:00:00'::timestamp - '2010-01-01T00:00:00'::timestamp;
 -3653 days 0 hours 0 mins 0.000000000 secs
 
 # Interval - Timestamp => error
-# statement error DataFusion error: Error during planning: Cannot coerce arithmetic expression Interval\(MonthDayNano\) \- Timestamp\(Nanosecond, None\) to valid types
-# TODO: This query should raise error
-# query P
-# SELECT i - ts1 from FOO;
+query error Cannot coerce arithmetic expression Interval\(MonthDayNano\) - Timestamp\(ns\) to valid types
+SELECT i - ts1 from FOO;
 
 statement ok
 drop table foo;
diff --git a/datafusion/sqllogictest/test_files/ddl.slt b/datafusion/sqllogictest/test_files/ddl.slt
index 3f2825c09c..e1a48ce5e8 100644
--- a/datafusion/sqllogictest/test_files/ddl.slt
+++ b/datafusion/sqllogictest/test_files/ddl.slt
@@ -200,10 +200,6 @@ SELECT foo_schema.bar.a FROM foo_schema.bar;
 ----
 1
 
-# TODO: Drop schema for cleanup, see #6027
-# statement ok
-# DROP SCHEMA foo_schema;
-
 ##########
 # Drop view error tests
 ##########
diff --git a/datafusion/sqllogictest/test_files/expr.slt b/datafusion/sqllogictest/test_files/expr.slt
index 51b7591b41..7e15b48a0d 100644
--- a/datafusion/sqllogictest/test_files/expr.slt
+++ b/datafusion/sqllogictest/test_files/expr.slt
@@ -67,7 +67,7 @@ statement error Parser error: Invalid timezone "Foo": failed to parse timezone
 SELECT arrow_cast('2021-01-02T03:04:00', 'Timestamp(Nanosecond, Some("Foo"))')
 
 # test_array_index
-query III??IIIIII
+query III??IIIIIIII
 SELECT
     ([5,4,3,2,1])[1],
     ([5,4,3,2,1])[2],
@@ -80,11 +80,11 @@ SELECT
     -- out of bounds
     ([5,4,3,2,1])[0],
     ([5,4,3,2,1])[6],
-    -- ([5,4,3,2,1])[-1], -- TODO: wrong answer
-    -- ([5,4,3,2,1])[null], -- TODO: not supported
+    ([5,4,3,2,1])[-1],
+    ([5,4,3,2,1])[null],
     ([5,4,3,2,1])[100]
 ----
-5 4 1 [1, 2] [3, 4] 1 3 4 NULL NULL NULL
+5 4 1 [1, 2] [3, 4] 1 3 4 NULL NULL 1 NULL NULL
 
 # test_array_literals
 query ?????
@@ -330,7 +330,7 @@ SELECT ascii('222')
 50
 
 query I
-SELECT ascii('0xa') 
+SELECT ascii('0xa')
 ----
 48
 
@@ -561,7 +561,7 @@ NULL
 query T
 SELECT ltrim(' zzzytest ')
 ----
-zzzytest 
+zzzytest
 
 query T
 SELECT ltrim('zzzytest', 'xyz')
@@ -985,17 +985,16 @@ SELECT upper(NULL)
 ----
 NULL
 
-# TODO issue: https://github.com/apache/datafusion/issues/6596
-# query ??
-#SELECT
-#    CAST([1,2,3,4] AS INT[]) as a,
-#    CAST([1,2,3,4] AS NUMERIC(10,4)[]) as b
-#----
-#[1, 2, 3, 4] [1.0000, 2.0000, 3.0000, 4.0000]
+query ??
+SELECT
+    CAST([1,2,3,4] AS INT[]) as a,
+    CAST([1,2,3,4] AS NUMERIC(10,4)[]) as b
+----
+[1, 2, 3, 4] [1.0000, 2.0000, 3.0000, 4.0000]
 
 # test_random_expression
 query BB
-SELECT 
+SELECT
     random() BETWEEN 0.0 AND 1.0,
     random() = random()
 ----
@@ -1978,15 +1977,15 @@ query B
 select column1 <=> column2 from (VALUES (1, 1), (2, 3), (NULL, NULL)) as t;
 ----
 true
-false 
+false
 true
 
 # Sanity test - comparing <=> with equivalent expression
 query B
-SELECT 
-  (column1 <=> column2) = 
+SELECT
+  (column1 <=> column2) =
   (IFNULL(column1, false) = IFNULL(column2, false)) AS comparison_result
-FROM (VALUES 
+FROM (VALUES
   (1, 1),      -- equal values
   (1, 2),      -- different values
   (NULL, NULL), -- both NULL
@@ -2280,20 +2279,20 @@ host3 3.3
 
 # can have an aggregate function with an inner CASE WHEN
 query TR
-select 
-    t2.server_host as host, 
+select
+    t2.server_host as host,
     sum((
-        case when t2.server_host is not null 
+        case when t2.server_host is not null
         then t2.server_load2
         end
-    )) 
+    ))
     from (
-        select 
+        select
             struct(time,load1,load2,host)['c2'] as server_load2,
             struct(time,load1,load2,host)['c3'] as server_host
         from t1
-    ) t2 
-    where server_host IS NOT NULL 
+    ) t2
+    where server_host IS NOT NULL
     group by server_host order by host;
 ----
 host1 101
@@ -2302,19 +2301,19 @@ host3 303
 
 # TODO: Issue tracked in https://github.com/apache/datafusion/issues/10364
 query TR
-select 
-    t2.server['c3'] as host, 
+select
+    t2.server['c3'] as host,
     sum((
-        case when t2.server['c3'] is not null 
+        case when t2.server['c3'] is not null
         then t2.server['c2']
         end
-    )) 
+    ))
     from (
-        select 
+        select
             struct(time,load1,load2,host) as server
         from t1
-    ) t2 
-    where t2.server['c3'] IS NOT NULL 
+    ) t2
+    where t2.server['c3'] IS NOT NULL
     group by t2.server['c3'] order by host;
 ----
 host1 101
@@ -2323,22 +2322,22 @@ host3 303
 
 # can have 2 projections with aggr(short_circuited), with different short-circuited expr
 query TRR
-select 
-    t2.server_host as host, 
+select
+    t2.server_host as host,
     sum(coalesce(server_load1)),
     sum((
-        case when t2.server_host is not null 
+        case when t2.server_host is not null
         then t2.server_load2
         end
-    )) 
+    ))
     from (
-        select 
+        select
             struct(time,load1,load2,host)['c1'] as server_load1,
             struct(time,load1,load2,host)['c2'] as server_load2,
             struct(time,load1,load2,host)['c3'] as server_host
         from t1
-    ) t2 
-    where server_host IS NOT NULL 
+    ) t2
+    where server_host IS NOT NULL
     group by server_host order by host;
 ----
 host1 1.1 101
@@ -2347,43 +2346,43 @@ host3 3.3 303
 
 # TODO: Issue tracked in https://github.com/apache/datafusion/issues/10364
 query error
-select 
-    t2.server['c3'] as host, 
+select
+    t2.server['c3'] as host,
     sum(coalesce(server['c1'])),
     sum((
-        case when t2.server['c3'] is not null 
+        case when t2.server['c3'] is not null
         then t2.server['c2']
         end
-    )) 
+    ))
     from (
-        select 
+        select
             struct(time,load1,load2,host) as server,
         from t1
-    ) t2 
-    where server_host IS NOT NULL 
+    ) t2
+    where server_host IS NOT NULL
     group by server_host order by host;
 
 query TRR
-select 
-    t2.server_host as host, 
+select
+    t2.server_host as host,
     sum((
-        case when t2.server_host is not null 
-        then server_load1 
+        case when t2.server_host is not null
+        then server_load1
         end
-    )), 
+    )),
     sum((
-        case when server_host is not null 
-        then server_load2 
+        case when server_host is not null
+        then server_load2
         end
-    )) 
+    ))
     from (
-        select 
+        select
             struct(time,load1,load2,host)['c1'] as server_load1,
             struct(time,load1,load2,host)['c2'] as server_load2,
             struct(time,load1,load2,host)['c3'] as server_host
         from t1
-    ) t2 
-    where server_host IS NOT NULL 
+    ) t2
+    where server_host IS NOT NULL
     group by server_host order by host;
 ----
 host1 1.1 101
@@ -2392,24 +2391,24 @@ host3 3.3 303
 
 # TODO: Issue tracked in https://github.com/apache/datafusion/issues/10364
 query TRR
-select 
-    t2.server['c3'] as host, 
+select
+    t2.server['c3'] as host,
     sum((
-        case when t2.server['c3'] is not null 
+        case when t2.server['c3'] is not null
         then t2.server['c1']
         end
-    )), 
+    )),
     sum((
-        case when t2.server['c3'] is not null 
+        case when t2.server['c3'] is not null
         then t2.server['c2']
         end
-    )) 
+    ))
     from (
-        select 
-            struct(time,load1,load2,host) as server 
+        select
+            struct(time,load1,load2,host) as server
         from t1
-    ) t2 
-    where t2.server['c3'] IS NOT NULL 
+    ) t2
+    where t2.server['c3'] IS NOT NULL
     group by t2.server['c3'] order by host;
 ----
 host1 1.1 101
diff --git a/datafusion/sqllogictest/test_files/map.slt b/datafusion/sqllogictest/test_files/map.slt
index 2b390c3748..970ae2707d 100644
--- a/datafusion/sqllogictest/test_files/map.slt
+++ b/datafusion/sqllogictest/test_files/map.slt
@@ -579,7 +579,7 @@ SELECT MAP { 'a': 1, 'b': 2, 'c': 3 }['a'];
 
 # accessing map with non-string key in case expression
 query I
-SELECT (CASE WHEN 1 > 0 THEN MAP {'x': 100} ELSE MAP {'y': 200} END)['x']; 
+SELECT (CASE WHEN 1 > 0 THEN MAP {'x': 100} ELSE MAP {'y': 200} END)['x'];
 ----
 100
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org