summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil@mysql.com>2008-10-17 17:45:17 +0500
committerRamil Kalimullin <ramil@mysql.com>2008-10-17 17:45:17 +0500
commitbba814d0b9dd248a14c25c703542f26fe0d65d4a (patch)
treea00b10402050017b7fb12055641214ba3811d0b8 /sql/handler.cc
parent0c20c0f12ff15601e23bd45bcda70317a59d9380 (diff)
downloadmariadb-git-bba814d0b9dd248a14c25c703542f26fe0d65d4a.tar.gz
Fix for bug #40053: 'check table .. for upgrade' doesn't detect
collation change made in 5.1.24-rc Problem: 'CHECK TABLE ... FOR UPGRADE' did not check for incompatible collation changes made in MySQL 5.1.24-rc. Fix: add the check. sql/handler.cc: - check for incompatible collation changes made in 5.1.24-rc: bug #27877: utf8_general_ci ucs2_general_ci
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc23
1 files changed, 13 insertions, 10 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index a988c34b7ca..d82b2dd967e 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -2765,7 +2765,7 @@ int handler::check_collation_compatibility()
{
ulong mysql_version= table->s->mysql_version;
- if (mysql_version < 50048)
+ if (mysql_version < 50124)
{
KEY *key= table->key_info;
KEY *key_end= key + table->s->keys;
@@ -2779,15 +2779,18 @@ int handler::check_collation_compatibility()
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 - 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 */
return HA_ADMIN_NEEDS_UPGRADE;
}
}