1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Merge 10.0 into 10.1

This commit is contained in:
Marko Mäkelä
2019-01-24 13:24:13 +02:00
7 changed files with 197 additions and 17 deletions

View File

@ -6485,6 +6485,12 @@ static bool fill_alter_inplace_info(THD *thd,
KEY *new_key;
KEY *new_key_end=
ha_alter_info->key_info_buffer + ha_alter_info->key_count;
/*
Primary key index for the new table
*/
const KEY* const new_pk= (ha_alter_info->key_count > 0 &&
is_candidate_key(ha_alter_info->key_info_buffer)) ?
ha_alter_info->key_info_buffer : NULL;
DBUG_PRINT("info", ("index count old: %d new: %d",
table->s->keys, ha_alter_info->key_count));
@ -6560,6 +6566,16 @@ static bool fill_alter_inplace_info(THD *thd,
goto index_changed;
}
/*
Rebuild the index if following condition get satisfied:
(i) Old table doesn't have primary key, new table has it and vice-versa
(ii) Primary key changed to another existing index
*/
if ((new_key == new_pk) !=
((uint) (table_key - table->key_info) == table->s->primary_key))
goto index_changed;
/* Check that key comment is not changed. */
if (table_key->comment.length != new_key->comment.length ||
(table_key->comment.length &&