diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result index cc93eab0cd5..7c0ac177cb5 100644 --- a/mysql-test/r/alter_table.result +++ b/mysql-test/r/alter_table.result @@ -1172,3 +1172,15 @@ SELECT * FROM t1; f1 f2 f3 1 2 NULL DROP TABLE t1; +create table t1 (c char(10) default "Two"); +lock table t1 write; +insert into t1 values (); +alter table t1 modify c char(10) default "Three"; +unlock tables; +select * from t1; +c +Two +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index fa50d75b8d2..99c9ae23801 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -902,3 +902,15 @@ SELECT * FROM t1; ALTER TABLE t1 MODIFY COLUMN f3 INT AFTER f2; SELECT * FROM t1; DROP TABLE t1; + +# +# BUG#29957 - alter_table.test fails +# +create table t1 (c char(10) default "Two"); +lock table t1 write; +insert into t1 values (); +alter table t1 modify c char(10) default "Three"; +unlock tables; +select * from t1; +check table t1; +drop table t1; diff --git a/storage/myisam/mi_extra.c b/storage/myisam/mi_extra.c index 72c40741a22..30802a50513 100644 --- a/storage/myisam/mi_extra.c +++ b/storage/myisam/mi_extra.c @@ -258,7 +258,7 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg) case HA_EXTRA_PREPARE_FOR_DELETE: pthread_mutex_lock(&THR_LOCK_myisam); share->last_version= 0L; /* Impossible version */ -#ifdef __WIN__ +#ifdef __WIN__REMOVE_OBSOLETE_WORKAROUND /* Close the isam and data files as Win32 can't drop an open table */ pthread_mutex_lock(&share->intern_lock); if (flush_key_blocks(share->key_cache, share->kfile,