summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2015-04-28 13:57:21 +0200
committerSergei Golubchik <serg@mariadb.org>2015-04-28 13:57:21 +0200
commitfbab0685a7b7f39db0217823ad90dd47034eae29 (patch)
tree11baae52acdb6c3300d8fe37eb804920ac172960
parent67a3ddf17abfd182b99e16cc539dc72be5da707b (diff)
downloadmariadb-git-fbab0685a7b7f39db0217823ad90dd47034eae29.tar.gz
post-merge changes, fixes, and tests
-rw-r--r--mysql-test/r/blackhole.result7
-rw-r--r--mysql-test/r/group_by.result10
-rw-r--r--mysql-test/r/sp-destruct.result4
-rw-r--r--mysql-test/t/blackhole.test10
-rw-r--r--mysql-test/t/group_by.test11
-rw-r--r--mysql-test/t/sp-destruct.test8
-rw-r--r--sql/item.h4
-rw-r--r--sql/mysqld.cc5
-rw-r--r--sql/sp.cc9
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;