summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Winstead <jimw@mysql.com>2009-07-14 10:08:38 -0700
committerJim Winstead <jimw@mysql.com>2009-07-14 10:08:38 -0700
commitbd0a44fba279633bbbe19c904103ea06644061bb (patch)
tree621df211e8838b5cbacf88d7e41019a2401d4f4f
parent5b178e9a2af23226828f9c71fa6b1b82db319a9e (diff)
parentf8e24020847fe98660c15b03258d3a4f6453d819 (diff)
downloadmariadb-git-bd0a44fba279633bbbe19c904103ea06644061bb.tar.gz
Merge in bug fixes for client tools
-rw-r--r--client/mysql.cc22
-rw-r--r--client/mysql_upgrade.c6
-rw-r--r--client/mysqladmin.cc11
-rw-r--r--client/mysqlcheck.c4
-rw-r--r--client/mysqldump.c3
-rw-r--r--client/mysqlimport.c17
-rw-r--r--client/mysqlslap.c8
-rw-r--r--mysql-test/r/mysql.result36
-rw-r--r--mysql-test/r/mysqlcheck.result14
-rw-r--r--mysql-test/r/mysqldump.result49
-rw-r--r--mysql-test/r/parser_not_embedded.result18
-rw-r--r--mysql-test/t/mysqlcheck.test17
-rw-r--r--mysql-test/t/mysqldump.test46
13 files changed, 193 insertions, 58 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index 5afbc2e960b..05f15e3267a 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -2302,8 +2302,10 @@ extern "C" char **new_mysql_completion (const char *text, int start, int end);
*/
#if defined(USE_NEW_READLINE_INTERFACE)
+static int fake_magic_space(int, int);
extern "C" char *no_completion(const char*,int)
#elif defined(USE_LIBEDIT_INTERFACE)
+static int fake_magic_space(const char *, int);
extern "C" int no_completion(const char*,int)
#else
extern "C" char *no_completion()
@@ -2380,6 +2382,18 @@ static int not_in_history(const char *line)
return 1;
}
+
+#if defined(USE_NEW_READLINE_INTERFACE)
+static int fake_magic_space(int, int)
+#else
+static int fake_magic_space(const char *, int)
+#endif
+{
+ rl_insert(1, ' ');
+ return 0;
+}
+
+
static void initialize_readline (char *name)
{
/* Allow conditional parsing of the ~/.inputrc file. */
@@ -2389,12 +2403,15 @@ static void initialize_readline (char *name)
#if defined(USE_NEW_READLINE_INTERFACE)
rl_attempted_completion_function= (rl_completion_func_t*)&new_mysql_completion;
rl_completion_entry_function= (rl_compentry_func_t*)&no_completion;
+
+ rl_add_defun("magic-space", (rl_command_func_t *)&fake_magic_space, -1);
#elif defined(USE_LIBEDIT_INTERFACE)
#ifdef HAVE_LOCALE_H
setlocale(LC_ALL,""); /* so as libedit use isprint */
#endif
rl_attempted_completion_function= (CPPFunction*)&new_mysql_completion;
rl_completion_entry_function= &no_completion;
+ rl_add_defun("magic-space", (Function*)&fake_magic_space, -1);
#else
rl_attempted_completion_function= (CPPFunction*)&new_mysql_completion;
rl_completion_entry_function= &no_completion;
@@ -3308,6 +3325,9 @@ print_table_data(MYSQL_RES *result)
uint visible_length;
uint extra_padding;
+ if (off)
+ (void) tee_fputs(" ", PAGER);
+
if (cur[off] == NULL)
{
buffer= "NULL";
@@ -3342,7 +3362,7 @@ print_table_data(MYSQL_RES *result)
else
tee_print_sized_data(buffer, data_length, field_max_length+extra_padding, FALSE);
}
- tee_fputs(" | ", PAGER);
+ tee_fputs(" |", PAGER);
}
(void) tee_fputs("\n", PAGER);
}
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
index 641d4a38d16..645fb037647 100644
--- a/client/mysql_upgrade.c
+++ b/client/mysql_upgrade.c
@@ -253,8 +253,12 @@ get_one_option(int optid, const struct my_option *opt,
break;
case 'b': /* --basedir */
- case 'v': /* --verbose */
case 'd': /* --datadir */
+ fprintf(stderr, "%s: the '--%s' option is always ignored\n",
+ my_progname, optid == 'b' ? "basedir" : "datadir");
+ /* FALLTHROUGH */
+
+ case 'v': /* --verbose */
case 'f': /* --force */
add_option= FALSE;
break;
diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc
index 9865b67bb3b..a4e7c5ad0c9 100644
--- a/client/mysqladmin.cc
+++ b/client/mysqladmin.cc
@@ -24,7 +24,7 @@
#include <mysql.h>
#define ADMIN_VERSION "8.42"
-#define MAX_MYSQL_VAR 256
+#define MAX_MYSQL_VAR 512
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
@@ -371,7 +371,7 @@ int main(int argc,char *argv[])
}
else
{
- while (!interrupted && (!opt_count_iterations || nr_iterations))
+ while (!interrupted)
{
new_line = 0;
if ((error=execute_commands(&mysql,argc,commands)))
@@ -395,11 +395,11 @@ int main(int argc,char *argv[])
}
if (interval)
{
+ if (opt_count_iterations && --nr_iterations == 0)
+ break;
sleep(interval);
if (new_line)
puts("");
- if (opt_count_iterations)
- nr_iterations--;
}
else
break;
@@ -743,6 +743,9 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
mysql_error(mysql));
return -1;
}
+
+ DBUG_ASSERT(mysql_num_rows(res) < MAX_MYSQL_VAR);
+
if (!opt_vertical)
print_header(res);
else
diff --git a/client/mysqlcheck.c b/client/mysqlcheck.c
index c59049d8b72..82aabd77b24 100644
--- a/client/mysqlcheck.c
+++ b/client/mysqlcheck.c
@@ -442,7 +442,7 @@ static int process_selected_tables(char *db, char **table_names, int tables)
{
if (use_db(db))
return 1;
- if (opt_all_in_1)
+ if (opt_all_in_1 && what_to_do != DO_UPGRADE)
{
/*
We need table list in form `a`, `b`, `c`
@@ -536,7 +536,7 @@ static int process_all_tables_in_db(char *database)
num_columns= mysql_num_fields(res);
- if (opt_all_in_1)
+ if (opt_all_in_1 && what_to_do != DO_UPGRADE)
{
/*
We need table list in form `a`, `b`, `c`
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 6d45d901b33..193652b88ff 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -4810,7 +4810,8 @@ static my_bool get_view_structure(char *table, char* db)
result_table);
check_io(sql_file);
}
- fprintf(sql_file, "/*!50001 DROP TABLE %s*/;\n", opt_quoted_table);
+ /* Table might not exist if this view was dumped with --tab. */
+ fprintf(sql_file, "/*!50001 DROP TABLE IF EXISTS %s*/;\n", opt_quoted_table);
if (opt_drop)
{
fprintf(sql_file, "/*!50001 DROP VIEW IF EXISTS %s*/;\n",
diff --git a/client/mysqlimport.c b/client/mysqlimport.c
index 57aee7379f2..92e9702aea0 100644
--- a/client/mysqlimport.c
+++ b/client/mysqlimport.c
@@ -303,7 +303,8 @@ static int get_options(int *argc, char ***argv)
static int write_to_table(char *filename, MYSQL *mysql)
{
char tablename[FN_REFLEN], hard_path[FN_REFLEN],
- sql_statement[FN_REFLEN*16+256], *end;
+ escaped_name[FN_REFLEN * 2 + 1],
+ sql_statement[FN_REFLEN*16+256], *end, *pos;
DBUG_ENTER("write_to_table");
DBUG_PRINT("enter",("filename: %s",filename));
@@ -338,15 +339,25 @@ static int write_to_table(char *filename, MYSQL *mysql)
fprintf(stdout, "Loading data from SERVER file: %s into %s\n",
hard_path, tablename);
}
+ mysql_real_escape_string(mysql, escaped_name, hard_path,
+ (unsigned long) strlen(hard_path));
sprintf(sql_statement, "LOAD DATA %s %s INFILE '%s'",
opt_low_priority ? "LOW_PRIORITY" : "",
- opt_local_file ? "LOCAL" : "", hard_path);
+ opt_local_file ? "LOCAL" : "", escaped_name);
end= strend(sql_statement);
if (replace)
end= strmov(end, " REPLACE");
if (ignore)
end= strmov(end, " IGNORE");
- end= strmov(strmov(end, " INTO TABLE "), tablename);
+ end= strmov(end, " INTO TABLE `");
+ /* Turn any ` into `` in table name. */
+ for (pos= tablename; *pos; pos++)
+ {
+ if (*pos == '`')
+ *end++= '`';
+ *end++= *pos;
+ }
+ end= strmov(end, "`");
if (fields_terminated || enclosed || opt_enclosed || escaped)
end= strmov(end, " FIELDS");
diff --git a/client/mysqlslap.c b/client/mysqlslap.c
index 316fb6a9da3..70abfbb7136 100644
--- a/client/mysqlslap.c
+++ b/client/mysqlslap.c
@@ -565,8 +565,7 @@ static struct my_option my_long_options[] =
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"csv", OPT_SLAP_CSV,
"Generate CSV output to named file or to stdout if no file is named.",
- (uchar**) &opt_csv_str, (uchar**) &opt_csv_str, 0, GET_STR,
- OPT_ARG, 0, 0, 0, 0, 0, 0},
+ NULL, NULL, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#ifdef DBUG_OFF
{"debug", '#', "This is a non-debug version. Catch this and exit.",
0, 0, 0, GET_DISABLED, OPT_ARG, 0, 0, 0, 0, 0, 0},
@@ -740,6 +739,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
DBUG_PUSH(argument ? argument : default_dbug_option);
debug_check_flag= 1;
break;
+ case OPT_SLAP_CSV:
+ if (!argument)
+ argument= (char *)"-"; /* use stdout */
+ opt_csv_str= argument;
+ break;
#include <sslopt-case.h>
case 'V':
print_version();
diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result
index e704f81e187..b77d30a4973 100644
--- a/mysql-test/r/mysql.result
+++ b/mysql-test/r/mysql.result
@@ -64,28 +64,28 @@ drop table t1;
+----------------------+------------+--------+
| concat('>',col1,'<') | col2 | col3 |
+----------------------+------------+--------+
-| >a < | b | 123421 |
-| >a < | 0123456789 | 4 |
-| >abcd< | | 4 |
+| >a < | b | 123421 |
+| >a < | 0123456789 | 4 |
+| >abcd< | | 4 |
+----------------------+------------+--------+
+-------------------+
| __tañgè Ñãmé |
+-------------------+
-| John Doe |
+| John Doe |
+-------------------+
+-------------------+
| John Doe |
+-------------------+
-| __tañgè Ñãmé |
+| __tañgè Ñãmé |
+-------------------+
+------+------+---------------------------+
| i | j | k |
+------+------+---------------------------+
-| 1 | NULL | NULL |
-| NULL | NULL | <-----------------------> |
-| NULL | NULL | <----- |
-| NULL | NULL | Τη γλώσσα |
-| NULL | NULL | ᛖᚴ ᚷᛖᛏ |
+| 1 | NULL | NULL |
+| NULL | NULL | <-----------------------> |
+| NULL | NULL | <----- |
+| NULL | NULL | Τη γλώσσα |
+| NULL | NULL | ᛖᚴ ᚷᛖᛏ |
+------+------+---------------------------+
i j k
NULL 1 NULL
@@ -96,14 +96,14 @@ k int(11) YES NULL
+------+---+------+
| i | j | k |
+------+---+------+
-| NULL | 1 | NULL |
+| NULL | 1 | NULL |
+------+---+------+
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
-| i | int(11) | YES | | NULL | |
-| j | int(11) | NO | | NULL | |
-| k | int(11) | YES | | NULL | |
+| i | int(11) | YES | | NULL | |
+| j | int(11) | NO | | NULL | |
+| k | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
i s1
1 x
@@ -112,16 +112,16 @@ i s1
+------+------+
| i | s1 |
+------+------+
-| 1 | x |
-| 2 | NULL |
-| 3 | |
+| 1 | x |
+| 2 | NULL |
+| 3 | |
+------+------+
unhex('zz')
NULL
+-------------+
| unhex('zz') |
+-------------+
-| NULL |
+| NULL |
+-------------+
create table t1(a int, b varchar(255), c int);
Field Type Null Key Default Extra
diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result
index 704cd7ac3f4..5f1a0565b10 100644
--- a/mysql-test/r/mysqlcheck.result
+++ b/mysql-test/r/mysqlcheck.result
@@ -186,4 +186,18 @@ a
500
DROP DATABASE `a@b`;
USE test;
+#
+# Bug #31821: --all-in-1 and --fix-table-names don't work together
+#
+drop table if exists `#mysql50#t1-1`;
+create table `#mysql50#t1-1` (a int);
+show tables like 't1-1';
+Tables_in_test (t1-1)
+t1-1
+drop table `t1-1`;
+create table `#mysql50#t1-1` (a int);
+show tables like 't1-1';
+Tables_in_test (t1-1)
+t1-1
+drop table `t1-1`;
End of 5.1 tests
diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result
index 2f8e0ce5ec1..345a53abfda 100644
--- a/mysql-test/r/mysqldump.result
+++ b/mysql-test/r/mysqldump.result
@@ -1991,7 +1991,7 @@ SET character_set_client = utf8;
`a` varchar(30)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -2085,7 +2085,7 @@ SET character_set_client = utf8;
`a` int(11)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -2159,7 +2159,7 @@ SET character_set_client = utf8;
`a` varchar(30)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -2293,7 +2293,7 @@ SET character_set_client = utf8;
`c` varchar(30)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -2307,7 +2307,7 @@ SET character_set_client = @saved_cs_client;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -2321,7 +2321,7 @@ SET character_set_client = @saved_cs_client;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
-/*!50001 DROP TABLE `v3`*/;
+/*!50001 DROP TABLE IF EXISTS `v3`*/;
/*!50001 DROP VIEW IF EXISTS `v3`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3054,7 +3054,7 @@ SET character_set_client = utf8;
SET character_set_client = @saved_cs_client;
USE `test`;
-/*!50001 DROP TABLE `v0`*/;
+/*!50001 DROP TABLE IF EXISTS `v0`*/;
/*!50001 DROP VIEW IF EXISTS `v0`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3068,7 +3068,7 @@ USE `test`;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3082,7 +3082,7 @@ USE `test`;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3320,7 +3320,7 @@ insert into t values(5, 51);
create view v1 as select qty, price, qty*price as value from t;
create view v2 as select qty from v1;
mysqldump {
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
@@ -3335,7 +3335,7 @@ mysqldump {
/*!50001 SET collation_connection = @saved_col_connection */;
} mysqldump {
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
@@ -3434,7 +3434,7 @@ SET character_set_client = utf8;
SET character_set_client = @saved_cs_client;
USE `mysqldump_test_db`;
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -3496,7 +3496,7 @@ SET character_set_client = @saved_cs_client;
USE `mysqldump_tables`;
USE `mysqldump_views`;
-/*!50001 DROP TABLE `nasishnasifu`*/;
+/*!50001 DROP TABLE IF EXISTS `nasishnasifu`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
@@ -3885,7 +3885,7 @@ SET character_set_client = utf8;
`c` int(11)
) ENGINE=MyISAM */;
SET character_set_client = @saved_cs_client;
-/*!50001 DROP TABLE `v2`*/;
+/*!50001 DROP TABLE IF EXISTS `v2`*/;
/*!50001 DROP VIEW IF EXISTS `v2`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -4304,7 +4304,7 @@ SET character_set_client = utf8;
SET character_set_client = @saved_cs_client;
USE `mysqldump_test_db`;
-/*!50001 DROP TABLE `v1`*/;
+/*!50001 DROP TABLE IF EXISTS `v1`*/;
/*!50001 DROP VIEW IF EXISTS `v1`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
@@ -4430,6 +4430,25 @@ DROP DATABASE mysqldump_test_db;
# -- End of test case for Bug#32538.
+#
+# Bug#37377 Incorrect DROP TABLE statement in dump of a VIEW using --tab
+#
+create table t1 (a int);
+create view v1 as select a from t1;
+drop view v1;
+drop table t1;
+drop view v1;
+drop table t1;
+#
+# Bug#28071 mysqlimport does not quote or escape table name
+#
+drop table if exists `load`;
+create table `load` (a varchar(255));
+test.load: Records: 70 Deleted: 0 Skipped: 0 Warnings: 0
+select count(*) from `load`;
+count(*)
+70
+drop table `load`;
SET @@GLOBAL.CONCURRENT_INSERT = @OLD_CONCURRENT_INSERT;
Bug #34861 - mysqldump with --tab gives weird output for triggers.
diff --git a/mysql-test/r/parser_not_embedded.result b/mysql-test/r/parser_not_embedded.result
index 871eb226cc4..140b13c9864 100644
--- a/mysql-test/r/parser_not_embedded.result
+++ b/mysql-test/r/parser_not_embedded.result
@@ -5,45 +5,45 @@
+----------+--------+
| expected | result |
+----------+--------+
-| 2 | 2 |
+| 2 | 2 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 1 | 1 |
+| 1 | 1 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 3 | 3 |
+| 3 | 3 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 2 | 2 |
+| 2 | 2 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 7 | 7 |
+| 7 | 7 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 8 | 8 |
+| 8 | 8 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 7 | 7 |
+| 7 | 7 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 4 | 4 |
+| 4 | 4 |
+----------+--------+
+----------+--------+
| expected | result |
+----------+--------+
-| 4 | 4 |
+| 4 | 4 |
+----------+--------+
diff --git a/mysql-test/t/mysqlcheck.test b/mysql-test/t/mysqlcheck.test
index e834c60dcb5..986b5aba385 100644
--- a/mysql-test/t/mysqlcheck.test
+++ b/mysql-test/t/mysqlcheck.test
@@ -193,5 +193,22 @@ DROP DATABASE `a@b`;
USE test;
+--echo #
+--echo # Bug #31821: --all-in-1 and --fix-table-names don't work together
+--echo #
+
+--disable_warnings
+drop table if exists `#mysql50#t1-1`;
+--enable_warnings
+
+create table `#mysql50#t1-1` (a int);
+--exec $MYSQL_CHECK --all-in-1 --fix-table-names --databases test
+show tables like 't1-1';
+drop table `t1-1`;
+
+create table `#mysql50#t1-1` (a int);
+--exec $MYSQL_CHECK --all-in-1 --fix-table-names test "#mysql50#t1-1"
+show tables like 't1-1';
+drop table `t1-1`;
--echo End of 5.1 tests
diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test
index ec96124e14b..f941cf21c19 100644
--- a/mysql-test/t/mysqldump.test
+++ b/mysql-test/t/mysqldump.test
@@ -1947,8 +1947,50 @@ DROP DATABASE mysqldump_test_db;
--echo # -- End of test case for Bug#32538.
--echo
-# We reset concurrent_inserts value to whatever it was at the start of the test
-# This line must be executed _after_ all test cases.
+--echo #
+--echo # Bug#37377 Incorrect DROP TABLE statement in dump of a VIEW using --tab
+--echo #
+
+create table t1 (a int);
+create view v1 as select a from t1;
+
+--exec $MYSQL_DUMP --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test t1 v1
+
+drop view v1;
+drop table t1;
+
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/t1.sql
+--exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/v1.sql
+
+drop view v1;
+drop table t1;
+
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.sql
+--remove_file $MYSQLTEST_VARDIR/tmp/t1.txt
+--remove_file $MYSQLTEST_VARDIR/tmp/v1.sql
+
+
+--echo #
+--echo # Bug#28071 mysqlimport does not quote or escape table name
+--echo #
+
+--disable_warnings
+drop table if exists `load`;
+--enable_warnings
+create table `load` (a varchar(255));
+
+--copy_file std_data/words.dat $MYSQLTEST_VARDIR/tmp/load.txt
+
+--exec $MYSQL_IMPORT --ignore test $MYSQLTEST_VARDIR/tmp/load.txt
+
+select count(*) from `load`;
+
+--remove_file $MYSQLTEST_VARDIR/tmp/load.txt
+
+drop table `load`;
+
+# 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;