diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/instant_alter_bugs.test')
-rw-r--r-- | mysql-test/suite/innodb/t/instant_alter_bugs.test | 82 |
1 files changed, 81 insertions, 1 deletions
diff --git a/mysql-test/suite/innodb/t/instant_alter_bugs.test b/mysql-test/suite/innodb/t/instant_alter_bugs.test index 9cc0037703b..a5b1508305e 100644 --- a/mysql-test/suite/innodb/t/instant_alter_bugs.test +++ b/mysql-test/suite/innodb/t/instant_alter_bugs.test @@ -125,7 +125,7 @@ INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8) VALUES INSERT INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8) VALUES ('impact', 'b', 'h', 185, 'fj', 7, 7, 3); ALTER TABLE t1 ADD COLUMN filler VARCHAR(255) DEFAULT ''; -SELECT * FROM t1 INTO OUTFILE 'load.data'; +SELECT * INTO OUTFILE 'load.data' FROM t1; UPDATE IGNORE t1 SET pk = 0; LOAD DATA INFILE 'load.data' REPLACE INTO TABLE t1; HANDLER t1 OPEN AS h; @@ -136,3 +136,83 @@ HANDLER h CLOSE; DROP TABLE t1; --let $datadir= `select @@datadir` --remove_file $datadir/test/load.data + + +create table t ( + a varchar(9), + b int, + c int, + row_start bigint unsigned generated always as row start invisible, + row_end bigint unsigned generated always as row end invisible, + period for system_time (row_start, row_end) +) engine=innodb row_format=compressed with system versioning; +insert into t values (repeat('a', 9), 1, 1); +set @@system_versioning_alter_history = keep; +alter table t modify a varchar(10), algorithm=instant; +alter table t change b bb int, algorithm=instant; +alter table t modify c int without system versioning, algorithm=instant; +set @@system_versioning_alter_history = error; +check table t; +drop table t; + +--echo # +--echo # MDEV-18219 Assertion `index->n_core_null_bytes <= ...' failed +--echo # in rec_init_offsets after instant DROP COLUMN +--echo # +CREATE TABLE t1 (a INT, b INT NOT NULL) ENGINE=InnoDB; +INSERT INTO t1 VALUES +(0,9),(2,7),(3,1),(3,4),(8,4),(3,7),(6,1),(3,8),(1,2),(4,1),(0,8),(5,3), +(1,3),(1,6),(2,1),(8,7),(6,0),(1,9),(9,4),(0,6),(9,3),(0,9),(9,4),(2,4), +(2,7),(7,8),(8,2),(2,5),(6,1),(4,5),(5,3),(6,8),(4,9),(5,7),(7,5),(5,1), +(8,8),(5,7),(3,8),(0,1),(8,4),(8,3),(9,7),(4,8),(1,1),(0,4),(2,6),(8,5), +(8,8),(8,7),(6,7),(1,7),(9,6),(3,6),(1,9),(0,3),(5,3),(2,4),(0,6),(2,0), +(6,5),(1,6),(2,4),(9,1),(3,0),(6,4),(1,3),(0,8),(3,5),(3,1),(8,9),(9,9), +(7,9),(4,5),(2,2),(3,8),(0,8),(7,1),(2,0),(1,5),(7,3),(4,4),(3,9),(7,2), +(6,2),(0,4),(2,0),(1,5),(5,7),(4,5),(3,7),(6,0),(2,1),(5,0),(1,0),(2,0), +(8,4),(5,7),(3,5),(0,5),(7,6),(5,9),(1,2),(4,2),(8,5),(8,7),(2,8),(1,8), +(4,3),(1,6),(7,8),(3,7),(4,6),(1,1),(3,0),(1,6),(2,0),(3,4),(4,8),(3,9), +(8,0),(4,9),(4,0),(3,9),(6,4),(7,4),(5,8),(4,7),(7,3),(5,9),(2,3),(7,3), +(0,4),(5,9),(9,8),(4,2),(3,6),(2,6),(1,8),(7,0),(0,0),(2,3),(1,2),(3,3), +(2,7),(6,0),(9,0),(6,9),(4,6),(9,8),(0,7),(9,1),(9,6),(4,3),(7,7),(7,7), +(4,1),(4,7),(7,3),(2,8),(5,8),(8,9),(3,9),(7,7),(0,8),(4,9),(3,2),(5,0), +(1,7),(0,3),(2,9),(9,7),(7,5),(6,9),(8,5),(3,6),(1,1),(2,8),(7,9),(4,9), +(6,6),(5,9),(5,3),(9,8),(3,3),(5,6),(0,9),(3,9),(7,9),(7,3),(5,2),(1,4), +(4,4),(8,2),(2,2),(8,3),(9,1),(4,9),(9,8),(1,8),(1,8),(9,1),(1,1),(3,0), +(4,6),(9,3),(3,3),(5,2),(0,1),(3,4),(3,2),(1,3),(4,4),(7,0),(4,6),(7,2), +(4,5),(8,7),(7,8),(8,1),(3,5),(0,6),(3,5),(2,1),(4,4),(3,4),(2,1),(4,1); +INSERT INTO t1 SELECT * FROM t1; +ALTER TABLE t1 DROP a; +# Exploit MDEV-17468 to force the table definition to be reloaded +ALTER TABLE t1 ADD vb INT AS (b) VIRTUAL; +DROP TABLE t1; + +--echo # +--echo # MDEV-19030 Assertion index->n_core_null_bytes <= ... failed +--echo # in rec_init_offsets after instant DROP COLUMN +--echo # +CREATE TABLE t1 (a INT, b INT NOT NULL DEFAULT 0) ENGINE=InnoDB; +INSERT INTO t1 () VALUES (),(),(),(); +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +ALTER TABLE t1 FORCE; +INSERT INTO t1 SELECT * FROM t1; +ALTER TABLE t1 DROP a, ADD a SMALLINT NOT NULL; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +# Exploit MDEV-17468 to force the table definition to be reloaded +ALTER TABLE t1 ADD vb INT AS (b) VIRTUAL; +DROP TABLE t1; + +--echo # +--echo # MDEV-18623 Assertion after DROP FULLTEXT INDEX and removing NOT NULL +--echo # +CREATE TABLE t1 (c TEXT NOT NULL, FULLTEXT INDEX ftidx(c)) ENGINE=InnoDB +ROW_FORMAT=REDUNDANT; +ALTER TABLE t1 DROP INDEX ftidx; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +ALTER TABLE t1 MODIFY c TEXT NULL, ALGORITHM=INSTANT; +ALTER TABLE t1 MODIFY c TEXT NULL; +DROP TABLE t1; |