MDEV-26621 assertion failue "index->table->persistent_autoinc" in /storage/innobase/btr/btr0btr.cc during IMPORT
dict_index_t::clear_instant_alter(): when searhing for an AUTO_INCREMENT column don't skip the beginning of the list because the field can be at the beginning of the list
This commit is contained in:
parent
689b8d060a
commit
5b0a76078a
@ -70,3 +70,11 @@ select * from t1;
|
||||
ERROR HY000: Tablespace has been discarded for table `t1`
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT) ENGINE=INNODB;
|
||||
CREATE TABLE t2 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT, i2 INT) ENGINE=INNODB;
|
||||
ALTER TABLE t2 DROP COLUMN i2, ALGORITHM=INSTANT;
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
DROP TABLE t2, t1;
|
||||
|
@ -82,3 +82,22 @@ select * from t1;
|
||||
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
|
||||
|
||||
--let $MYSQLD_DATADIR= `SELECT @@datadir`
|
||||
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT) ENGINE=INNODB;
|
||||
|
||||
CREATE TABLE t2 (id INT PRIMARY KEY AUTO_INCREMENT, i1 INT, i2 INT) ENGINE=INNODB;
|
||||
ALTER TABLE t2 DROP COLUMN i2, ALGORITHM=INSTANT;
|
||||
ALTER TABLE t2 DISCARD TABLESPACE;
|
||||
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_DATADIR/test/t2.ibd
|
||||
--copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_DATADIR/test/t2.cfg
|
||||
|
||||
UNLOCK TABLES;
|
||||
ALTER TABLE t2 IMPORT TABLESPACE;
|
||||
|
||||
DROP TABLE t2, t1;
|
||||
|
@ -2440,7 +2440,7 @@ inline void dict_index_t::clear_instant_alter()
|
||||
{ return a.col->ind < b.col->ind; });
|
||||
table->instant = NULL;
|
||||
if (ai_col) {
|
||||
auto a = std::find_if(begin, end,
|
||||
auto a = std::find_if(fields, end,
|
||||
[ai_col](const dict_field_t& f)
|
||||
{ return f.col == ai_col; });
|
||||
table->persistent_autoinc = (a == end) ? 0 : 1 + (a - fields);
|
||||
|
Loading…
x
Reference in New Issue
Block a user