Allow for the online renaming of a column in the ALTER TABLE statement
Note: The only complication I can foresee would be in the renaming of columns used in FOREIGN KEY constraints. Other than that, it might be a pretty simple fix.
The ideal way to do this would be to flesh out the alter table proto (into a series of operations) and pass these down through the engine to make a decision.
I think the interface should look something like:
- list of changes passed to engine
- engine returns having deleted from the list the ones it can do
QUESTION: Should we have sep lists for online/
- If the engine has a data dictionary (existing flag) then it gets the list of metadata only changes. otherwise, the upper layer takes care of it (e.g. by writing new table proto message to disk)
This allows for implementation of EXPLAIN ALTER TABLE as well as explicit ALTER TABLE ONLINE/OFFLINE syntax.