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.
This commit is contained in:
parent
e4d4226efa
commit
2b491daa1c
@ -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`;
|
||||
|
0
mysql-test/std_data/bug37631.MYD
Normal file
0
mysql-test/std_data/bug37631.MYD
Normal file
BIN
mysql-test/std_data/bug37631.MYI
Normal file
BIN
mysql-test/std_data/bug37631.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/bug37631.frm
Normal file
BIN
mysql-test/std_data/bug37631.frm
Normal file
Binary file not shown.
@ -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
|
||||
#
|
||||
|
@ -392,7 +392,7 @@ int check_definition(MI_KEYDEF *t1_keyinfo, MI_COLUMNDEF *t1_recinfo,
|
||||
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_keyinfo, MI_COLUMNDEF *t1_recinfo,
|
||||
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 ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user