• Aleksey Midenkov's avatar
    MDEV-7318 RENAME INDEX · 193725b8
    Aleksey Midenkov authored
    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
    193725b8
innodb_rename_index.test 15.6 KB