Commit f339ef3f authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-26577 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2) during ADD COLUMN

prepare_inplace_alter_table_dict(): If the table will not be rebuilt,
preserve all of the original ROW_FORMAT, including the compressed
page size flags related to ROW_FORMAT=COMPRESSED.
parent a75ad735
#
# MDEV-26577 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)
# during ADD COLUMN
#
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
CREATE TABLE t2(a INT PRIMARY KEY) ENGINE=InnoDB;
FLUSH TABLES;
ALTER TABLE t2 ADD COLUMN b INT;
DROP TABLE t1,t2;
--source include/have_innodb.inc
--source include/innodb_row_format.inc
--echo #
--echo # MDEV-26577 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2)
--echo # during ADD COLUMN
--echo #
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
CREATE TABLE t2(a INT PRIMARY KEY) ENGINE=InnoDB;
FLUSH TABLES;
--let $datadir=`select @@datadir`
--remove_file $datadir/test/t2.frm
--copy_file $datadir/test/t1.frm $datadir/test/t2.frm
ALTER TABLE t2 ADD COLUMN b INT;
DROP TABLE t1,t2;
......@@ -5012,8 +5012,10 @@ prepare_inplace_alter_table_dict(
/* If we promised ALGORITHM=NOCOPY or ALGORITHM=INSTANT,
we must retain the original ROW_FORMAT of the table. */
flags = (user_table->flags & (DICT_TF_MASK_COMPACT
| DICT_TF_MASK_ZIP_SSIZE
| DICT_TF_MASK_ATOMIC_BLOBS))
| (flags & ~(DICT_TF_MASK_COMPACT
| DICT_TF_MASK_ZIP_SSIZE
| DICT_TF_MASK_ATOMIC_BLOBS));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment