1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-09 08:01:34 +03:00
Files
mariadb/mysql-test/suite/innodb/t
Marko Mäkelä 82187a1221 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 98694ab0cb (MDEV-20949).
2020-01-07 11:02:12 +02:00
..
2014-08-02 21:26:16 +02:00
2015-12-09 10:00:49 +01:00
2018-03-12 14:27:17 +02:00
2017-02-10 06:30:42 -05:00
2014-02-03 15:22:39 +01:00
2017-02-10 06:30:42 -05:00
2017-10-25 17:17:21 +03:00
2013-01-15 19:16:18 +01:00
2015-10-05 17:14:13 +02:00
2018-06-06 11:25:33 +03:00
2017-09-17 11:05:33 +03:00
2018-09-14 08:47:22 +02:00
2019-01-24 14:43:29 +02:00
2018-08-02 08:19:57 +03:00
2019-03-27 12:26:11 +02:00
2017-02-10 06:30:42 -05:00
2017-02-10 06:30:42 -05:00
2015-10-23 18:49:02 +03:00
2019-04-26 15:31:31 +03:00
2017-08-29 10:07:33 +03:00