[MDEV-33094] row-by-row logging needs to be disabled for the online ALTER log application stage Created: 2023-12-20 Updated: 2024-01-22 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Data Definition - Alter Table |
| Affects Version/s: | 11.2 |
| Fix Version/s: | 11.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Nikita Malyavin | Assignee: | Nikita Malyavin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
Engine-independent online alter table ( For the normal copy stage, the row-by-row logging was disabled in |
| Comments |
| Comment by Nikita Malyavin [ 2023-12-20 ] | ||||||||||||||||
|
Row-by-row logging is enabled for CREATE...SELECT in select_create::prepare.
REPLACE operation has a special treatment in comparison with UPDATE and DELETE – it needs row-grained logging to carefully rollback the failed row insertion inside the statement. In comparison, this would lead to a statement failure in INSERT/UPDATE/DELETE/CREATE...SELECT/ALTER TABLE. Online ALTER does not allow the replace behavior for the online log application (neither it does for the copy stage as of now), so it should be safe | ||||||||||||||||
| Comment by Marko Mäkelä [ 2023-12-20 ] | ||||||||||||||||
|
The fixes of this and MDEV-33087 may conflict with each other. We would want to only disable the row-level undo logging on the being-altered table, but only enable the |