should be it
This commit is contained in:
96
external/duckdb/test/sql/subquery/scalar/array_subquery.test
vendored
Normal file
96
external/duckdb/test/sql/subquery/scalar/array_subquery.test
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
# name: test/sql/subquery/scalar/array_subquery.test
|
||||
# description: Test ARRAY subquery
|
||||
# group: [scalar]
|
||||
|
||||
statement ok
|
||||
SET default_null_order='nulls_first';
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER);
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (1), (2), (3), (NULL);
|
||||
|
||||
# uncorrelated
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT 42
|
||||
) top
|
||||
FROM integers i1
|
||||
ORDER BY i
|
||||
----
|
||||
NULL [42]
|
||||
1 [42]
|
||||
2 [42]
|
||||
3 [42]
|
||||
|
||||
# single element
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT i FROM integers WHERE i1.i=i
|
||||
) top
|
||||
FROM integers i1
|
||||
ORDER BY i
|
||||
----
|
||||
NULL []
|
||||
1 [1]
|
||||
2 [2]
|
||||
3 [3]
|
||||
|
||||
# multiple elements
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT i FROM integers WHERE i>i1.i ORDER BY i ASC NULLS FIRST
|
||||
) top
|
||||
FROM integers i1
|
||||
ORDER BY i
|
||||
----
|
||||
NULL []
|
||||
1 [2, 3]
|
||||
2 [3]
|
||||
3 []
|
||||
|
||||
# array with limit
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT i1.i FROM integers i1, integers i2, integers i3, integers i4 WHERE i1.i=integers.i LIMIT 3
|
||||
) top
|
||||
FROM integers
|
||||
ORDER BY i
|
||||
----
|
||||
NULL []
|
||||
1 [1, 1, 1]
|
||||
2 [2, 2, 2]
|
||||
3 [3, 3, 3]
|
||||
|
||||
# array with limit and offset
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT i1.i FROM integers i1, integers i2, integers i3, integers i4 WHERE i1.i=integers.i LIMIT 3 OFFSET 3
|
||||
) top
|
||||
FROM integers
|
||||
ORDER BY i
|
||||
----
|
||||
NULL []
|
||||
1 [1, 1, 1]
|
||||
2 [2, 2, 2]
|
||||
3 [3, 3, 3]
|
||||
|
||||
# offset on the edge
|
||||
query II
|
||||
SELECT i, ARRAY(
|
||||
SELECT i1.i FROM integers i1, integers i2, integers i3, integers i4 WHERE i1.i=integers.i LIMIT 3 OFFSET 62
|
||||
) top
|
||||
FROM integers
|
||||
ORDER BY i
|
||||
----
|
||||
NULL []
|
||||
1 [1, 1]
|
||||
2 [2, 2]
|
||||
3 [3, 3]
|
||||
|
||||
# should only allow one column in array subquery
|
||||
statement error
|
||||
select array(select 1,2)
|
||||
----
|
||||
<REGEX>:.*inder Error.*Subquery returns 2 columns.*
|
||||
Reference in New Issue
Block a user