From: Jon Olav Hauglid Date: February 21 2011 11:36am Subject: bzr push into mysql-5.5 branch (jon.hauglid:3349 to 3350) Bug#11754461 List-Archive: http://lists.mysql.com/commits/131737 X-Bug: 11754461 Message-Id: <201102211137.p1L74xxu004044@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3350 Jon Olav Hauglid 2011-02-21 Bug #11754461 CANNOT ALTER TABLE WHEN KEY PREFIX TOO LONG The problem was that doing ALTER TABLE on a table which had a key on a TEXT/BLOB column with a prefix longer than the maximum number of characteres in this column (as per the character set), by mistake, caused an error (Error 1170 - ER_BLOB_KEY_WITHOUT_LENGTH). This bug not repeatable in 5.5. This patch adds a regression test to alter_table.test and contains no code changes. modified: mysql-test/r/alter_table.result mysql-test/t/alter_table.test 3349 Sergey Vojtovich 2011-02-21 [merge] Merge. modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_timefunc.cc sql/item_timefunc.h === modified file 'mysql-test/r/alter_table.result' --- a/mysql-test/r/alter_table.result 2010-07-26 09:22:38 +0000 +++ b/mysql-test/r/alter_table.result 2011-02-21 11:30:08 +0000 @@ -1383,3 +1383,11 @@ ALTER TABLE t1 CHANGE a id INT; affected rows: 0 info: Records: 0 Duplicates: 0 Warnings: 0 DROP TABLE t1; +# +# Bug#11754461 CANNOT ALTER TABLE WHEN KEY PREFIX TOO LONG +# +DROP DATABASE IF EXISTS db1; +CREATE DATABASE db1 CHARACTER SET utf8; +CREATE TABLE db1.t1 (bar TINYTEXT, KEY (bar(100))); +ALTER TABLE db1.t1 ADD baz INT; +DROP DATABASE db1; === modified file 'mysql-test/t/alter_table.test' --- a/mysql-test/t/alter_table.test 2010-07-26 09:22:38 +0000 +++ b/mysql-test/t/alter_table.test 2011-02-21 11:30:08 +0000 @@ -1144,3 +1144,18 @@ INSERT INTO t1 VALUES (1, 1), (2, 2); ALTER TABLE t1 CHANGE a id INT; --disable_info DROP TABLE t1; + + +--echo # +--echo # Bug#11754461 CANNOT ALTER TABLE WHEN KEY PREFIX TOO LONG +--echo # + +--disable_warnings +DROP DATABASE IF EXISTS db1; +--enable_warnings + +CREATE DATABASE db1 CHARACTER SET utf8; +CREATE TABLE db1.t1 (bar TINYTEXT, KEY (bar(100))); +ALTER TABLE db1.t1 ADD baz INT; + +DROP DATABASE db1; No bundle (reason: useless for push emails).