[MDEV-30563] Failure 1478: Table storage engine 'InnoDB' does not support the create option 'ROW_TYPE' upon OPTIMIZE TABLE after Recovery Created: 2023-02-03 Updated: 2023-11-08 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.6.6 |
| Fix Version/s: | 10.6 |
| Type: | Bug | Priority: | Major |
| Reporter: | Matthias Leich | Assignee: | Ian Gilfillan |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | rr-profile-analyzed | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Description |
|
|
| Comments |
| Comment by Marko Mäkelä [ 2023-02-04 ] | ||||||||||||||||||||
|
If this is like the case what I analyzed earlier, it should be like this (untested mtr test):
Due to innodb_file_per_table=0, the ROW_FORMAT=COMPRESSED would be refused by InnoDB but stored in the t1.frm file. The innodb_strict_mode=OFF allows the table to be created in this way. Because the attribute was stored in the t1.frm file, it would be part of the table definition passed to InnoDB in any subquent table-rebuilding ALTER TABLE or OPTIMIZE TABLE. If innodb_file_per_table=0 is still set, then the table would not be moved from the InnoDB system tablespace to a t1.ibd file, and hence the ROW_FORMAT=COMPRESSED cannot be fulfilled. If innodb_strict_mode is enabled (it is by default), this would result in the described error. TRUNCATE could be more lenient about this, because we wanted to avoid any change of behavior due to | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2023-02-04 ] | ||||||||||||||||||||
|
It indeed is as simple as I assumed. I successfully ran the following test case against 10.5.19:
This particular case would be fixed by MDEV-29985. But, something similar should be possible when using innodb_page_size=32k or innodb_page_size=64k:
With the page size combinations 4k, 8k, 16k, the test would pass. This be fixed by | ||||||||||||||||||||
| Comment by Marko Mäkelä [ 2023-02-04 ] | ||||||||||||||||||||
|
I think that we may need to evaluate whether our documentation needs to be clarified in this area. |