Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL)
-
None
Description
MariaDB [test]> set big_tables=0;
|
Query OK, 0 rows affected (0.00 sec)
|
|
MariaDB [test]> with recursive qn as (select 123 as a union all select 1+a from qn where a<130) select * from qn;
|
+-----+
|
| a |
|
+-----+
|
| 123 |
|
| 124 |
|
| 125 |
|
| 126 |
|
| 127 |
|
| 128 |
|
| 129 |
|
| 130 |
|
+-----+
|
8 rows in set (0.00 sec)
|
|
MariaDB [test]> set big_tables=1;
|
Query OK, 0 rows affected (0.00 sec)
|
|
MariaDB [test]> with recursive qn as (select 123 as a union all select 1+a from qn where a<130) select * from qn;
|
+-----+
|
| a |
|
+-----+
|
| 123 |
|
| 124 |
|
+-----+
|
2 rows in set (0.00 sec)
|
|
Attachments
Issue Links
- relates to
-
MDEV-15447 Import CTE tests from MySQL 8
-
- Stalled
-
Activity
Field | Original Value | New Value |
---|---|---|
Link | This issue relates to MDEV-15447 [ MDEV-15447 ] |
Assignee | Igor Babaev [ igor ] |
Description |
{noformat}
MariaDB [test]> set big_tables=0; Query OK, 0 rows affected (0.00 sec) MariaDB [test]> with recursive qn as -> (select 1 as a from dual group by a union all -> select a+1 from qn where a<3) -> select * from qn; +---+ | a | +---+ | 1 | | 2 | | 3 | +---+ 3 rows in set (0.00 sec) MariaDB [test]> set big_tables=1; Query OK, 0 rows affected (0.00 sec) MariaDB [test]> with recursive qn as (select 1 as a from dual group by a union all select a+1 from qn where a<3) select * from qn; +---+ | a | +---+ | 1 | | 2 | +---+ 2 rows in set (0.00 sec) {noformat} |
{noformat}
MariaDB [test]> set big_tables=0; Query OK, 0 rows affected (0.00 sec) MariaDB [test]> with recursive qn as (select 123 as a union all select 1+a from qn where a<130) select * from qn; +-----+ | a | +-----+ | 123 | | 124 | | 125 | | 126 | | 127 | | 128 | | 129 | | 130 | +-----+ 8 rows in set (0.00 sec) MariaDB [test]> set big_tables=1; Query OK, 0 rows affected (0.00 sec) MariaDB [test]> with recursive qn as (select 123 as a union all select 1+a from qn where a<130) select * from qn; +-----+ | a | +-----+ | 123 | | 124 | +-----+ 2 rows in set (0.00 sec) {noformat} |
Fix Version/s | 10.2.15 [ 23006 ] | |
Fix Version/s | 10.2 [ 14601 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Resolution | Fixed [ 1 ] | |
Status | Closed [ 6 ] | Stalled [ 10000 ] |
Affects Version/s | 10.3 [ 22126 ] |
Fix Version/s | 10.3.7 [ 23005 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Fix Version/s | 10.3.7 [ 23005 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Resolution | Fixed [ 1 ] | |
Status | Closed [ 6 ] | Stalled [ 10000 ] |
Fix Version/s | 10.3.7 [ 23005 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 86050 ] | MariaDB v4 [ 153964 ] |
This bug also can be reproduced with the following test case:
create table folks(id int, name char(32), dob date, father int, mother int);
insert into folks values
(100, 'Me', '2000-01-01', 20, 30),
(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),
(25, 'Uncle Jim', '1968-11-18', 8, 7),
(98, 'Sister Amy', '2001-06-20', 20, 30),
(7, 'Grandma Sally', '1943-08-23', null, 6),
(8, 'Grandpa Ben', '1940-10-21', null, null),
(6, 'Grandgrandma Martha', '1923-05-17', null, null),
(67, 'Cousin Eddie', '1992-02-28', 25, 27),
(27, 'Auntie Melinda', '1971-03-29', null, null);
set big_tables=0;
with recursive
ancestors
as
(
select *
from folks
where name = 'Me' and dob = '2000-01-01'
union
select p.id, p.name, p.dob, p.father, p.mother
from folks as p, ancestors AS a
where p.id = a.father or p.id = a.mother
)
select * from ancestors;
set big_tables=1;
with recursive
ancestors
as
(
select *
from folks
where name = 'Me' and dob = '2000-01-01'
union
select p.id, p.name, p.dob, p.father, p.mother
from folks as p, ancestors AS a
where p.id = a.father or p.id = a.mother
)
select * from ancestors;
MariaDB [test]> set big_tables=0;
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> with recursive
-> ancestors
-> as
-> (
-> select *
-> from folks
-> where name = 'Me' and dob = '2000-01-01'
-> union
-> select p.id, p.name, p.dob, p.father, p.mother
-> from folks as p, ancestors AS a
-> where p.id = a.father or p.id = a.mother
-> )
-> select * from ancestors;
+------+---------------------+------------+--------+--------+
| id | name | dob | father | mother |
+------+---------------------+------------+--------+--------+
| 100 | Me | 2000-01-01 | 20 | 30 |
| 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 |
+------+---------------------+------------+--------+--------+
8 rows in set (0.00 sec)
MariaDB [test]> set big_tables=1;
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> with recursive
-> ancestors
-> as
-> (
-> select *
-> from folks
-> where name = 'Me' and dob = '2000-01-01'
-> union
-> select p.id, p.name, p.dob, p.father, p.mother
-> from folks as p, ancestors AS a
-> where p.id = a.father or p.id = a.mother
-> )
-> select * from ancestors;
+------+------+------------+--------+--------+
| id | name | dob | father | mother |
+------+------+------------+--------+--------+
| 100 | Me | 2000-01-01 | 20 | 30 |
| 20 | Dad | 1970-02-02 | 10 | 9 |
| 30 | Mom | 1975-03-03 | 8 | 7 |
+------+------+------------+--------+--------+
3 rows in set (0.00 sec)