Skip to content

Commit

Permalink
main.subselect* often fails on CI with ER_SUBQUERY_NO_1_ROW
Browse files Browse the repository at this point in the history
Using mysql.slow_log was a test table would generate more than
one row if there was more than one row in the table.

Replace this table with a empty table with PK.

Reviewer: Rex Johnston
  • Loading branch information
grooverdan committed Nov 30, 2023
1 parent cd79f10 commit 2fe3e03
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 35 deletions.
13 changes: 8 additions & 5 deletions mysql-test/main/subselect.result
Original file line number Diff line number Diff line change
Expand Up @@ -7163,24 +7163,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7193,6 +7195,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect.test
Original file line number Diff line number Diff line change
Expand Up @@ -5995,25 +5995,27 @@ drop table t1;
--echo # MDEV-7565: Server crash with Signal 6 (part 2)
--echo #

truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
drop table t1;

--echo #
--echo # MDEV-7445:Server crash with Signal 6
--echo #

create table t1 (id int not null primary key);
--delimiter |
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -6025,6 +6027,7 @@ call procedure2();
call procedure2();

drop procedure procedure2;
drop table t1;


--echo #
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect_no_exists_to_in.result
Original file line number Diff line number Diff line change
Expand Up @@ -7163,24 +7163,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7193,6 +7195,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect_no_mat.result
Original file line number Diff line number Diff line change
Expand Up @@ -7156,24 +7156,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7186,6 +7188,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect_no_opts.result
Original file line number Diff line number Diff line change
Expand Up @@ -7154,24 +7154,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7184,6 +7186,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect_no_scache.result
Original file line number Diff line number Diff line change
Expand Up @@ -7169,24 +7169,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7199,6 +7201,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down
13 changes: 8 additions & 5 deletions mysql-test/main/subselect_no_semijoin.result
Original file line number Diff line number Diff line change
Expand Up @@ -7154,24 +7154,26 @@ drop table t1;
#
# MDEV-7565: Server crash with Signal 6 (part 2)
#
truncate table mysql.slow_log;
create table t1 (id int not null primary key);
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Group By TestCase.Revenue, TestCase.TemplateID;
ControlRev
NULL
drop table t1;
#
# MDEV-7445:Server crash with Signal 6
#
create table t1 (id int not null primary key);
CREATE PROCEDURE procedure2()
BEGIN
Select
(Select Sum(`TestCase`.Revenue) From mysql.slow_log E
Where TestCase.TemplateID not in (Select 1 from mysql.slow_log where 2=2)
(Select Sum(`TestCase`.Revenue) From t1 E
Where TestCase.TemplateID not in (Select 1 from t1 where 2=2)
) As `ControlRev`
From
(Select 3 as Revenue, 4 as TemplateID) As `TestCase`
Expand All @@ -7184,6 +7186,7 @@ call procedure2();
ControlRev
NULL
drop procedure procedure2;
drop table t1;
#
# MDEV-7846:Server crashes in Item_subselect::fix
#_fields or fails with Thread stack overrun
Expand Down

0 comments on commit 2fe3e03

Please sign in to comment.