diff options
Diffstat (limited to 'mysql-test/suite/innodb/r/instant_alter_purge.result')
-rw-r--r-- | mysql-test/suite/innodb/r/instant_alter_purge.result | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/instant_alter_purge.result b/mysql-test/suite/innodb/r/instant_alter_purge.result new file mode 100644 index 00000000000..a3643610f04 --- /dev/null +++ b/mysql-test/suite/innodb/r/instant_alter_purge.result @@ -0,0 +1,46 @@ +SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; +# +# MDEV-17793 Crash in purge after instant DROP and emptying the table +# +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; +InnoDB 1 transactions not purged +ALTER TABLE t1 DROP extra; +disconnect prevent_purge; +InnoDB 0 transactions not purged +DROP TABLE t1; +# +# MDEV-17813 Crash in instant ALTER TABLE due to purge +# concurrently emptying table +# +CREATE TABLE t1 (f2 INT) ENGINE=InnoDB; +INSERT INTO t1 SET f2=1; +ALTER TABLE t1 ADD COLUMN f1 INT; +connect purge_control,localhost,root; +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; +DELETE FROM t1; +SET DEBUG_SYNC='innodb_commit_inplace_alter_table_enter SIGNAL go WAIT_FOR do'; +ALTER TABLE t1 ADD COLUMN f3 INT; +connection purge_control; +SET DEBUG_SYNC='now WAIT_FOR go'; +COMMIT; +InnoDB 0 transactions not purged +SET DEBUG_SYNC='now SIGNAL do'; +disconnect purge_control; +connection default; +SET DEBUG_SYNC=RESET; +DROP TABLE t1; +SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; |