# # Bug#27769521 CREATE TABLE WITH MORE THAN 128 BYTES NAME IN NDB # # Preconditions: # 1) Max length of a table name in NDB is currently 128 bytes. # 2) The MySQL Server creates tables in NDB using name on the form # // where is # always hardcoded to "def". # 3) The current limit of identifier names in MySQL is 64 characters, # but for NDB tables the limit is currently only 63 bytes # due to a legacy bug. # # # Using two maximum length identifiers(i.e 63 bytes) it's possible to # hit the 128 bytes limit in NDB. Unfortunately the ndbcluster plugin # does not detect this error correctly and returns the error: # "Table '' doesn't exist" # select LENGTH('abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm'); LENGTH('abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm') 63 CREATE DATABASE abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm; use abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm; CREATE TABLE abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm ( a int primary key ) engine = NDB; ERROR HY000: Can't create table 'abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm' SHOW WARNINGS; Level Code Message Warning 1296 Got error 283 'Table is being dropped' from NDB Error 1005 Can't create table 'abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm' DROP DATABASE abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklm;