1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-01 17:39:21 +03:00
Files
mariadb/mysql-test/suite
Marko Mäkelä a635588b56 MDEV-25236 Online log apply fails for ROW_FORMAT=REDUNDANT tables
In other ROW_FORMAT than REDUNDANT, the InnoDB record header
size calculation depends on dict_index_t::n_core_null_bytes.

In ROW_FORMAT=REDUNDANT, the record header always is 6 bytes
plus n_fields or 2*n_fields bytes, depending on the maximum
record size. But, during online ALTER TABLE, the log records
in the temporary file always use a format similar to
ROW_FORMAT=DYNAMIC, even omitting the 5-byte fixed-length part
of the header.

While creating a temporary file record for a ROW_FORMAT=REDUNDANT
table, InnoDB must refer to dict_index_t::n_nullable.
The field dict_index_t::n_core_null_bytes is only valid for
other than ROW_FORMAT=REDUNDANT tables.

The bug does not affect MariaDB 10.3, because only
commit 7a27db778e (MDEV-15563)
allowed an ALGORITHM=INSTANT change of a NOT NULL column to
NULL in a ROW_FORMAT=REDUNDANT table.

The fix was developed by Thirunarayanan Balathandayuthapani
and tested by Matthias Leich. The test case was simplified by me.
2021-07-02 16:11:01 +03:00
..
2021-05-25 15:38:57 +03:00
2021-02-25 13:16:10 +11:00
2021-06-21 12:38:25 +03:00
2021-03-20 13:04:36 +02:00
2021-01-25 11:02:07 +02:00
2021-07-02 14:55:52 +03:00
2021-06-30 18:41:46 +03:00
2021-06-01 09:14:59 +03:00
2021-06-21 12:38:25 +03:00
2021-06-01 09:14:59 +03:00
2021-06-21 12:38:25 +03:00
2021-06-21 12:38:25 +03:00
2021-05-25 15:38:57 +03:00
2021-07-02 17:18:51 +10:00
2021-05-18 08:59:12 +03:00
2021-07-02 17:17:33 +10:00
2021-06-08 15:02:40 +03:00
2021-05-04 11:34:06 +03:00