diff options
author | Jim Winstead <jimw@mysql.com> | 2009-07-14 10:08:38 -0700 |
---|---|---|
committer | Jim Winstead <jimw@mysql.com> | 2009-07-14 10:08:38 -0700 |
commit | bd0a44fba279633bbbe19c904103ea06644061bb (patch) | |
tree | 621df211e8838b5cbacf88d7e41019a2401d4f4f | |
parent | 5b178e9a2af23226828f9c71fa6b1b82db319a9e (diff) | |
parent | f8e24020847fe98660c15b03258d3a4f6453d819 (diff) | |
download | mariadb-git-bd0a44fba279633bbbe19c904103ea06644061bb.tar.gz |
Merge in bug fixes for client tools
-rw-r--r-- | client/mysql.cc | 22 | ||||
-rw-r--r-- | client/mysql_upgrade.c | 6 | ||||
-rw-r--r-- | client/mysqladmin.cc | 11 | ||||
-rw-r--r-- | client/mysqlcheck.c | 4 | ||||
-rw-r--r-- | client/mysqldump.c | 3 | ||||
-rw-r--r-- | client/mysqlimport.c | 17 | ||||
-rw-r--r-- | client/mysqlslap.c | 8 | ||||
-rw-r--r-- | mysql-test/r/mysql.result | 36 | ||||
-rw-r--r-- | mysql-test/r/mysqlcheck.result | 14 | ||||
-rw-r--r-- | mysql-test/r/mysqldump.result | 49 | ||||
-rw-r--r-- | mysql-test/r/parser_not_embedded.result | 18 | ||||
-rw-r--r-- | mysql-test/t/mysqlcheck.test | 17 | ||||
-rw-r--r-- | mysql-test/t/mysqldump.test | 46 |
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; |