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

121 lines
2.2 KiB
SQL

# name: test/sql/cte/recursive_hang_2745.test
# description: Issue #2745: sql with RECURSIVE keyword but does not RECURSIVE hang
# group: [cte]
statement ok
PRAGMA enable_verification
query III
with RECURSIVE parents_tab (id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents_tab2(id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents as (
select * from parents_tab
union all
select id, value+2, parent from parents_tab2
)
select * from parents order by id, value, parent;
----
1 1 2
1 3 2
2 2 4
2 4 4
3 1 4
3 3 4
4 2 -1
4 4 -1
5 1 2
5 3 2
6 2 7
6 4 7
7 1 -1
7 3 -1
query III
with RECURSIVE parents_tab (id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents_tab2(id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
)
select * from parents_tab
union all
select id, value+2, parent from parents_tab2 ORDER BY id, value, parent;
----
1 1 2
1 3 2
2 2 4
2 4 4
3 1 4
3 3 4
4 2 -1
4 4 -1
5 1 2
5 3 2
6 2 7
6 4 7
7 1 -1
7 3 -1
query III
with parents_tab (id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents_tab2(id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents as (
select * from parents_tab
union all
select id, value+2, parent from parents_tab2
)
select * from parents ORDER BY id, value, parent;
----
1 1 2
1 3 2
2 2 4
2 4 4
3 1 4
3 3 4
4 2 -1
4 4 -1
5 1 2
5 3 2
6 2 7
6 4 7
7 1 -1
7 3 -1
statement ok
create view vparents as
with RECURSIVE parents_tab (id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
),
parents_tab2(id , value , parent )
as (values (1, 1, 2), (2, 2, 4), (3, 1, 4), (4, 2, -1), (5, 1, 2), (6, 2, 7), (7, 1, -1)
)
select * from parents_tab
union all
select id, value+2, parent from parents_tab2;
query III rowsort
select * from vparents;
----
1 1 2
1 3 2
2 2 4
2 4 4
3 1 4
3 3 4
4 2 -1
4 4 -1
5 1 2
5 3 2
6 2 7
6 4 7
7 1 -1
7 3 -1