From 782d86af44a314c8c60d6c017d500f4f214f665b Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 5 Jul 2013 16:02:02 +0200 Subject: MDEV-4257 Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index))' fails on FROM subquery with fulltext search, derived_merge=on remove emtpty Item_func_match::update_used_tables() method --- mysql-test/r/fulltext_derived_4257.result | 6 ++++++ mysql-test/t/fulltext_derived_4257.test | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 mysql-test/r/fulltext_derived_4257.result create mode 100644 mysql-test/t/fulltext_derived_4257.test (limited to 'mysql-test') diff --git a/mysql-test/r/fulltext_derived_4257.result b/mysql-test/r/fulltext_derived_4257.result new file mode 100644 index 00000000000..8479baef388 --- /dev/null +++ b/mysql-test/r/fulltext_derived_4257.result @@ -0,0 +1,6 @@ +set optimizer_switch = 'derived_merge=on'; +create table t1 (c1 char(8), c2 char(8)) engine=myisam; +insert into t1 values ('test1','test2'),('test3','test4'); +select * from (select c1 from t1 where match (c2) against ('hello' in boolean mode)) as alias; +c1 +drop table t1; diff --git a/mysql-test/t/fulltext_derived_4257.test b/mysql-test/t/fulltext_derived_4257.test new file mode 100644 index 00000000000..07626b8b557 --- /dev/null +++ b/mysql-test/t/fulltext_derived_4257.test @@ -0,0 +1,6 @@ +set optimizer_switch = 'derived_merge=on'; +create table t1 (c1 char(8), c2 char(8)) engine=myisam; +insert into t1 values ('test1','test2'),('test3','test4'); +select * from (select c1 from t1 where match (c2) against ('hello' in boolean mode)) as alias; +drop table t1; + -- cgit v1.2.1 From d3157e239a3fc15e68ea90c65ed0b94ebb53fc81 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 5 Jul 2013 17:54:25 +0200 Subject: MDEV-4665 crash when referencing missing function in a subquery don't ignore the return value fix_fields() --- mysql-test/r/sp_missing_4665.result | 6 ++++++ mysql-test/t/sp_missing_4665.test | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 mysql-test/r/sp_missing_4665.result create mode 100644 mysql-test/t/sp_missing_4665.test (limited to 'mysql-test') diff --git a/mysql-test/r/sp_missing_4665.result b/mysql-test/r/sp_missing_4665.result new file mode 100644 index 00000000000..47587c180c6 --- /dev/null +++ b/mysql-test/r/sp_missing_4665.result @@ -0,0 +1,6 @@ +create table t (a int); +create or replace view v as select 1 from t where a; +delete from v where (select g()); +ERROR 42000: FUNCTION test.g does not exist +drop view v; +drop table t; diff --git a/mysql-test/t/sp_missing_4665.test b/mysql-test/t/sp_missing_4665.test new file mode 100644 index 00000000000..19e845e58c7 --- /dev/null +++ b/mysql-test/t/sp_missing_4665.test @@ -0,0 +1,9 @@ +# +# MDEV-4665 crash when referencing missing function in a subquery +# +create table t (a int); +create or replace view v as select 1 from t where a; +--error ER_SP_DOES_NOT_EXIST +delete from v where (select g()); +drop view v; +drop table t; -- cgit v1.2.1 From 58fa29e0ff35b10bbbdf605faf2592a0040214c1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 5 Jul 2013 20:45:42 +0200 Subject: MDEV-4610 SQL query crashes MariaDB with derived_with_keys MDEV-4643 MariaDB crashes consistently when trying a SELECT on VIEW with a UNION and an additional JOIN in SELECT open derived temp tables *before* trying QUICK_SELECT for them, handler::multi_range_read_info() needs an open table. --- mysql-test/r/mrr_derived_crash_4610.result | 19 +++++++++++++++++++ mysql-test/t/mrr_derived_crash_4610.test | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 mysql-test/r/mrr_derived_crash_4610.result create mode 100644 mysql-test/t/mrr_derived_crash_4610.test (limited to 'mysql-test') diff --git a/mysql-test/r/mrr_derived_crash_4610.result b/mysql-test/r/mrr_derived_crash_4610.result new file mode 100644 index 00000000000..8dcdfda9276 --- /dev/null +++ b/mysql-test/r/mrr_derived_crash_4610.result @@ -0,0 +1,19 @@ +create table t1 (f1 char(4) primary key) engine=innodb charset=utf8 ; +insert into t1 values ('aaaa'); +create table t2 (f2 text, f3 char(4) not null) engine=innodb charset=utf8 ; +create table t3 (id int not null) engine=innodb charset=utf8 ; +create table t4 (val int not null) engine=innodb charset=utf8; +explain select 1 from +(select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top +join t1 on f1 = f3 where f3 = 'aaaa' order by val; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 const PRIMARY PRIMARY 12 const 1 Using index; Using filesort +1 PRIMARY ref key0 key0 13 const 0 Using where +2 DERIVED t4 ALL NULL NULL NULL NULL 1 +2 DERIVED t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join) +2 DERIVED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) +select 1 from +(select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top +join t1 on f1 = f3 where f3 = 'aaaa' order by val; +1 +drop table t1, t2, t3, t4; diff --git a/mysql-test/t/mrr_derived_crash_4610.test b/mysql-test/t/mrr_derived_crash_4610.test new file mode 100644 index 00000000000..88882b57cf7 --- /dev/null +++ b/mysql-test/t/mrr_derived_crash_4610.test @@ -0,0 +1,16 @@ +# +# MDEV-4610 SQL query crashes MariaDB with derived_with_keys +# +--source include/have_innodb.inc +create table t1 (f1 char(4) primary key) engine=innodb charset=utf8 ; +insert into t1 values ('aaaa'); +create table t2 (f2 text, f3 char(4) not null) engine=innodb charset=utf8 ; +create table t3 (id int not null) engine=innodb charset=utf8 ; +create table t4 (val int not null) engine=innodb charset=utf8; +explain select 1 from + (select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top + join t1 on f1 = f3 where f3 = 'aaaa' order by val; +select 1 from + (select f2, f3, val, count(id) from t4 join t2 left join t3 on 0) top + join t1 on f1 = f3 where f3 = 'aaaa' order by val; +drop table t1, t2, t3, t4; -- cgit v1.2.1 From 48b403cd65a680c5ea526225cad82a44779d0178 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 6 Jul 2013 15:28:11 +0200 Subject: Bug #69682 - mysqld crashes after uninstall of plugin with "first" status var --- mysql-test/r/fulltext_plugin.result | 2 ++ mysql-test/t/fulltext_plugin.test | 6 ++++++ 2 files changed, 8 insertions(+) (limited to 'mysql-test') diff --git a/mysql-test/r/fulltext_plugin.result b/mysql-test/r/fulltext_plugin.result index 69ebbe07e9e..2c104c98676 100644 --- a/mysql-test/r/fulltext_plugin.result +++ b/mysql-test/r/fulltext_plugin.result @@ -3,3 +3,5 @@ CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a) WITH PARSER simple_parser); ALTER TABLE t1 ADD FULLTEXT(b) WITH PARSER simple_parser; DROP TABLE t1; UNINSTALL PLUGIN simple_parser; +show status like 'a%status'; +Variable_name Value diff --git a/mysql-test/t/fulltext_plugin.test b/mysql-test/t/fulltext_plugin.test index 0e2f53d5b15..e9b4343e0dc 100644 --- a/mysql-test/t/fulltext_plugin.test +++ b/mysql-test/t/fulltext_plugin.test @@ -9,3 +9,9 @@ CREATE TABLE t1(a TEXT, b TEXT, FULLTEXT(a) WITH PARSER simple_parser); ALTER TABLE t1 ADD FULLTEXT(b) WITH PARSER simple_parser; DROP TABLE t1; UNINSTALL PLUGIN simple_parser; + +# +# Bug #69682 - mysqld crashes after uninstall of plugin with "first" status var +# +show status like 'a%status'; + -- cgit v1.2.1