polardbxengine/mysql-test/suite/innodb_undo/t/undo_ddl_vs_dml.test

91 lines
2.4 KiB
Plaintext

# A rhino can weigh over 2000 kg, run about 12 meters per second,
# but see accurately only 10 meters... A group of rhinos is called a 'crash'!
CREATE UNDO TABLESPACE undo_003 ADD DATAFILE 'undo_003.ibu';
CREATE UNDO TABLESPACE undo_004 ADD DATAFILE 'undo_004.ibu';
CREATE UNDO TABLESPACE undo_005 ADD DATAFILE 'undo_005.ibu';
CREATE UNDO TABLESPACE undo_006 ADD DATAFILE 'undo_006.ibu';
CREATE DATABASE rhinos;
USE rhinos;
CREATE TABLE serengeti (a BIGINT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(1000) NOT NULL);
DELIMITER |;
CREATE PROCEDURE rhino (IN loops BIGINT, IN undo_space char(20))
BEGIN
SET @x = 0;
WHILE (@x < loops) DO
SET @y = 0;
ALTER UNDO TABLESPACE innodb_undo_005 SET INACTIVE;
WHILE (@y < 5) DO
SET @c = concat("INSERT INTO serengeti (b) VALUES ('Insert #", @x * 10 + @y + 1, " while ", undo_space, " is inactive')");
PREPARE stmt FROM @c;
EXECUTE stmt;
SET @y = @y + 1;
END WHILE;
ALTER UNDO TABLESPACE innodb_undo_005 SET ACTIVE;
WHILE (@y < 10) DO
SET @c = concat("INSERT INTO serengeti (b) VALUES ('Insert #", @x * 10 + @y + 1, " while ", undo_space, " is active')");
PREPARE stmt FROM @c;
EXECUTE stmt;
SET @y = @y + 1;
END WHILE;
SET @x = @x + 1;
END WHILE;
END|
DELIMITER ;|
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connect (con3,localhost,root,,);
connection con1;
--send CALL rhinos.rhino(10, 'innodb_undo_005');
connection con2;
--send CALL rhinos.rhino(10, 'undo_003');
connection con3;
--send CALL rhinos.rhino(10, 'undo_005');
connection con1;
--reap;
connection con2;
--reap;
connection con3;
--reap;
connection default;
disconnect con1;
disconnect con2;
disconnect con3;
SELECT count(*) from serengeti;
USE test;
DROP DATABASE rhinos;
ALTER UNDO TABLESPACE undo_003 SET INACTIVE;
let $inactive_undo_space = undo_003;
source include/wait_until_undo_space_is_empty.inc;
DROP UNDO TABLESPACE undo_003;
ALTER UNDO TABLESPACE undo_004 SET INACTIVE;
let $inactive_undo_space = undo_004;
source include/wait_until_undo_space_is_empty.inc;
DROP UNDO TABLESPACE undo_004;
ALTER UNDO TABLESPACE undo_005 SET INACTIVE;
let $inactive_undo_space = undo_005;
source include/wait_until_undo_space_is_empty.inc;
DROP UNDO TABLESPACE undo_005;
ALTER UNDO TABLESPACE undo_006 SET INACTIVE;
let $inactive_undo_space = undo_006;
source include/wait_until_undo_space_is_empty.inc;
DROP UNDO TABLESPACE undo_006;