-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Rename order from the snapshot in mutation and selects #84295
Description
03352_concurrent_rename_alter is flaky.
#83821
#84081
I have described why it is flaky here.
#83830
I think I was not totally right there. We do apply renames at selects but do it wrong.
Also my solution how to mute/sync the tests is not working and I reverted it. It does not sync mutation without fixes from reverted PR which make the renames on mutation in right order.
Here 2 things are matters:
- what renames are aplied and what order on mutations
- and the same on selects.
For mutations we apply remanes in wrong order here:
| for_file_renames.push_back({.type = MutationCommand::Type::RENAME_COLUMN, .column_name = rename_from, .rename_to = rename_to}); |
It should be in order they are created. But we firstly do last mutation and only after the previous mutations.
For reading it is also wrong order here:
| name_in_storage = alter_conversions->getColumnOldName(name_in_storage); |
getColumnOldName walks from oldest to newest and take the first occurrence. But part could be renames several times, dropped and recreated. So it should be ether the last occurrence or even more complicated resolving.