Files
email-tracker/external/duckdb/test/sql/setops/union_limit.test
2025-10-24 19:21:19 -05:00

195 lines
3.3 KiB
SQL

# name: test/sql/setops/union_limit.test
# description: Test union limit
# group: [setops]
statement ok
PRAGMA enable_verification
query I
SELECT 1 UNION ALL SELECT * FROM range(2, 100) UNION ALL SELECT 999 LIMIT 5;
----
1
2
3
4
5
query I
SELECT 'select count(case'a union all select 'when a='||range||' then 1' from range(100) LIMIT 5;
----
select count(case
when a=0 then 1
when a=1 then 1
when a=2 then 1
when a=3 then 1
query I
SELECT STRING_AGG(a, ' ') FROM (SELECT 'select count(case'a union all select 'when a='||range||' then 1' from range(2) union all select 'end) from t') tbl;
----
select count(case when a=0 then 1 when a=1 then 1 end) from t
query I
SELECT 'select count(case'a union all select 'when a='||range||' then 1' from range(2) union all select 'end) from t' LIMIT 5;
----
select count(case
when a=0 then 1
when a=1 then 1
end) from t
query I
SELECT 'select count(case'a union all select 'when a='||range||' then 1' from range(100) union all select 'end) from t' LIMIT 5;
----
select count(case
when a=0 then 1
when a=1 then 1
when a=2 then 1
when a=3 then 1
query I
SELECT 1
UNION ALL
(
SELECT * FROM generate_series(10, 12, 1)
UNION ALL
(
SELECT * FROM generate_series(100, 103, 1)
)
UNION ALL
SELECT * FROM generate_series(1000, 1002, 1)
)
UNION ALL
SELECT * FROM generate_series(10000, 10002, 1)
UNION ALL
(
SELECT * FROM generate_series(100000, 100002, 1)
UNION ALL
SELECT * FROM generate_series(1000000, 1000003, 1)
);
----
1
10
11
12
100
101
102
103
1000
1001
1002
10000
10001
10002
100000
100001
100002
1000000
1000001
1000002
1000003
query I
SELECT ARRAY_AGG(1)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(10, 12, 1) tbl(i)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(100, 103, 1) tbl(i)
)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(1000, 1002, 1) tbl(i)
)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(10000, 10002, 1) tbl(i)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(100000, 100002, 1) tbl(i)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(1000000, 1000003, 1) tbl(i)
);
----
[1]
[10, 11, 12]
[100, 101, 102, 103]
[1000, 1001, 1002]
[10000, 10001, 10002]
[100000, 100001, 100002]
[1000000, 1000001, 1000002, 1000003]
query I
SELECT 1
UNION ALL
(
SELECT * FROM generate_series(10, 12, 1)
UNION ALL
(
SELECT * FROM generate_series(100, 103, 1)
)
UNION ALL
SELECT * FROM generate_series(1000, 1002, 1)
)
UNION ALL
SELECT * FROM generate_series(10000, 10002, 1)
UNION ALL
(
SELECT * FROM generate_series(100000, 100002, 1)
UNION ALL
SELECT * FROM generate_series(1000000, 1000003, 1)
)
LIMIT 1000;
----
1
10
11
12
100
101
102
103
1000
1001
1002
10000
10001
10002
100000
100001
100002
1000000
1000001
1000002
1000003
query I
SELECT ARRAY_AGG(1)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(10, 12, 1) tbl(i)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(100, 103, 1) tbl(i)
)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(1000, 1002, 1) tbl(i)
)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(10000, 10002, 1) tbl(i)
UNION ALL
(
SELECT ARRAY_AGG(i) FROM generate_series(100000, 100002, 1) tbl(i)
UNION ALL
SELECT ARRAY_AGG(i) FROM generate_series(1000000, 1000003, 1) tbl(i)
)
LIMIT 1000;
----
[1]
[10, 11, 12]
[100, 101, 102, 103]
[1000, 1001, 1002]
[10000, 10001, 10002]
[100000, 100001, 100002]
[1000000, 1000001, 1000002, 1000003]