You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug#27447958 SCHEMA INCONSISTENCY AFTER CREATE DATABASE WITH LONG NAME
There is a limitation of 63 bytes for identifiers that can be distributed
in MySQL Cluster. The limitation is is caused by two columns in
ndb_schema table which are 63 bytes long. This is lower than the MySQL
limit and thus makes it impossible to distribute schema objects with
longer names.
Fix by changing the length of "db" and "name" column of ndb_schema table
to 255 bytes. Changing the schema of ndb_schema will cause a small
hickup when the binlog thread restart, but this is safe as the problem
of how to upgrade ndb_schema has been solved by WL#10162 which already
added another schema change in 8.0. The implementation of WL#10162 also
changed the code working with ndb_schema to dynamically adapt to the
table schema, thus it's mainly a matter of using a new higher limit when
the ndb_schema table is created.
Adapting ndb_ddl.identifier_limits test to the new increased limits,
asically changing it to test that long identifers now work. The legacy
63 bytes limit is still checked by the ndb_ddl.identifier_limits63_debug
test, making sure that code still works with non upgraded ndb_schema.
Change-Id: Ic10f7e9f6760fe6081a2cece00064b9b2f1466cd
ERROR 42000: Identifier name 'abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' is too long
82
-
SHOW WARNINGS;
83
-
Level Code Message
84
-
Warning 1296 [mysql.ndb_schema] Identifier length exceeds the 63 byte limit
85
-
Error 1059 Identifier name 'abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' is too long
86
-
Error 1025 Error on rename of './db1/t1' to './abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123/t3' (errno: 140 - Wrong create options)
87
66
#
88
-
# 4.2 Renaming table to too long table name should fail
ERROR 42000: Identifier name 'abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' is too long
93
-
SHOW WARNINGS;
94
-
Level Code Message
95
-
Warning 1296 [mysql.ndb_schema] Identifier length exceeds the 63 byte limit
96
-
Error 1059 Identifier name 'abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' is too long
97
-
Error 1025 Error on rename of './db1/t1' to './db1/abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' (errno: 140 - Wrong create options)
98
71
DROP DATABASE db1;
99
72
DROP DATABASE abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123;
100
-
Warnings:
101
-
Warning 1296 [mysql.ndb_schema] Identifier length exceeds the 63 byte limit
102
-
Warning 1296 Identifier name 'abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123' is too long
103
73
# Checking that database doesn't exists
104
74
USE abcdefghijklmnopqrstuvwxyz1234567890bcdefghijklmnopqrstuvwxyz123;
0 commit comments