Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
10.2.31, 10.3.22, 10.4.12, 10.5.2
-
CentOS 7
Description
When innodb_strict_mode is on, table creation and every alter table that would result in a too-large row size fails, issuing an error 1118:
ERROR 1118 (42000) at line 1: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
|
and logs a different but technically correct message to the error log:
2020-05-15 11:45:03 140346379175680 [ERROR] InnoDB: Cannot add field `c181` in table `test`.`toobig12` because after adding it, the row size is 8143 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.
|
However, when innodb_strict_mode=0 the error message becomes a warning message:
Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
|
but the same message written to the error log as an error when innodb_strict_mode was set to 1 gets written to the error log as a warning:
2020-05-15 11:45:03 140446790313728 [Warning] InnoDB: Cannot add field `c181` in table `test`.`toobig12` because after adding it, the row size is 8143 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.
|
The same problem happens with TRUNCATE TABLE and OPTIMIZE TABLE operations. However, these operations succeed and write the incorrect message to the log regardless of the value of innodb_strict_mode.
which is incorrect. The table gets successfully created with all fields including c181 and c182-c200.
Attachments
Issue Links
- relates to
-
MDEV-16969 Fix error message as promised in upstream Bug #69336
- Open
-
MDEV-19292 "Row size too large" error when creating table with lots columns when row format is DYNAMIC or COMPRESSED
- Closed
-
MDEV-20194 Warnings inconsistently issued upon CHECK on table from older versions
- Closed
-
MDEV-20448 Add link to release notes about "Row size too large" errors
- Closed
-
MDEV-20786 MariaDB server writes warnings into errorlog although 'log_warnings=0'
- Closed
-
MDEV-20832 Don't print "row size too large" warnings in error log if innodb_strict_mode=OFF and log_warnings<=2
- Closed
-
MDEV-20949 Stop performing unnecessary maximum row size check for DML
- Closed
-
MDEV-21261 When performing instant add column, InnoDB ignores innodb_strict_mode for "row size too large" check
- Confirmed
-
MDEV-21429 TRUNCATE and OPTIMIZE are being refused due to "row size too large"
- Closed
-
MDEV-23521 Implement an InnoDB row format that can use overflow pages for smaller columns
- Open