mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Fixed bug mdev-10881
The server missed to call check_dependencies_in_with_clauses() when processing PREPARE ... FROM CREATE ... SELECT / INSERT ... SELECT with WITH clause before SELECT.
This commit is contained in:
@@ -1633,6 +1633,66 @@ id name dob father mother
|
||||
8 Grandpa Ben 1940-10-21 NULL NULL
|
||||
6 Grandgrandma Martha 1923-05-17 NULL NULL
|
||||
deallocate prepare stmt;
|
||||
#
|
||||
# MDEV-10881: execution of prepared statement from
|
||||
# CREATE ... SELECT, INSERT ... SELECT
|
||||
#
|
||||
prepare stmt from"
|
||||
create table my_ancestors
|
||||
with recursive
|
||||
ancestor_ids (id)
|
||||
as
|
||||
(
|
||||
select father from folks where name = 'Me'
|
||||
union
|
||||
select mother from folks where name = 'Me'
|
||||
union
|
||||
select father from folks, ancestor_ids a where folks.id = a.id
|
||||
union
|
||||
select mother from folks, ancestor_ids a where folks.id = a.id
|
||||
)
|
||||
select p.* from folks as p, ancestor_ids as a where p.id = a.id;
|
||||
";
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
select * from my_ancestors;
|
||||
id name dob father mother
|
||||
20 Dad 1970-02-02 10 9
|
||||
30 Mom 1975-03-03 8 7
|
||||
10 Grandpa Bill 1940-04-05 NULL NULL
|
||||
9 Grandma Ann 1941-10-15 NULL NULL
|
||||
7 Grandma Sally 1943-08-23 NULL 6
|
||||
8 Grandpa Ben 1940-10-21 NULL NULL
|
||||
6 Grandgrandma Martha 1923-05-17 NULL NULL
|
||||
delete from my_ancestors;
|
||||
prepare stmt from"
|
||||
insert into my_ancestors
|
||||
with recursive
|
||||
ancestor_ids (id)
|
||||
as
|
||||
(
|
||||
select father from folks where name = 'Me'
|
||||
union
|
||||
select mother from folks where name = 'Me'
|
||||
union
|
||||
select father from folks, ancestor_ids a where folks.id = a.id
|
||||
union
|
||||
select mother from folks, ancestor_ids a where folks.id = a.id
|
||||
)
|
||||
select p.* from folks as p, ancestor_ids as a where p.id = a.id;
|
||||
";
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
select * from my_ancestors;
|
||||
id name dob father mother
|
||||
20 Dad 1970-02-02 10 9
|
||||
30 Mom 1975-03-03 8 7
|
||||
10 Grandpa Bill 1940-04-05 NULL NULL
|
||||
9 Grandma Ann 1941-10-15 NULL NULL
|
||||
7 Grandma Sally 1943-08-23 NULL 6
|
||||
8 Grandpa Ben 1940-10-21 NULL NULL
|
||||
6 Grandgrandma Martha 1923-05-17 NULL NULL
|
||||
drop table my_ancestors;
|
||||
drop table folks;
|
||||
#
|
||||
# MDEV-10372: [bb-10.2-mdev9864 tree] EXPLAIN with recursive CTE enters endless recursion
|
||||
|
||||
Reference in New Issue
Block a user