← Back to team overview

maria-developers team mailing list archive

Re: ALTER ONLINE TABLE syntax

 

Sergei Golubchik <serg@xxxxxxxxxxx> writes:

> Unless we redefine what "online" mean. If not, there's no choice but
> stop claming an "online alter" support and remove ONLINE and LOCK=NONE
> from the syntax.
>
> Opinions?

I think "ONLINE" should mean: no exclusive lock is taken while data is
migrated from the old table definition to the new.

And LOCK=NONE should mean the same: no lock is taken while data of the table
is migrated.

Of course, if there is no need to migrate any data, then the operation is
trivially LOCK=NONE and ONLINE. Like `ALTER TABLE t1 MODIFY b INT DEFAULT 5`.

As you said, it's obvious that an exclusive lock is needed for the metadata
(you cannot alter the default of b to both 5 and 6 at the same time). So the
LOCK should be about the data migration (if any) which is the potentially
time-consuming one that users care about, not about the metadata lock on the
.frm file.

(I am not sure how this matches current MariaDB or MySQL behaviour, but it is
what I would expect and probably most other users as well).

Hope this helps,

 - Kristian.


Follow ups

References