Bug #53857 build_table_filename() doesn't have a way to signal an error
Submitted: 20 May 2010 13:53 Modified: 21 Jun 2010 16:11
Reporter: Georgi Kodinov Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Charsets Severity:S3 (Non-critical)
Version:6.0-codebase OS:Any
Assigned to: CPU Architecture:Any

[20 May 2010 13:53] Georgi Kodinov
Description:
build_table_filename() function doesn't have a way to signal that it doesn't like the table name it creates. 
The fix for bug #53371 introduced more through testing for table names prefixed with the #mysql50# prefix. However unlike 5.x, in 6.0-codebase the '@' symbol is an invalid table name symbol : has_disabled_path_chars('@') returns true.
This causes some of the tests to fail. 
We can't simply remove '@' from the checks. So we need to make sure error handling goes as it should.

How to repeat:
excerpt from mysqlcheck.test:

SET NAMES utf8;
CREATE TABLE `#mysql50#@` (a INT);
SHOW TABLES;
SET NAMES DEFAULT;
--echo mysqlcheck --fix-table-names --databases test
--exec $MYSQL_CHECK --fix-table-names --databases test
SET NAMES utf8;
SHOW TABLES;
DROP TABLE `@`;
[20 May 2010 13:57] 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/108801
[28 May 2010 6:19] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:alik@sun.com-20100524190409-5w4l7mje1wk1c90l) (merge vers: 6.0.14-alpha) (pib:16)