-- source include/have_xtradb.inc SET @old_innodb_file_format=@@innodb_file_format; SET @old_innodb_file_format_max=@@innodb_file_format_max; SET @old_innodb_file_per_table=@@innodb_file_per_table; SET GLOBAL innodb_file_format='Barracuda'; SET GLOBAL innodb_file_per_table=ON; -- disable_query_log -- disable_result_log DROP TABLE IF EXISTS `test1`; CREATE TABLE IF NOT EXISTS `test1` ( `a` int primary key auto_increment, `b` int default 0, `c` char(100) default 'testtest' ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; set autocommit=0; delimiter |; CREATE PROCEDURE insert_many(p1 int) BEGIN SET @x = 0; SET @y = 0; start transaction; REPEAT insert into test1 set b=1; SET @x = @x + 1; SET @y = @y + 1; IF @y >= 1000 THEN commit; start transaction; SET @y = 0; END IF; UNTIL @x >= p1 END REPEAT; commit; END| delimiter ;| call insert_many(100000); DROP PROCEDURE insert_many; # The bug is hangup at the following statement ALTER TABLE test1 ENGINE=MyISAM; DROP TABLE test1; SET GLOBAL innodb_file_format=@old_innodb_file_format; SET GLOBAL innodb_file_format_max=@old_innodb_file_format_max; SET GLOBAL innodb_file_per_table=@old_innodb_file_per_table;