This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 1c1a78a0a4 chore: cleanup some TODO items in sqllogictests (#23382)
1c1a78a0a4 is described below
commit 1c1a78a0a424f88a8170f721bd23e142738a8fb3
Author: Jeffrey Vo <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]