From f8b219ee296f58358d66c443dc89adfa6b718bda Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Tue, 21 Apr 2009 14:01:13 +0500 Subject: [PATCH 1/2] BUG#36966 - mysqldump.test fails in pushbuild mysqldump.test is designed to run with concurrent inserts disabled. It is disabling concurrent inserts at the very beginning of the test case, and re-enables them at the bottom of the test. But for some reason (likely incorrect merge) we enable concurrent inserts in the middle of the test. The problem is fixed by enabling concurrent inserts only at the bottom of the test case. --- mysql-test/r/mysqldump.result | 2 +- mysql-test/t/mysqldump.test | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index 1897a7df799..ce24922db28 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -3557,7 +3557,6 @@ DROP TABLE t1,t2; -- Dump completed on DATE -SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT; # # Bug #42635: mysqldump includes views that were excluded using # the --ignore-table option @@ -3693,6 +3692,7 @@ UNLOCK TABLES; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`; SET NAMES latin1; +SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT; # # End of 5.0 tests # diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 52eecc62931..1e9090fdd01 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -1646,9 +1646,6 @@ DROP TABLE t1,t2; --replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/ --exec $MYSQL_DUMP test -# We reset concurrent_inserts value to whatever it was at the start of the test -SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT; - --echo # --echo # Bug #42635: mysqldump includes views that were excluded using --echo # the --ignore-table option @@ -1681,6 +1678,9 @@ CREATE TABLE `כדשגכחךלדגכחשךדגחכךלדגכ` ( f1 INT ); DROP TABLE `כדשגכחךלדגכחשךדגחכךלדגכ`; SET NAMES latin1; +# We reset concurrent_inserts value to whatever it was at the start of the test +# This line must be executed _after_ all test cases. +SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT; --echo # --echo # End of 5.0 tests From e1b22ab9a1f0acfaec4cf3077b94e49fbadf2684 Mon Sep 17 00:00:00 2001 From: Staale Smedseng Date: Thu, 23 Apr 2009 19:52:39 +0200 Subject: [PATCH 2/2] Bug#33146 CHECKSUM TABLE is not interruptable by KILL QUERY statement Commit 55629 applied to 5.0-bugteam and 5.1-bugteam: Check for thd->killed in CHECKSUM loop. --- sql/sql_table.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index eec6ad626f0..08ea093f2c8 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4376,6 +4376,16 @@ bool mysql_checksum_table(THD *thd, TABLE_LIST *tables, HA_CHECK_OPT *check_opt) { for (;;) { + if (thd->killed) + { + /* + we've been killed; let handler clean up, and remove the + partial current row from the recordset (embedded lib) + */ + t->file->ha_rnd_end(); + thd->protocol->remove_last_row(); + goto err; + } ha_checksum row_crc= 0; int error= t->file->rnd_next(t->record[0]); if (unlikely(error))