
revision-id: b85688df90600a39fd5f944c831ae8f777fbce4b (mariadb-10.5.2-444-gb85688df906) parent(s): dcf30322cabe61866cb0548dfb9fa70fcc387052 author: Varun Gupta committer: Sergei Petrunia timestamp: 2021-03-16 19:37:46 +0300 message: MDEV-25078: ALTER INDEX is inconsistent with ADD/DROP/RENAME index Allowing ALTER KEY syntax in ALTER TABLE,so one can use: ALTER TABLE tbl ALTER INDEX index_name IGNORED ALTER TABLE tbl ALTER KEY index_name IGNORED --- mysql-test/main/ignore_indexes.result | 21 +++++++++++++++++++++ mysql-test/main/ignore_indexes.test | 13 +++++++++++++ sql/sql_yacc.yy | 2 +- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/mysql-test/main/ignore_indexes.result b/mysql-test/main/ignore_indexes.result index a7b76146b04..733e44a3afa 100644 --- a/mysql-test/main/ignore_indexes.result +++ b/mysql-test/main/ignore_indexes.result @@ -458,3 +458,24 @@ BEGIN SET IGNORED= a+b; END | ERROR HY000: Unknown system variable 'IGNORED' +# +# ALLOWING ALTER KEY syntax in ALTER TABLE +# +CREATE TABLE t1 (a INT, KEY (a)); +ALTER TABLE t1 ALTER INDEX a IGNORED; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + KEY `a` (`a`) IGNORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a INT, KEY (a)); +ALTER TABLE t1 ALTER KEY a IGNORED; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + KEY `a` (`a`) IGNORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; diff --git a/mysql-test/main/ignore_indexes.test b/mysql-test/main/ignore_indexes.test index 185c653d52a..a1084f3eb9c 100644 --- a/mysql-test/main/ignore_indexes.test +++ b/mysql-test/main/ignore_indexes.test @@ -429,3 +429,16 @@ BEGIN SET IGNORED= a+b; END | DELIMITER ;| + +--echo # +--echo # ALLOWING ALTER KEY syntax in ALTER TABLE +--echo # + +CREATE TABLE t1 (a INT, KEY (a)); +ALTER TABLE t1 ALTER INDEX a IGNORED; +SHOW CREATE TABLE t1; +DROP TABLE t1; +CREATE TABLE t1 (a INT, KEY (a)); +ALTER TABLE t1 ALTER KEY a IGNORED; +SHOW CREATE TABLE t1; +DROP TABLE t1; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 341668d674d..eb25d206f7b 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -7794,7 +7794,7 @@ alter_list_item: if (unlikely(Lex->add_alter_list($4, $7, $3))) MYSQL_YYABORT; } - | ALTER INDEX_SYM ident ignorability + | ALTER key_or_index ident ignorability { LEX *lex= Lex; Alter_index_ignorability *ac= new (thd->mem_root)