From: Date: October 30 2008 8:37am Subject: bzr commit into mysql-6.0 branch (ramil:2894) Bug#40054 List-Archive: http://lists.mysql.com/commits/57411 X-Bug: 40054 Message-Id: <0K9J002IIJTYKMD0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7BIT #At file:///home/ram/mysql/b40054.6.0-bugteam/ 2894 Ramil Kalimullin 2008-10-30 Fix for bug#40054: 'check table .. for upgrade' doesn't detect collation change made in 6.0.{1, 6} Problem: 'CHECK TABLE ... FOR UPGRADE' did not check for incompatible collation changes made in MySQL 6.0.1 and 6.0.6. Fix: add the check. modified: sql/handler.cc per-file messages: sql/handler.cc Fix for bug#40054: 'check table .. for upgrade' doesn't detect collation change made in 6.0.{1, 6} - check for incompatible collation changes made in 6.0.1 and 6.0.6: WL #3664: latin2_czech_cs bug #25420: big5_chinese_ci cp866_general_ci gb2312_chinese_ci gbk_chinese_ci === modified file 'sql/handler.cc' --- a/sql/handler.cc 2008-10-24 15:37:11 +0000 +++ b/sql/handler.cc 2008-10-30 07:36:54 +0000 @@ -2783,7 +2783,7 @@ int handler::check_collation_compatibili { ulong mysql_version= table->s->mysql_version; - if (mysql_version < 50048) + if (mysql_version < 60006) { KEY *key= table->key_info; KEY *key_end= key + table->s->keys; @@ -2797,15 +2797,22 @@ int handler::check_collation_compatibili continue; Field *field= table->field[key_part->fieldnr - 1]; uint cs_number= field->charset()->number; - if (mysql_version < 50048 && - (cs_number == 11 || /* ascii_general_ci - bug #29499, bug #27562 */ - cs_number == 41 || /* latin7_general_ci - bug #29461 */ - cs_number == 42 || /* latin7_general_cs - bug #29461 */ - cs_number == 20 || /* latin7_estonian_cs - bug #29461 */ - cs_number == 21 || /* latin2_hungarian_ci - bug #29461 */ - cs_number == 22 || /* koi8u_general_ci - bug #29461 */ - cs_number == 23 || /* cp1251_ukrainian_ci - bug #29461 */ - cs_number == 26)) /* cp1250_general_ci - bug #29461 */ + if ((mysql_version < 50048 && + (cs_number == 11 || /* ascii_general_ci - bugs #29499, #27562 */ + cs_number == 41 || /* latin7_general_ci - bug #29461 */ + cs_number == 42 || /* latin7_general_cs - bug #29461 */ + cs_number == 20 || /* latin7_estonian_cs - bug #29461 */ + cs_number == 21 || /* latin2_hungarian_ci - bug #29461 */ + cs_number == 22 || /* koi8u_general_ci - bug #29461 */ + cs_number == 23 || /* cp1251_ukrainian_ci - bug #29461 */ + cs_number == 26)) || /* cp1250_general_ci - bug #29461 */ + (mysql_version < 60001 && + (cs_number == 2)) || /* latin2_czech_cs - WL #3664 */ + (mysql_version < 60006 && + (cs_number == 1 || /* big5_chinese_ci - bug #25420 */ + cs_number == 36 || /* cp866_general_ci - bug #25420 */ + cs_number == 24 || /* gb2312_chinese_ci - bug #25420 */ + cs_number == 28))) /* gbk_chinese_ci - bug #25420 */ return HA_ADMIN_NEEDS_UPGRADE; } }