Bug #31113 | mysqldump 5.1 can't handle a dash ("-") in database names | ||
---|---|---|---|
Submitted: | 20 Sep 2007 14:59 | Modified: | 19 Nov 2007 5:05 |
Reporter: | Gadi Cohen | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: mysqldump Command-line Client | Severity: | S2 (Serious) |
Version: | 5.1.21-beta/5.1BK | OS: | Linux |
Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
Tags: | Dash, mysqldump |
[20 Sep 2007 14:59]
Gadi Cohen
[20 Sep 2007 15:30]
MySQL Verification Team
Thank you for the bug report. I was able to repeat with 5.1 and 5.0 branch isn't affected. LOCK TABLES `test` WRITE; /*!40000 ALTER TABLE `test` DISABLE KEYS */; /*!40000 ALTER TABLE `test` ENABLE KEYS */; UNLOCK TABLES; mysqldump: Couldn't execute 'use test-database': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-database' at line 1 (1064)
[29 Oct 2007 13:21]
Timour Katchaounov
P2 as there should be no error in this case.
[30 Oct 2007 7:46]
xiaoxin yang
quote database names will be ok --- mysqldump.c.orig 2007-10-29 17:40:50.000000000 +0800 +++ mysqldump.c 2007-10-30 15:42:00.000000000 +0800 @@ -1033,7 +1033,7 @@ MYSQL_RES *db_cl_res; MYSQL_ROW db_cl_row; - my_snprintf(query, sizeof (query), "use %s", db_name); + my_snprintf(query, sizeof (query), "use `%s`", db_name); if (mysql_query_with_error_report(mysql, NULL, query)) return 1;
[30 Oct 2007 9:21]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/36620 ChangeSet@1.2576, 2007-10-30 13:16:38+04:00, gluh@mysql.com +3 -0 Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names db name should be quoted if 'opt_quoted' is enabled
[30 Oct 2007 11:16]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/36631 ChangeSet@1.2576, 2007-10-30 15:11:39+04:00, gluh@mysql.com +3 -0 Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names(2nd version) db name should be quoted. this code does communication with the server. it's always ok to quote names in this case.
[2 Nov 2007 8:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/36944 ChangeSet@1.2618, 2007-11-02 12:24:45+04:00, gluh@mysql.com +3 -0 Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names db name should be quoted. this code does communication with the server. it's always ok to quote names in this case.
[16 Nov 2007 9:32]
Bugs System
Pushed into 5.1.23-rc
[16 Nov 2007 9:34]
Bugs System
Pushed into 6.0.4-alpha
[19 Nov 2007 5:05]
Paul DuBois
Noted in 5.1.23, 6.0.4 changelogs. mysqldump failed to handle databases containing a '-' character in the name.
[16 Sep 2011 11:16]
Rudy Broersma
Has this bug resurfaced? #mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` joomla-target > /tmp/out mysqldump: Couldn't execute 'use joomla-target': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-target' at line 1 (1064) # mysqldump -V mysqldump Ver 10.13 Distrib 5.1.22-rc, for pc-linux-gnu (x86_64) Using --quote-names does not fix this, as quote-names only quotes tables and columns. Quoting the database on the commandline does not fix this either.
[16 Sep 2011 11:23]
Rudy Broersma
Nevermind, my version is too old. Sorry :(