When a DDL statement, such as CREATE TABLE or ALTER TABLE, affects an InnoDB table, InnoDB calculates the maximum row size of the new or altered table. If InnoDB detects that the maximum row size is too big to fit on an index's leaf page, then it prints the following message in the error log:
If innodb_strict_mode is enabled, then the message will be an error. If innodb_strict_mode is disabled, then the message will be a warning.
InnoDB performs this check, because it wants to ensure that it will be possible to insert every possible row for a given index definition.
The problem is that this check is currently being performed when executing DML, and not just when executing DDL. This means that users can see confusing warning or error messages in the error log. We should fix it, so that InnoDB only performs this specific check when executing DDL.
When executing DML, InnoDB will still have to check every actual tuple to determine whether it exceeds InnoDB's maximum row size. That check is still appropriate, and it shouldn't be touched in this MDEV.