diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-01-07 10:43:22 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-01-07 11:02:12 +0200 |
commit | 82187a1221467c7d193fca60a11a020ab4228e4a (patch) | |
tree | 951aa643d58d93b03b7af4c4bdf3a06001b83c71 /mysql-test/suite/wsrep/t/variables.test | |
parent | 5824e9f8df35e24bada99ea1409301f9e166421f (diff) | |
download | mariadb-git-82187a1221467c7d193fca60a11a020ab4228e4a.tar.gz |
MDEV-21429 TRUNCATE and OPTIMIZE are being refused due to "row size too large"
By default (innodb_strict_mode=ON), InnoDB attempts to guarantee
at DDL time that any INSERT to the table can succeed.
MDEV-19292 recently revised the "row size too large" check in InnoDB.
The check still is somewhat inaccurate;
that should be addressed in MDEV-20194.
Note: If a table contains multiple long string columns so that each column
is part of a column prefix index, then an UPDATE that attempts to modify
all those columns at once may fail, because the undo log record might
not fit in a single undo log page (of innodb_page_size). In the worst case,
the undo log record would grow by about 3KiB of for each updated column.
The DDL-time check (since the InnoDB Plugin for MySQL 5.1) is optional
in the sense that when the maximum B-tree record size or undo log
record size would be exceeded, the DML operation will fail and the
transaction will be properly rolled back.
create_table_info_t::row_size_is_acceptable(): Add the parameter
'bool strict' so that innodb_strict_mode=ON can be overridden during
TRUNCATE, OPTIMIZE and ALTER TABLE...FORCE (when the storage format
is not changing).
create_table_info_t::create_table(): Perform a sloppy check for
TRUNCATE TABLE (create_fk=false).
prepare_inplace_alter_table_dict(): Perform a sloppy check for
simple operations.
trx_is_strict(): Remove. The function became unused in
commit 98694ab0cbaf623c6ad67dd45d6f90c5c6214fd1 (MDEV-20949).
Diffstat (limited to 'mysql-test/suite/wsrep/t/variables.test')
0 files changed, 0 insertions, 0 deletions