List:Commits« Previous MessageNext Message »
From:Ramil Kalimullin Date:November 21 2008 9:21am
Subject:bzr commit into mysql-6.0 branch (ramil:2941) Bug#40054
View as plain text  
#At file:///home/ram/mysql/mysql-6.0-bugteam/

 2941 Ramil Kalimullin	2008-11-21
      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-11-06 18:46:03 +0000
+++ b/sql/handler.cc	2008-11-21 08:20:56 +0000
@@ -2783,7 +2783,7 @@ int handler::check_collation_compatibili
 {
   ulong mysql_version= table->s->mysql_version;
 
-  if (mysql_version < 50124)
+  if (mysql_version < 60006)
   {
     KEY *key= table->key_info;
     KEY *key_end= key + table->s->keys;
@@ -2798,17 +2798,24 @@ int handler::check_collation_compatibili
         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 == 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 */
-             (mysql_version < 50124 &&
-             (cs_number == 33 || /* utf8_general_ci - bug #27877 */
-              cs_number == 35))) /* ucs2_general_ci - bug #27877 */
+            (mysql_version < 50124 &&
+             (cs_number == 33 ||   /* utf8_general_ci - bug #27877 */
+              cs_number == 35)) || /* ucs2_general_ci - bug #27877 */
+            (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;
       }  
     }  

Thread
bzr commit into mysql-6.0 branch (ramil:2941) Bug#40054Ramil Kalimullin21 Nov