diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/instant_alter_purge.test')
-rw-r--r-- | mysql-test/suite/innodb/t/instant_alter_purge.test | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/instant_alter_purge.test b/mysql-test/suite/innodb/t/instant_alter_purge.test new file mode 100644 index 00000000..445cae4d --- /dev/null +++ b/mysql-test/suite/innodb/t/instant_alter_purge.test @@ -0,0 +1,34 @@ +--source include/have_innodb.inc +--source include/maybe_debug.inc +if ($have_debug) { +--source include/have_debug_sync.inc +} + +--source include/wait_all_purged.inc + +--echo # +--echo # MDEV-17793 Crash in purge after instant DROP and emptying the table +--echo # + +connect (prevent_purge,localhost,root); +START TRANSACTION WITH CONSISTENT SNAPSHOT; + +connection default; +CREATE TABLE t1 (f1 INT, f2 INT) ENGINE=InnoDB; +INSERT INTO t1 () VALUES (); +ALTER TABLE t1 DROP f2, ADD COLUMN f2 INT; +ALTER TABLE t1 DROP f1; +DELETE FROM t1; + +connection prevent_purge; +COMMIT; +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; + +ALTER TABLE t1 ADD COLUMN extra TINYINT UNSIGNED NOT NULL DEFAULT 42; +SET GLOBAL innodb_max_purge_lag_wait=1; +ALTER TABLE t1 DROP extra; +disconnect prevent_purge; +let $wait_all_purged= 0; +--source include/wait_all_purged.inc +DROP TABLE t1; |