diff options
author | Sergei Golubchik <serg@mariadb.org> | 2018-05-14 16:44:03 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2018-05-15 12:10:48 +0200 |
commit | 445ac662c369756c7465d687e40225ffcce28e74 (patch) | |
tree | 271583118007b7eb036a3fd982572ce9d824972e /mysql-test/t | |
parent | 93efa48a7b972fc463406603574a4d508eefe792 (diff) | |
download | mariadb-git-445ac662c369756c7465d687e40225ffcce28e74.tar.gz |
MDEV-15755 Query crashing MariaDB in cleanup_after_query
set the pointer to NULL to avoid double-free
when the item is cleaned up many times
(once in JOIN_TAB::cleanup(): tmp->jtbm_subselect->cleanup()
and once at the end of the query, with all other items)
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/subselect-crash_15755.test | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/mysql-test/t/subselect-crash_15755.test b/mysql-test/t/subselect-crash_15755.test new file mode 100644 index 00000000000..79e259d6337 --- /dev/null +++ b/mysql-test/t/subselect-crash_15755.test @@ -0,0 +1,60 @@ +--source include/have_innodb.inc +set global innodb_stats_persistent= 1; +drop table if exists t1; +create table t1 ( + f1 bigint(20) default 0, + f2 varchar(50) default '', + f3 int(10) default 0, + f4 bigint(20) default 0, + f5 bigint(20) default 0, + f6 varchar(50) default '', + f7 varchar(64) default '', + f8 varchar(30) default '', + f9 varchar(30) default '', + f10 bigint(20) default 0, + f11 bigint(20) default 0, + f12 bigint(20) default 0, + f13 bigint(20) default 0, + f14 varchar(50) default '', + f15 varchar(100) default '', + f16 varchar(30) default '', + f17 varchar(40) default '', + f18 varchar(30) default '', + f19 varchar(10) default '', + f20 varchar(30) default '', + f21 int(10) default 0, + f22 int(10) default 0, + f23 int(10) default 0, + f24 int(10) default 0, + f25 varchar(20) default '', + f26 varchar(20) default '', + f27 varchar(100) default '', + f28 varchar(55) default '', + f29 varchar(20) default '', + f30 varchar(100) default '', + f31 varchar(30) default '', + f32 varchar(20) default '', + f33 int(10) default 0, + f34 int(10) default 0, + f35 varchar(30) default '', + f36 varchar(30) default '', + f37 varchar(30) default '', + f38 varchar(20) default '', + f39 tinyint(4) default 0, + f40 tinyint(4) default 0, + f41 bigint(20) default 0, + f42 varchar(50) default '', + f43 varchar(50) default '', + f44 varchar(50) default '', + f45 int(10) default 0, + f46 tinyint(1) default 0 +) engine=innodb row_format=dynamic; + +insert into t1 () values (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +insert into t1 select * from t1; +select * from t1 where f2 in (select f2 from t1 group by f2 having count(distinct f3) = 1); +drop table t1; +set global innodb_stats_persistent= 0; |