should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
# name: test/sql/subquery/table/test_aliasing.test
# description: Aliasing and aggregation in subqueries
# group: [table]
statement ok
PRAGMA enable_verification
statement ok
create table a(i integer)
statement ok
insert into a values (42)
query I
select * from (select i as j from a group by j) sq1 where j = 42
----
42
query I
select * from (select i as j from a group by i) sq1 where j = 42
----
42

View File

@@ -0,0 +1,27 @@
# name: test/sql/subquery/table/test_nested_table_subquery.test_slow
# description: Nested table subquery
# group: [table]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE test (i INTEGER, j INTEGER)
statement ok
INSERT INTO test VALUES (3, 4), (4, 5), (5, 6);
query IIIIII
SELECT * FROM (SELECT i, j FROM (SELECT j AS i, i AS j FROM (SELECT j AS i, i AS j FROM test) AS a) AS a) AS a, (SELECT i+1 AS r,j FROM test) AS b, test WHERE a.i=b.r AND test.j=a.i ORDER BY 1;
----
4 5 4 4 3 4
5 6 5 5 4 5
# 100 nesting levels
query I
SELECT i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM (SELECT i + 1 AS i FROM test) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a) AS a;
----
103
104
105

View File

@@ -0,0 +1,13 @@
# name: test/sql/subquery/table/test_subquery_union.test
# description: UNIONS of subqueries
# group: [table]
statement ok
PRAGMA enable_verification
query I
select * from (select 42) sq1 union all select * from (select 43) sq2;
----
42
43

View File

@@ -0,0 +1,54 @@
# name: test/sql/subquery/table/test_table_subquery.test
# description: Table subquery
# group: [table]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE test (i INTEGER, j INTEGER)
statement ok
INSERT INTO test VALUES (3, 4), (4, 5), (5, 6);
query II
SELECT * FROM (SELECT i, j AS d FROM test ORDER BY i) AS b;
----
3 4
4 5
5 6
# check column names for simple projections and aliases
query I
SELECT b.d FROM (SELECT i * 2 + j AS d FROM test) AS b;
----
10
13
16
# join with subqueries
query IIII
SELECT a.i,a.j,b.r,b.j FROM (SELECT i, j FROM test) AS a INNER JOIN (SELECT i+1 AS r,j FROM test) AS b ON a.i=b.r ORDER BY 1;
----
4 5 4 4
5 6 5 5
# check that * is in the correct order
query IIIIII
SELECT * FROM (SELECT i, j FROM test) AS a, (SELECT i+1 AS r,j FROM test) AS b, test WHERE a.i=b.r AND test.j=a.i ORDER BY 1;
----
4 5 4 4 3 4
5 6 5 5 4 5
# subquery group cols are visible
query R
select sum(x) from (select i as x from test group by i) sq;
----
12.000000
# subquery group aliases are visible
query R
select sum(x) from (select i+1 as x from test group by x) sq;
----
15.000000

View File

@@ -0,0 +1,45 @@
# name: test/sql/subquery/table/test_unnamed_subquery.test
# description: Test unnamed subqueries
# group: [table]
statement ok
PRAGMA enable_verification
query I
SELECT a FROM (SELECT 42 a)
----
42
query II
SELECT * FROM (SELECT 42 a), (SELECT 43 b)
----
42 43
query II
SELECT * FROM (VALUES (42, 43))
----
42 43
# longer chains
query IIII
SELECT * FROM (SELECT 42 a), (SELECT 43 b), (SELECT 44 c), (SELECT 45 d)
----
42 43 44 45
# nested
query IIII
SELECT * FROM (FROM (SELECT 42 a), (SELECT 43 b)) JOIN (SELECT 44 c) ON (true) JOIN (SELECT 45 d) ON (true)
----
42 43 44 45
# names are predictable
query II
SELECT * FROM (SELECT unnamed_subquery.a FROM (SELECT 42 a)), (SELECT unnamed_subquery.b FROM (SELECT 43 b))
----
42 43
# names are predictable
query II
SELECT unnamed_subquery.a, unnamed_subquery2.b FROM (SELECT 42 a), (SELECT 43 b)
----
42 43