Bug #27817 NDB table names cannot contain the "-" character
Submitted: 13 Apr 2007 21:39 Modified: 25 Feb 2010 21:57
Reporter: John David Duncan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:mysql-5.1 OS:Any
Assigned to: CPU Architecture:Any
Tags: 5.1.18

[13 Apr 2007 21:39] John David Duncan
Description:
MySQL can attempt to create a table in ndb where the table name contains a "-" character, but the operation does not succeed.

The presence of this "half-formed" table causes confusion to other mysql servers. 

How to repeat:
mysql node 1> CREATE TABLE `a-b` ( i int ) engine = ndb;
mysql node 1> SHOW TABLES;
mysql node 2> SHOW TABLES;
[15 Apr 2007 22:46] Adam Dixon
Verified as instructed above in 5.1.18, not repeatable in 5.0.40;

mysql2> show tables;
ERROR 1146 (42S02): Table 'test.a-b' doesn't exist
mysql2> flush tables;
mysql2> show tables;
ERROR 1146 (42S02): Table 'test.a-b' doesn't exist

$ bin/ndb_show_tables -c localhost -d test
id    type                 state    logging database     schema   name
5     UserTable            Online   Yes     test         def      a-b

$ bin/ndb_desc -c localhost -d test a-b
-- a-b --
Version: 1
Fragment type: 5
K Value: 6
Min load factor: 78
Max load factor: 80
Temporary table: no
Number of attributes: 2
Number of primary keys: 1
Length of frm data: 203
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
TableStatus: Retrieved
-- Attributes -- 
i Int NULL AT=FIXED ST=MEMORY
$PK Bigunsigned PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY

-- Indexes -- 
PRIMARY KEY($PK) - UniqueHashIndex

NDBT_ProgramExit: 0 - OK

Not repeatable in 5.0.40

mysql2> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a-b            | 
+----------------+
1 row in set (0.00 sec)
[16 Apr 2007 14:47] Hartmut Holzgraefe
Wasn't able to reproduce this on a 5.1bk build from last Thursday (2007-04-12):

mysql> select version();
+-------------------+
| version()         |
+-------------------+
| 5.1.18-beta-debug | 
+-------------------+
1 row in set (0.01 sec)

mysql> create table `a-b` (i int) engine=ndb;
Query OK, 0 rows affected (0.65 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a-b            | 
+----------------+
1 row in set (0.00 sec)

mysql> insert into `a-b` values(1),(2),(3);
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from `a-b`;
+------+
| i    |
+------+
|    1 | 
|    3 | 
|    2 | 
+------+
3 rows in set (0.05 sec)

mysql> show create table `a-b`;
+-------+-------------------------------------------------------------------------------
-------------+
| Table | Create Table                                                                  
             |
+-------+-------------------------------------------------------------------------------
-------------+
| a-b   | CREATE TABLE `a-b` (
  `i` int(11) DEFAULT NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 | 
+-------+-------------------------------------------------------------------------------
-------------+
1 row in set (0.01 sec)
[17 Apr 2007 23:23] Hartmut Holzgraefe
verified, missed the api node switch part on my first attempt
[9 Aug 2007 9:34] 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/32286

ChangeSet@1.2569, 2007-08-09 17:19:02+08:00, Justin.He@dev3-240.dev.cn.tlan +1 -0
  Bug#27817, NDB table names cannot contain the '-' character
[18 Sep 2007 15:49] 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/34372

ChangeSet@1.2553, 2007-09-18 09:16:41+00:00, justin.he@turbo.localdomain +1 -0
  Bug#27817 NDB table namess cannot contain the '-' character
[25 Feb 2010 21:57] John David Duncan
Justin's patch is present in Cluster 6.3, and I can no longer repeat the issue.  I am closing this bug.