From: Narayanan V Date: April 30 2009 12:46pm Subject: bzr commit into mysql-5.1-bugteam branch (v.narayanan:2874) Bug#37631 List-Archive: http://lists.mysql.com/commits/73145 X-Bug: 37631 Message-Id: <20090430124704.7EBCB77@sa64-v40za-blr03.india.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1176024518==" --===============1176024518== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/log/Narayanan/mysql_checkouts_bazaar/5.1_main_repository/mysql-5.1-bugteam-37631-6/ based on revid:gshchepa@stripped 2874 Narayanan V 2009-04-30 BUG#37631 - Incorrect key file for table after upgrading from 5.0 to 5.1 This patch adds corrections to the original patch submitted 2009-04-08 (http://lists.mysql.com/commits/71607): - fixed that the original patch didn't work because of an incorrect condition; - added a test case. @ mysql-test/r/upgrade.result Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 Result file for test case @ mysql-test/std_data/bug37631.MYD Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 table created in mysql 4.0 @ mysql-test/std_data/bug37631.MYI Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 table created in mysql 4.0 @ mysql-test/std_data/bug37631.frm Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 table created in mysql 4.0 @ mysql-test/t/upgrade.test Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 Adds test for checking that upgrade works on a table which is created by a mysql server version <= 4.0. @ storage/myisam/ha_myisam.cc Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 Fix the conformance checker to relax checking for the correct version of the tables (for tables created by mysql server version <= 4.0) added: mysql-test/std_data/bug37631.MYD mysql-test/std_data/bug37631.MYI mysql-test/std_data/bug37631.frm modified: mysql-test/r/upgrade.result mysql-test/t/upgrade.test storage/myisam/ha_myisam.cc === modified file 'mysql-test/r/upgrade.result' --- a/mysql-test/r/upgrade.result 2009-04-10 09:25:48 +0000 +++ b/mysql-test/r/upgrade.result 2009-04-30 12:46:49 +0000 @@ -57,6 +57,18 @@ s1 1 drop table `txu@0023p@0023p1`; drop table `txu#p#p1`; +# +# Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 +# +# copy table created using mysql4.0 into the data dir +# check the table created using mysql 4.0 +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it! +# query the table created using mysql 4.0 +SELECT * FROM t1; +c1 c2 c3 +DROP TABLE t1; truncate t1; drop table t1; drop database if exists `tabc`; === added file 'mysql-test/std_data/bug37631.MYD' === added file 'mysql-test/std_data/bug37631.MYI' Binary files a/mysql-test/std_data/bug37631.MYI 1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug37631.MYI 2009-04-30 12:46:49 +0000 differ === added file 'mysql-test/std_data/bug37631.frm' Binary files a/mysql-test/std_data/bug37631.frm 1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug37631.frm 2009-04-30 12:46:49 +0000 differ === modified file 'mysql-test/t/upgrade.test' --- a/mysql-test/t/upgrade.test 2009-04-13 13:09:10 +0000 +++ b/mysql-test/t/upgrade.test 2009-04-30 12:46:49 +0000 @@ -48,6 +48,20 @@ select * from `txu#p#p1`; drop table `txu@0023p@0023p1`; drop table `txu#p#p1`; +--echo # +--echo # Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1 +--echo # +--echo # copy table created using mysql4.0 into the data dir +let $MYSQLD_DATADIR= `SELECT @@datadir`; +copy_file std_data/bug37631.frm $MYSQLD_DATADIR/test/t1.frm; +copy_file std_data/bug37631.MYD $MYSQLD_DATADIR/test/t1.MYD; +copy_file std_data/bug37631.MYI $MYSQLD_DATADIR/test/t1.MYI; +--echo # check the table created using mysql 4.0 +CHECK TABLE t1; +--echo # query the table created using mysql 4.0 +SELECT * FROM t1; +DROP TABLE t1; + # # Check if old tables work # === modified file 'storage/myisam/ha_myisam.cc' --- a/storage/myisam/ha_myisam.cc 2009-04-08 06:55:19 +0000 +++ b/storage/myisam/ha_myisam.cc 2009-04-30 12:46:49 +0000 @@ -392,7 +392,7 @@ int check_definition(MI_KEYDEF *t1_keyin test(t2_keyinfo[i].flag & HA_SPATIAL))); DBUG_RETURN(1); } - if ((mysql_40_compat && + if ((!mysql_40_compat && t1_keyinfo[i].key_alg != t2_keyinfo[i].key_alg) || t1_keyinfo[i].keysegs != t2_keyinfo[i].keysegs) { @@ -424,7 +424,7 @@ int check_definition(MI_KEYDEF *t1_keyin t1_keysegs_j__type= HA_KEYTYPE_VARBINARY1; /* purecov: inspected */ } - if ((mysql_40_compat && + if ((!mysql_40_compat && t1_keysegs[j].language != t2_keysegs[j].language) || t1_keysegs_j__type != t2_keysegs[j].type || t1_keysegs[j].null_bit != t2_keysegs[j].null_bit || --===============1176024518== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/v.narayanan@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: v.narayanan@stripped # target_branch: file:///export/home/log/Narayanan\ # /mysql_checkouts_bazaar/5.1_main_repository/mysql-5.1-bugteam-\ # 37631-6/ # testament_sha1: 05afc21d848d5b3f94b5ba74ab32fb9f5bf7e252 # timestamp: 2009-04-30 18:17:04 +0530 # base_revision_id: gshchepa@stripped # # Begin bundle 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 --===============1176024518==--