diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 700ce54cf95..d60ebe4b941 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -15147,6 +15147,19 @@ bool prepare_fields_and_keys(THD *thd, const dd::Table *src_table, TABLE *table, my_error(ER_PK_INDEX_CANT_BE_INVISIBLE, MYF(0)); return true; } + if (key_create_info.is_visible == + alter_index_visibility->is_visible()) { + string str; + if (key_create_info.is_visible) { + str = "visible"; + } else { + str = "invisible"; + } + my_error(ER_KEY_INVISIBLE_INVALID, MYF(0), + alter_index_visibility->name(), table->s->table_name.str, + str.c_str()); + return true; + } key_create_info.is_visible = alter_index_visibility->is_visible(); } }