From 9f07c6b383d776d430510de1256b3e4e8680bc60 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Wed, 2 Dec 2015 16:08:54 +0400 Subject: MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine mysqldump --routine fails to dump databases containing backslash ("\") character. This happened because escaped database name was being used as an identifier while changing current database. Such identifers are not supposed to be escaped, they must be properly quoted instead. --- mysql-test/t/mysqldump.test | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'mysql-test/t/mysqldump.test') diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index e0c0ce346ed..b0285747e4e 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -2494,3 +2494,13 @@ DROP DATABASE db_20772273; --exec $MYSQL_DUMP --user=foo 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out --exec $MYSQL_DUMP --help > $MYSQLTEST_VARDIR/tmp/bug6056.out + +--echo # +--echo # MDEV-9001 - [PATCH] Fix DB name quoting in mysqldump --routine +--echo # +CREATE DATABASE `a\"'``b`; +USE `a\"'``b`; +CREATE PROCEDURE p1() BEGIN END; +ALTER DATABASE `a\"'``b` COLLATE utf8_general_ci; +--exec $MYSQL_DUMP --routines --compact a\\\"\'\`b 2>&1 +DROP DATABASE `a\"'``b`; -- cgit v1.2.1 From 0ed474484c037a32bea32abaecd3ff770f40bd49 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 11 Dec 2015 17:03:55 +0100 Subject: fix main.mysqldump test on windows --- mysql-test/t/mysqldump.test | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mysql-test/t/mysqldump.test') diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index b0285747e4e..f0ada44fafd 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -2502,5 +2502,10 @@ CREATE DATABASE `a\"'``b`; USE `a\"'``b`; CREATE PROCEDURE p1() BEGIN END; ALTER DATABASE `a\"'``b` COLLATE utf8_general_ci; ---exec $MYSQL_DUMP --routines --compact a\\\"\'\`b 2>&1 +--let shell_ready_db_name="a\\\\\\"'`b" +if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`) +{ + --let shell_ready_db_name=a\\\\\\"\\'\\`b +} +--exec $MYSQL_DUMP --routines --compact $shell_ready_db_name DROP DATABASE `a\"'``b`; -- cgit v1.2.1