diff options
author | Sergei Golubchik <serg@mariadb.org> | 2015-04-28 13:57:21 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2015-04-28 13:57:21 +0200 |
commit | fbab0685a7b7f39db0217823ad90dd47034eae29 (patch) | |
tree | 11baae52acdb6c3300d8fe37eb804920ac172960 | |
parent | 67a3ddf17abfd182b99e16cc539dc72be5da707b (diff) | |
download | mariadb-git-fbab0685a7b7f39db0217823ad90dd47034eae29.tar.gz |
post-merge changes, fixes, and tests
-rw-r--r-- | mysql-test/r/blackhole.result | 7 | ||||
-rw-r--r-- | mysql-test/r/group_by.result | 10 | ||||
-rw-r--r-- | mysql-test/r/sp-destruct.result | 4 | ||||
-rw-r--r-- | mysql-test/t/blackhole.test | 10 | ||||
-rw-r--r-- | mysql-test/t/group_by.test | 11 | ||||
-rw-r--r-- | mysql-test/t/sp-destruct.test | 8 | ||||
-rw-r--r-- | sql/item.h | 4 | ||||
-rw-r--r-- | sql/mysqld.cc | 5 | ||||
-rw-r--r-- | sql/sp.cc | 9 |
9 files changed, 55 insertions, 13 deletions
diff --git a/mysql-test/r/blackhole.result b/mysql-test/r/blackhole.result index 317070ca08e..1e8ea3888d1 100644 --- a/mysql-test/r/blackhole.result +++ b/mysql-test/r/blackhole.result @@ -8,4 +8,11 @@ CREATE TABLE t2 (a INT UNSIGNED, b INT, UNIQUE KEY (a, b)) ENGINE=BLACKHOLE; SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2); 1 DROP TABLE t1, t2; +create temporary table t1 (a int) engine=blackhole; +lock table t1 write; +truncate table t1; +select * from t1; +a +unlock tables; +drop temporary table t1; End of 5.5 tests diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 32f7d61319b..1518a2f8982 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -2339,6 +2339,16 @@ MIN(a) b 0 a DROP TABLE t1; +create table t1 (a int, b int); +insert into t1 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45); +create table t2 (c int, d int); +insert into t2 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45); +select distinct a,sum(b), (select d from t2 where c=a order by max(b) limit 1) from t1 group by a order by max(b); +a sum(b) (select d from t2 where c=a order by max(b) limit 1) +1 23 11 +2 45 22 +4 89 44 +drop table t1, t2; # # LP bug#993726 Wrong result from a query with ALL subquery predicate in WHERE # diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result index a529a62680b..2dac0270ce1 100644 --- a/mysql-test/r/sp-destruct.result +++ b/mysql-test/r/sp-destruct.result @@ -170,3 +170,7 @@ Error 1548 Cannot load from mysql.proc. The table is probably corrupted # Restore mysql.proc DROP TABLE mysql.proc; RENAME TABLE proc_backup TO mysql.proc; +create database mysqltest1; +create procedure mysqltest1.foo() select "foo"; +update mysql.proc set name='' where db='mysqltest1'; +drop database mysqltest1; diff --git a/mysql-test/t/blackhole.test b/mysql-test/t/blackhole.test index 1451f7606e0..ca8ab6deb59 100644 --- a/mysql-test/t/blackhole.test +++ b/mysql-test/t/blackhole.test @@ -17,5 +17,15 @@ SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2); DROP TABLE t1, t2; +# +# Bug#19786309 - CRASH IN UNLOCK TABLES AFTER LOCKING AND TRUNCATING TEMPORARY TABLE. +# +create temporary table t1 (a int) engine=blackhole; +lock table t1 write; +truncate table t1; +select * from t1; +unlock tables; +drop temporary table t1; + --echo End of 5.5 tests diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test index a1f7f693c21..e5beeef17fe 100644 --- a/mysql-test/t/group_by.test +++ b/mysql-test/t/group_by.test @@ -1516,6 +1516,17 @@ let $query= SELECT MIN(a), b FROM t1 WHERE t1.b = 'a' GROUP BY b; --echo DROP TABLE t1; + +# +# Bug#19880368 : GROUP_CONCAT CRASHES AFTER DUMP_LEAF_KEY +# +create table t1 (a int, b int); +insert into t1 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45); +create table t2 (c int, d int); +insert into t2 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45); +select distinct a,sum(b), (select d from t2 where c=a order by max(b) limit 1) from t1 group by a order by max(b); +drop table t1, t2; + --echo # --echo # LP bug#993726 Wrong result from a query with ALL subquery predicate in WHERE --echo # diff --git a/mysql-test/t/sp-destruct.test b/mysql-test/t/sp-destruct.test index 75eeda8e289..3a2e9259938 100644 --- a/mysql-test/t/sp-destruct.test +++ b/mysql-test/t/sp-destruct.test @@ -281,3 +281,11 @@ DROP DATABASE db1; --echo # Restore mysql.proc DROP TABLE mysql.proc; RENAME TABLE proc_backup TO mysql.proc; + +# +# BUG#19875331 - HANDLE_FATAL_SIGNAL 11 IN STRMAKE +# +create database mysqltest1; +create procedure mysqltest1.foo() select "foo"; +update mysql.proc set name='' where db='mysqltest1'; +drop database mysqltest1; diff --git a/sql/item.h b/sql/item.h index 458db5e0174..ac4fa866349 100644 --- a/sql/item.h +++ b/sql/item.h @@ -4103,11 +4103,7 @@ public: collation.set(item->collation); unsigned_flag= item->unsigned_flag; if (item->type() == FIELD_ITEM) - { cached_field= ((Item_field *)item)->field; - if (cached_field->table) - used_table_map= cached_field->table->map; - } return 0; }; enum Type type() const { return CACHE_ITEM; } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 9d1ba6c66fd..b3c33c2e46a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3607,8 +3607,9 @@ static int init_common_variables() return 1; set_server_version(); - sql_print_information("%s (mysqld %s) starting as process %lu ...", - my_progname, server_version, (ulong) getpid()); + if (!opt_help) + sql_print_information("%s (mysqld %s) starting as process %lu ...", + my_progname, server_version, (ulong) getpid()); #ifndef EMBEDDED_LIBRARY if (opt_abort && !opt_verbose) diff --git a/sql/sp.cc b/sql/sp.cc index 873812c19b3..254c9c5a101 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -1495,13 +1495,8 @@ bool lock_db_routines(THD *thd, char *db) { char *sp_name= get_field(thd->mem_root, table->field[MYSQL_PROC_FIELD_NAME]); - if (sp_name == NULL) - { - table->file->ha_index_end(); - my_error(ER_SP_WRONG_NAME, MYF(0), ""); - close_system_tables(thd, &open_tables_state_backup); - DBUG_RETURN(true); - } + if (sp_name == NULL) // skip invalid sp names (hand-edited mysql.proc?) + continue; longlong sp_type= table->field[MYSQL_PROC_MYSQL_TYPE]->val_int(); MDL_request *mdl_request= new (thd->mem_root) MDL_request; |