Hello Jon Olav!
* Jon Olav Hauglid <jon.hauglid@stripped> [10/12/20 20:46]:
> #At file:///export/home/x/mysql-5.5-bugteam-bug42230/ based on
> revid:bjorn.munch@stripped
>
> 3217 Jon Olav Hauglid 2010-12-20
> Bug #42230 during add index, cannot do queries on storage engines
> that implement add_index
>
> The problem was that ALTER TABLE blocked reads on an InnoDB table
> while adding a secondary index, even if this was not needed. It is
> only needed for the final step where the .frm file is updated.
...
>
> This patch also changes some of the related terminology used
> in the code. Specifically the use of "fast" and "online" with
> respect to ALTER TABLE. "Fast" was used to indicate that an
> ALTER TABLE operation could be done without involving a
> temporary table. "Fast" has been renamed "in-place" to more
> accurately describe the behavior.
>
> "Online" meant that the operation could be done without taking
> a table lock. However, in the current implementation writes
> are always prohibited during ALTER TABLE and an exclusive
> metadata lock is held while updating the .frm, so ALTER TABLE
> was not completely online. This patch replaces "online" with
> "in-place", with additional comments indicating if concurrent
> reads are allowed during index creation/deletion or not.
>
> An important part of this update of terminology is renaming
> of the handler flags used by handlers to indicate if index
> creation/deletion can be done in-place and if concurrent reads
> are allowed. For example, the HA_ONLINE_ADD_INDEX_NO_WRITES
> flag has been renamed HA_INPLACE_ADD_INDEX_NO_READ_WRITE, while
> HA_ONLINE_ADD_INDEX is now HA_INPLACE_ADD_INDEX_NO_WRITE.
> Note that this is a rename to clarify current behavior, the
> flag values have not changed and no flags have been removed or
> added.
I think it is OK to push this patch!
Thank you a lot for addressing this issue!
...
--
Dmitry Lenev, Software Developer
Oracle Development SPB/MySQL, www.mysql.com
Are you MySQL certified? http://www.mysql.com/certification