diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-12-27 16:28:22 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-12-27 16:31:27 +0200 |
commit | 88b7b8199a6061ccdeb2e2a1ac789eb98e02ac92 (patch) | |
tree | f3f98d197c345767827b7083735f3cd48f01f73e /mysql-test | |
parent | 003720755f44e4a17cc5ef952ae2af85b1eb778d (diff) | |
download | mariadb-git-88b7b8199a6061ccdeb2e2a1ac789eb98e02ac92.tar.gz |
MDEV-18076/MDEV-18077 Crash on AUTO_INCREMENT column after instant DROP
The fix for MDEV-17901 did not cover cases where the AUTO_INCREMENT
column was not dropped, but some other columns before it were.
commit_cache_norebuild(): Revert the MDEV-17901 fix.
dict_index_t::clear_instant_alter(): Update table->persistent_autoinc.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/suite/innodb/r/instant_alter.result | 29 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/instant_alter.test | 12 |
2 files changed, 40 insertions, 1 deletions
diff --git a/mysql-test/suite/innodb/r/instant_alter.result b/mysql-test/suite/innodb/r/instant_alter.result index b5e82ccaefe..f25e1de904d 100644 --- a/mysql-test/suite/innodb/r/instant_alter.result +++ b/mysql-test/suite/innodb/r/instant_alter.result @@ -578,6 +578,15 @@ id f 1 NULL 2 NULL DROP TABLE t1; +CREATE TABLE t1(f INT, k INT NOT NULL AUTO_INCREMENT, KEY(k)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 VALUES (1); +DROP TABLE t1; +CREATE TABLE t1(pk INT PRIMARY KEY, f INT, k INT AUTO_INCREMENT, KEY(k)) +ENGINE=InnoDB ROW_FORMAT=REDUNDANT; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 (pk) VALUES (1); +DROP TABLE t1; CREATE TABLE t1 ( pk INT PRIMARY KEY, f1 INT, @@ -1153,6 +1162,15 @@ id f 1 NULL 2 NULL DROP TABLE t1; +CREATE TABLE t1(f INT, k INT NOT NULL AUTO_INCREMENT, KEY(k)) ENGINE=InnoDB ROW_FORMAT=COMPACT; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 VALUES (1); +DROP TABLE t1; +CREATE TABLE t1(pk INT PRIMARY KEY, f INT, k INT AUTO_INCREMENT, KEY(k)) +ENGINE=InnoDB ROW_FORMAT=COMPACT; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 (pk) VALUES (1); +DROP TABLE t1; CREATE TABLE t1 ( pk INT PRIMARY KEY, f1 INT, @@ -1728,6 +1746,15 @@ id f 1 NULL 2 NULL DROP TABLE t1; +CREATE TABLE t1(f INT, k INT NOT NULL AUTO_INCREMENT, KEY(k)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 VALUES (1); +DROP TABLE t1; +CREATE TABLE t1(pk INT PRIMARY KEY, f INT, k INT AUTO_INCREMENT, KEY(k)) +ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 (pk) VALUES (1); +DROP TABLE t1; CREATE TABLE t1 ( pk INT PRIMARY KEY, f1 INT, @@ -1784,5 +1811,5 @@ SELECT variable_value-@old_instant instants FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; instants -125 +131 SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; diff --git a/mysql-test/suite/innodb/t/instant_alter.test b/mysql-test/suite/innodb/t/instant_alter.test index 449e154058a..273c9540606 100644 --- a/mysql-test/suite/innodb/t/instant_alter.test +++ b/mysql-test/suite/innodb/t/instant_alter.test @@ -447,6 +447,18 @@ ALTER TABLE t1 ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST, ADD KEY(id); SELECT * FROM t1; DROP TABLE t1; +# MDEV-18076/MDEV-18077 Crash on AUTO_INCREMENT column after instant DROP +eval CREATE TABLE t1(f INT, k INT NOT NULL AUTO_INCREMENT, KEY(k)) $engine; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 VALUES (1); +DROP TABLE t1; + +eval CREATE TABLE t1(pk INT PRIMARY KEY, f INT, k INT AUTO_INCREMENT, KEY(k)) +$engine; +ALTER TABLE t1 DROP COLUMN f; +INSERT INTO t1 (pk) VALUES (1); +DROP TABLE t1; + # MDEV-17763 Assertion `len == 20U' failed in rec_convert_dtuple_to_rec_comp # upon DROP COLUMN eval CREATE TABLE t1 ( |