[MDEV-18326] Refactor some ALTER column operations to use innobase_instant_try() Created: 2019-01-21 Updated: 2022-02-21 |
|
| Status: | Stalled |
| Project: | MariaDB Server |
| Component/s: | Data Definition - Alter Table, Storage Engine - InnoDB |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | Eugene Kosov (Inactive) | Assignee: | Thirunarayanan Balathandayuthapani |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
Subjects are: rename column, enlarge column, change column versioning. |
| Comments |
| Comment by Eugene Kosov (Inactive) [ 2019-01-22 ] |
|
Actually, rename columns is off topic. Because it happens not only on INSTANT but also in INPLACE https://github.com/MariaDB/server/blob/382115b99297ceaa4c3067f79efb5c2515013be5/storage/innobase/handler/handler0alter.cc#L9809 |
| Comment by Marko Mäkelä [ 2019-01-22 ] |
|
I do not think that renaming columns is any different from enlarging columns. It involves updating metadata only. Please extend the patch to cover enlarging columns. Ideally, there would be only one code path that updates SYS_COLUMNS and the data dictionary cache. |
| Comment by Eugene Kosov (Inactive) [ 2019-01-23 ] |
|
> I do not think that renaming columns is any different from enlarging columns. It involves updating metadata only. It is actually, because it works even in commit_try_rebuild(). Only pure instant operation could be moved inside `innobase_instant_try()`. > Please extend the patch to cover enlarging columns. Ideally, there would be only one code path that updates SYS_COLUMNS and the data dictionary cache. It's already in the patch. |
| Comment by Marko Mäkelä [ 2019-01-28 ] |
|
The current patch would cause unnecessary rebuild for ROW_FORMAT=COMPRESSED tables. We may have to limit the scope of this idea or to abandon it altogether. |