mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-7318 RENAME INDEX
This patch adds support of RENAME INDEX operation to the ALTER TABLE statement. Code which determines if ALTER TABLE can be done in-place for "simple" storage engines like MyISAM, Heap and etc. was updated to handle ALTER TABLE ... RENAME INDEX as an in-place operation. Support for in-place ALTER TABLE ... RENAME INDEX for InnoDB was covered by MDEV-13301. Syntax changes ============== A new type of <alter_specification> is added: <rename index clause> ::= RENAME ( INDEX | KEY ) <oldname> TO <newname> Where <oldname> and <newname> are identifiers for old name and new name of the index. Semantic changes ================ The result of "ALTER TABLE t1 RENAME INDEX a TO b" is a table which contents and structure are identical to the old version of 't1' with the only exception index 'a' being called 'b'. Neither <oldname> nor <newname> can be "primary". The index being renamed should exist and its new name should not be occupied by another index on the same table. Related to: WL#6555, MDEV-13301
This commit is contained in:
@ -19,6 +19,7 @@
|
||||
|
||||
class Alter_drop;
|
||||
class Alter_column;
|
||||
class Alter_rename_key;
|
||||
class Key;
|
||||
|
||||
/**
|
||||
@ -87,6 +88,8 @@ public:
|
||||
List<Alter_column> alter_list;
|
||||
// List of keys, used by both CREATE and ALTER TABLE.
|
||||
List<Key> key_list;
|
||||
// List of keys to be renamed.
|
||||
List<Alter_rename_key> alter_rename_key_list;
|
||||
// List of columns, used by both CREATE and ALTER TABLE.
|
||||
List<Create_field> create_list;
|
||||
|
||||
@ -123,6 +126,7 @@ public:
|
||||
drop_list.empty();
|
||||
alter_list.empty();
|
||||
key_list.empty();
|
||||
alter_rename_key_list.empty();
|
||||
create_list.empty();
|
||||
check_constraint_list.empty();
|
||||
flags= 0;
|
||||
|
Reference in New Issue
Block a user