stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP PROCEDURE IF EXISTS test.p3;
DROP PROCEDURE IF EXISTS test.p4;
DROP PROCEDURE IF EXISTS test.p5;
DROP PROCEDURE IF EXISTS test.p6;
DROP PROCEDURE IF EXISTS test.p7;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
CREATE TABLE test.t1 (a int, PRIMARY KEY(a));
INSERT INTO test.t1 VALUES (1);
CREATE PROCEDURE test.p1()
BEGIN
ALTER TABLE test.t1 ADD COLUMN b CHAR(4) AFTER a;
UPDATE test.t1 SET b = 'rbr' WHERE a = 1; 
CALL test.p2();
END|
CREATE PROCEDURE test.p2()
BEGIN
ALTER TABLE test.t1 ADD COLUMN f FLOAT AFTER b;
UPDATE test.t1 SET f = RAND() WHERE a = 1; 
CALL test.p3();
END|
CREATE PROCEDURE test.p3()
BEGIN
ALTER TABLE test.t1 RENAME test.t2;
CALL test.p4();
END|
CREATE PROCEDURE test.p4()
BEGIN
ALTER TABLE test.t2 ADD INDEX (f);
ALTER TABLE test.t2 CHANGE a a INT UNSIGNED NOT NULL AUTO_INCREMENT;
INSERT INTO test.t2 VALUES (NULL,'TEST',RAND());
CALL test.p5();
END|
CREATE PROCEDURE test.p5()
BEGIN
ALTER TABLE test.t2 ORDER BY f;
INSERT INTO test.t2 VALUES (NULL,'STM',RAND());
CALL test.p6();
END|
CREATE PROCEDURE test.p6()
BEGIN
ALTER TABLE test.t2 ADD COLUMN b2 CHAR(4) FIRST;
ALTER TABLE test.t2 ADD COLUMN to_drop BIT(8) AFTER b2;
INSERT INTO test.t2 VALUES ('new',1,NULL,'STM',RAND());
CALL test.p7();
END|
CREATE PROCEDURE test.p7()
BEGIN
ALTER TABLE test.t2 DROP COLUMN to_drop;
INSERT INTO test.t2 VALUES ('gone',NULL,'STM',RAND());
END|
CALL test.p1();
DROP PROCEDURE IF EXISTS test.p1;
DROP PROCEDURE IF EXISTS test.p2;
DROP PROCEDURE IF EXISTS test.p3;
DROP PROCEDURE IF EXISTS test.p4;
DROP PROCEDURE IF EXISTS test.p5;
DROP PROCEDURE IF EXISTS test.p6;
DROP PROCEDURE IF EXISTS test.p7;
DROP TABLE IF EXISTS test.t1;
DROP TABLE IF EXISTS test.t2;
