diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-07-27 15:04:04 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-07-27 15:04:04 +0300 |
commit | fd9ca2a742abe2e91b2b77e70915dec7bd3cd7e1 (patch) | |
tree | a1dd480724f4b4e8a4f359a456eb90c412e6e505 /sql/handler.h | |
parent | 4968fdbcef1c2d62ed525dffac153cf9f8eb1913 (diff) | |
download | mariadb-git-fd9ca2a742abe2e91b2b77e70915dec7bd3cd7e1.tar.gz |
MDEV-23295 ROW_FORMAT mismatch in instant ALTER TABLE
An instant ADD/DROP/reorder column could create a dummy table
object with the wrong ROW_FORMAT when innodb_default_row_format
was changed between CREATE TABLE and ALTER TABLE.
prepare_inplace_alter_table_dict(): If we had promised that
ALGORITHM=INPLACE is supported, we must preserve the ROW_FORMAT.
dict_table_t::prepare_instant(): Add debug assertions to catch
ROW_FORMAT mismatch.
The rest of the changes are related to adding
Alter_inplace_info::inplace_supported to cache the return value of
handler::check_if_supported_inplace_alter().
Diffstat (limited to 'sql/handler.h')
-rw-r--r-- | sql/handler.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/handler.h b/sql/handler.h index 3757a3ab2f9..f4399ef0f5d 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -2440,6 +2440,9 @@ public: /** true for online operation (LOCK=NONE) */ bool online; + /** which ALGORITHM and LOCK are supported by the storage engine */ + enum_alter_inplace_result inplace_supported; + /** Can be set by handler to describe why a given operation cannot be done in-place (HA_ALTER_INPLACE_NOT_SUPPORTED) or why it cannot be done |