Loading mysql-test/r/alter_table.result +10 −0 Original line number Diff line number Diff line Loading @@ -647,3 +647,13 @@ SELECT LENGTH(s) FROM t1; LENGTH(s) 10 DROP TABLE t1; CREATE TABLE t1 (v VARCHAR(3), b INT); INSERT INTO t1 VALUES ('abc', 5); SELECT * FROM t1; v b abc 5 ALTER TABLE t1 MODIFY COLUMN v VARCHAR(4); SELECT * FROM t1; v b abc 5 DROP TABLE t1; mysql-test/t/alter_table.test +13 −0 Original line number Diff line number Diff line Loading @@ -469,3 +469,16 @@ ALTER TABLE t1 MODIFY s BINARY(10); SELECT HEX(s) FROM t1; SELECT LENGTH(s) FROM t1; DROP TABLE t1; # # Bug#19386: Multiple alter causes crashed table # The trailing column would get corrupted data, or server could not even read # it. # CREATE TABLE t1 (v VARCHAR(3), b INT); INSERT INTO t1 VALUES ('abc', 5); SELECT * FROM t1; ALTER TABLE t1 MODIFY COLUMN v VARCHAR(4); SELECT * FROM t1; DROP TABLE t1; sql/ha_myisam.cc +2 −1 Original line number Diff line number Diff line Loading @@ -1786,7 +1786,8 @@ bool ha_myisam::check_if_incompatible_data(HA_CREATE_INFO *info, if (info->auto_increment_value != auto_increment_value || info->data_file_name != data_file_name || info->index_file_name != index_file_name || table_changes == IS_EQUAL_NO) table_changes == IS_EQUAL_NO || table_changes & IS_EQUAL_PACK_LENGTH) // Not implemented yet return COMPATIBLE_DATA_NO; if ((options & (HA_OPTION_PACK_RECORD | HA_OPTION_CHECKSUM | Loading Loading
mysql-test/r/alter_table.result +10 −0 Original line number Diff line number Diff line Loading @@ -647,3 +647,13 @@ SELECT LENGTH(s) FROM t1; LENGTH(s) 10 DROP TABLE t1; CREATE TABLE t1 (v VARCHAR(3), b INT); INSERT INTO t1 VALUES ('abc', 5); SELECT * FROM t1; v b abc 5 ALTER TABLE t1 MODIFY COLUMN v VARCHAR(4); SELECT * FROM t1; v b abc 5 DROP TABLE t1;
mysql-test/t/alter_table.test +13 −0 Original line number Diff line number Diff line Loading @@ -469,3 +469,16 @@ ALTER TABLE t1 MODIFY s BINARY(10); SELECT HEX(s) FROM t1; SELECT LENGTH(s) FROM t1; DROP TABLE t1; # # Bug#19386: Multiple alter causes crashed table # The trailing column would get corrupted data, or server could not even read # it. # CREATE TABLE t1 (v VARCHAR(3), b INT); INSERT INTO t1 VALUES ('abc', 5); SELECT * FROM t1; ALTER TABLE t1 MODIFY COLUMN v VARCHAR(4); SELECT * FROM t1; DROP TABLE t1;
sql/ha_myisam.cc +2 −1 Original line number Diff line number Diff line Loading @@ -1786,7 +1786,8 @@ bool ha_myisam::check_if_incompatible_data(HA_CREATE_INFO *info, if (info->auto_increment_value != auto_increment_value || info->data_file_name != data_file_name || info->index_file_name != index_file_name || table_changes == IS_EQUAL_NO) table_changes == IS_EQUAL_NO || table_changes & IS_EQUAL_PACK_LENGTH) // Not implemented yet return COMPATIBLE_DATA_NO; if ((options & (HA_OPTION_PACK_RECORD | HA_OPTION_CHECKSUM | Loading