summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Gupta <varun.gupta@mariadb.com>2020-04-26 15:42:57 +0530
committerVarun Gupta <varun.gupta@mariadb.com>2020-05-06 17:19:58 +0530
commit4539d3ea77fc5fde63f515a97bc679afd7b614c7 (patch)
tree4d3381ab3e1330af957b66541adccd388d8d0b73
parent8ad3c6154b90314980faf1cdd4c317c9bbf5f84c (diff)
downloadmariadb-git-bb-10.5-mdev7317.tar.gz
MDEV-7317: Make an index ignorable to the optimizerbb-10.5-mdev7317
-rw-r--r--mysql-test/main/alter_table.result240
-rw-r--r--mysql-test/main/analyze.result4
-rw-r--r--mysql-test/main/compress.result8
-rw-r--r--mysql-test/main/create.result8
-rw-r--r--mysql-test/main/ctype_mb.result12
-rw-r--r--mysql-test/main/fulltext.result12
-rw-r--r--mysql-test/main/grant2.result4
-rw-r--r--mysql-test/main/grant4.result6
-rw-r--r--mysql-test/main/ignore_indexes.result381
-rw-r--r--mysql-test/main/ignore_indexes.test342
-rw-r--r--mysql-test/main/information_schema.result20
-rw-r--r--mysql-test/main/invisible_field_debug.result32
-rw-r--r--mysql-test/main/join.result6
-rw-r--r--mysql-test/main/key.result12
-rw-r--r--mysql-test/main/long_unique.result421
-rw-r--r--mysql-test/main/long_unique_bugs.result2
-rw-r--r--mysql-test/main/long_unique_update.result47
-rw-r--r--mysql-test/main/long_unique_using_hash.result18
-rw-r--r--mysql-test/main/merge.result8
-rw-r--r--mysql-test/main/mix2_myisam.result30
-rw-r--r--mysql-test/main/myisam.result126
-rw-r--r--mysql-test/main/mysqld--help.result5
-rw-r--r--mysql-test/main/mysqldump-utf8mb4.result2
-rw-r--r--mysql-test/main/partition.result8
-rw-r--r--mysql-test/main/pool_of_threads.result8
-rw-r--r--mysql-test/main/ps_1general.result6
-rw-r--r--mysql-test/main/ps_ddl.result4
-rw-r--r--mysql-test/main/repair.result16
-rw-r--r--mysql-test/main/select.result8
-rw-r--r--mysql-test/main/select_jcl6.result8
-rw-r--r--mysql-test/main/select_pkeycache.result8
-rw-r--r--mysql-test/main/show_check.result41
-rw-r--r--mysql-test/main/show_explain.result8
-rw-r--r--mysql-test/main/sp.result4
-rw-r--r--mysql-test/main/stat_tables.result60
-rw-r--r--mysql-test/main/stat_tables_innodb.result60
-rw-r--r--mysql-test/main/stat_tables_par.result4
-rw-r--r--mysql-test/main/stat_tables_par_innodb.result4
-rw-r--r--mysql-test/main/type_ranges.result30
-rw-r--r--mysql-test/main/view.result2
-rw-r--r--mysql-test/suite/binlog/r/binlog_stm_blackhole.result6
-rw-r--r--mysql-test/suite/funcs_1/r/is_columns_is.result2
-rw-r--r--mysql-test/suite/funcs_1/r/is_statistics.result105
-rw-r--r--mysql-test/suite/funcs_1/r/is_statistics_is.result4
-rw-r--r--mysql-test/suite/funcs_1/r/is_statistics_mysql.result156
-rw-r--r--mysql-test/suite/funcs_1/r/is_table_constraints.result30
-rw-r--r--mysql-test/suite/funcs_1/r/storedproc.result4
-rw-r--r--mysql-test/suite/heap/heap.result4
-rw-r--r--mysql-test/suite/heap/heap_btree.result4
-rw-r--r--mysql-test/suite/heap/heap_hash.result32
-rw-r--r--mysql-test/suite/innodb/r/innodb-index-online.result6
-rw-r--r--mysql-test/suite/innodb/r/innodb.result30
-rw-r--r--mysql-test/suite/innodb/r/innodb_stats.result10
-rw-r--r--mysql-test/suite/innodb_fts/r/fulltext.result12
-rw-r--r--mysql-test/suite/innodb_gis/r/alter_spatial_index.result146
-rw-r--r--mysql-test/suite/innodb_gis/r/create_spatial_index.result38
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree.result12
-rw-r--r--mysql-test/suite/innodb_gis/r/rtree_multi_pk.result8
-rw-r--r--mysql-test/suite/maria/maria-recovery-rtree-ft.result10
-rw-r--r--mysql-test/suite/maria/maria-recovery2.result4
-rw-r--r--mysql-test/suite/maria/maria.result98
-rw-r--r--mysql-test/suite/rpl/r/rpl_ddl.result12
-rw-r--r--mysql-test/suite/sys_vars/r/myisam_stats_method_func.result36
-rw-r--r--mysql-test/suite/sys_vars/r/optimizer_switch_basic.result32
-rw-r--r--mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result2
-rw-r--r--mysql-test/suite/vcol/r/vcol_keys_myisam.result18
-rw-r--r--sql/handler.cc6
-rw-r--r--sql/handler.h44
-rw-r--r--sql/item_func.cc2
-rw-r--r--sql/share/errmsg-utf8.txt2
-rw-r--r--sql/sql_alter.cc1
-rw-r--r--sql/sql_alter.h4
-rw-r--r--sql/sql_class.h23
-rw-r--r--sql/sql_priv.h4
-rw-r--r--sql/sql_show.cc10
-rw-r--r--sql/sql_table.cc106
-rw-r--r--sql/sql_yacc.yy22
-rw-r--r--sql/structs.h4
-rw-r--r--sql/sys_vars.cc1
-rw-r--r--sql/table.cc88
-rw-r--r--sql/table.h6
-rw-r--r--sql/unireg.cc26
-rw-r--r--sql/unireg.h6
-rw-r--r--storage/connect/mysql-test/connect/r/alter.result28
-rw-r--r--storage/connect/mysql-test/connect/r/json.result4
-rw-r--r--storage/connect/mysql-test/connect/r/part_file.result16
-rw-r--r--storage/connect/mysql-test/connect/r/part_table.result4
87 files changed, 2170 insertions, 1083 deletions
diff --git a/mysql-test/main/alter_table.result b/mysql-test/main/alter_table.result
index b012fdde54b..43afab7a73f 100644
--- a/mysql-test/main/alter_table.result
+++ b/mysql-test/main/alter_table.result
@@ -126,44 +126,44 @@ key (n3, n4, n1, n2),
key (n4, n1, n2, n3) );
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 n1 1 n1 A 0 NULL NULL BTREE
-t1 1 n1_2 1 n1 A NULL NULL NULL BTREE disabled
-t1 1 n1_2 2 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n1_2 3 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n1_2 4 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 1 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 2 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 3 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n2 4 n1 A NULL NULL NULL BTREE disabled
-t1 1 n3 1 n3 A NULL NULL NULL YES BTREE disabled
-t1 1 n3 2 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n3 3 n1 A NULL NULL NULL BTREE disabled
-t1 1 n3 4 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled
-t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled
-t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 n1 1 n1 A 0 NULL NULL BTREE NO
+t1 1 n1_2 1 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n1_2 2 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n1_2 3 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n1_2 4 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 1 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 2 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 3 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n2 4 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n3 1 n3 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n3 2 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n3 3 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n3 4 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled NO
+t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled NO
+t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 n1 1 n1 A 10 NULL NULL BTREE
-t1 1 n1_2 1 n1 A 10 NULL NULL BTREE
-t1 1 n1_2 2 n2 A 10 NULL NULL YES BTREE
-t1 1 n1_2 3 n3 A 10 NULL NULL YES BTREE
-t1 1 n1_2 4 n4 A 10 NULL NULL YES BTREE
-t1 1 n2 1 n2 A 10 NULL NULL YES BTREE
-t1 1 n2 2 n3 A 10 NULL NULL YES BTREE
-t1 1 n2 3 n4 A 10 NULL NULL YES BTREE
-t1 1 n2 4 n1 A 10 NULL NULL BTREE
-t1 1 n3 1 n3 A 10 NULL NULL YES BTREE
-t1 1 n3 2 n4 A 10 NULL NULL YES BTREE
-t1 1 n3 3 n1 A 10 NULL NULL BTREE
-t1 1 n3 4 n2 A 10 NULL NULL YES BTREE
-t1 1 n4 1 n4 A 10 NULL NULL YES BTREE
-t1 1 n4 2 n1 A 10 NULL NULL BTREE
-t1 1 n4 3 n2 A 10 NULL NULL YES BTREE
-t1 1 n4 4 n3 A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 n1 1 n1 A 10 NULL NULL BTREE NO
+t1 1 n1_2 1 n1 A 10 NULL NULL BTREE NO
+t1 1 n1_2 2 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n1_2 3 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n1_2 4 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n2 1 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n2 2 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n2 3 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n2 4 n1 A 10 NULL NULL BTREE NO
+t1 1 n3 1 n3 A 10 NULL NULL YES BTREE NO
+t1 1 n3 2 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n3 3 n1 A 10 NULL NULL BTREE NO
+t1 1 n3 4 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n4 1 n4 A 10 NULL NULL YES BTREE NO
+t1 1 n4 2 n1 A 10 NULL NULL BTREE NO
+t1 1 n4 3 n2 A 10 NULL NULL YES BTREE NO
+t1 1 n4 4 n3 A 10 NULL NULL YES BTREE NO
drop table t1;
create table t1 (i int unsigned not null auto_increment primary key);
alter table t1 rename t2;
@@ -176,19 +176,19 @@ drop table t1;
create table t1 (a int, b int);
alter table t1 add unique (a,b), add key (b);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A 3 NULL NULL YES BTREE
-t1 0 a 2 b A 300 NULL NULL YES BTREE
-t1 1 b 1 b A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A 3 NULL NULL YES BTREE NO
+t1 0 a 2 b A 300 NULL NULL YES BTREE NO
+t1 1 b 1 b A 100 NULL NULL YES BTREE NO
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status Table is already up to date
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A 3 NULL NULL YES BTREE
-t1 0 a 2 b A 300 NULL NULL YES BTREE
-t1 1 b 1 b A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A 3 NULL NULL YES BTREE NO
+t1 0 a 2 b A 300 NULL NULL YES BTREE NO
+t1 1 b 1 b A 100 NULL NULL YES BTREE NO
drop table t1;
CREATE TABLE t1 (i int(10), index(i) ) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
@@ -204,9 +204,9 @@ ALTER TABLE t1 DISABLE KEYS;
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
ALTER TABLE t1 ENABLE KEYS;
UNLOCK TABLES;
CHECK TABLES t1;
@@ -221,23 +221,23 @@ KEY (Host)
) ENGINE=MyISAM;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
LOCK TABLES t1 WRITE;
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
ALTER TABLE t1 ENABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
-t1 1 Host 1 Host A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 2 NULL NULL BTREE NO
+t1 1 Host 1 Host A 1 NULL NULL BTREE NO
UNLOCK TABLES;
CHECK TABLES t1;
Table Op Msg_type Msg_text
@@ -259,10 +259,10 @@ KEY (Host)
LOCK TABLES t1 WRITE;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
-t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
-t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE NO
+t1 0 PRIMARY 2 User A 0 NULL NULL BTREE NO
+t1 1 Host 1 Host A NULL NULL NULL BTREE disabled NO
DROP TABLE t1;
create table t1 (a int);
alter table t1 rename to ``;
@@ -445,38 +445,38 @@ drop table t1;
drop table if exists t1;
create table t1 (a int, key(a));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
"this used not to disable the index"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 add b char(10), disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 add c decimal(10,2), enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
"this however did"
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
desc t1;
Field Type Null Key Default Extra
a bigint(20) YES MUL NULL
@@ -485,83 +485,83 @@ c decimal(10,2) YES NULL
alter table t1 add d decimal(15,5);
"The key should still be disabled"
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
drop table t1;
"Now will test with one unique index"
create table t1(a int, b char(10), unique(a));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"Unique index, no change"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
"Change the type implying data copy"
"Unique index, no change"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a bigint;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
drop table t1;
"Now will test with one unique and one non-unique index"
create table t1(a int, b char(10), unique(a), key(b));
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
"If no copy on noop change, this won't touch the data file"
"The non-unique index will be disabled"
alter table t1 modify a int, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
"Change the type implying data copy"
"The non-unique index will be disabled"
alter table t1 modify a bigint, disable keys;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
"Change again the type, but leave the indexes as_is"
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
"Try the same. When data is no copied on similar tables, this is noop"
alter table t1 modify a int;
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE disabled NO
drop table t1;
create database mysqltest;
create table t1 (c1 int);
@@ -597,12 +597,12 @@ DROP TABLE IF EXISTS bug24219;
DROP TABLE IF EXISTS bug24219_2;
CREATE TABLE bug24219 (a INT, INDEX(a));
SHOW INDEX FROM bug24219;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-bug24219 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+bug24219 1 a 1 a A NULL NULL NULL YES BTREE NO
ALTER TABLE bug24219 RENAME TO bug24219_2, DISABLE KEYS;
SHOW INDEX FROM bug24219_2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-bug24219_2 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+bug24219_2 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
DROP TABLE bug24219_2;
drop table if exists table_24562;
create table table_24562(
@@ -1045,8 +1045,8 @@ Field Type Null Key Default Extra
int_field int(10) unsigned NO MUL NULL
char_field char(10) YES NULL
SHOW INDEXES FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 int_field 1 int_field A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 int_field 1 int_field A NULL NULL NULL BTREE NO
INSERT INTO t1 VALUES (1, "edno"), (1, "edno"), (2, "dve"), (3, "tri"), (5, "pet");
"Non-copy data change - new frm, but old data and index files"
ALTER TABLE t1
diff --git a/mysql-test/main/analyze.result b/mysql-test/main/analyze.result
index dd785abcd42..0fa7f01b55d 100644
--- a/mysql-test/main/analyze.result
+++ b/mysql-test/main/analyze.result
@@ -60,8 +60,8 @@ analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
drop table t1;
End of 4.1 tests
create table t1(a int);
diff --git a/mysql-test/main/compress.result b/mysql-test/main/compress.result
index 788eb7ab13b..c74e2b2146c 100644
--- a/mysql-test/main/compress.result
+++ b/mysql-test/main/compress.result
@@ -2097,10 +2097,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/create.result b/mysql-test/main/create.result
index d22d55669ac..8fbf7310313 100644
--- a/mysql-test/main/create.result
+++ b/mysql-test/main/create.result
@@ -984,13 +984,13 @@ CREATE TABLE t1(c1 VARCHAR(33), KEY (c1) USING BTREE);
DROP TABLE t1;
CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1) USING HASH) ENGINE=MEMORY;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH NO
DROP TABLE t1;
CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 c1 1 c1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 c1 1 c1 A NULL NULL NULL YES BTREE NO
DROP TABLE t1;
create user mysqltest_1@'test@test';
ERROR HY000: Malformed hostname (illegal symbol: '@')
diff --git a/mysql-test/main/ctype_mb.result b/mysql-test/main/ctype_mb.result
index 015457cc1b3..53a7e6bfdff 100644
--- a/mysql-test/main/ctype_mb.result
+++ b/mysql-test/main/ctype_mb.result
@@ -32,8 +32,8 @@ t1 CREATE TABLE `t1` (
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
ALTER TABLE t1 CHANGE a a CHAR(4);
SHOW CREATE TABLE t1;
Table Create Table
@@ -42,8 +42,8 @@ t1 CREATE TABLE `t1` (
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
ALTER TABLE t1 CHANGE a a CHAR(4) CHARACTER SET utf8;
SHOW CREATE TABLE t1;
Table Create Table
@@ -52,6 +52,6 @@ t1 CREATE TABLE `t1` (
KEY `key_a` (`a`(3))
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW KEYS FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 key_a 1 a A NULL 3 NULL YES BTREE NO
DROP TABLE t1;
diff --git a/mysql-test/main/fulltext.result b/mysql-test/main/fulltext.result
index dbc08144e30..a068ee04a82 100644
--- a/mysql-test/main/fulltext.result
+++ b/mysql-test/main/fulltext.result
@@ -6,9 +6,9 @@ INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
('Function MATCH ... AGAINST()','is used to do a search'),
('Full-text search in MySQL', 'implements vector space model');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
-t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT NO
+t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT NO
select * from t1 where MATCH(a,b) AGAINST ("collections");
a b
Only MyISAM tables support collections
@@ -242,9 +242,9 @@ match(ttxt.inhalt) against ('foobar');
id
3
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 1 tig 1 ticket A NULL NULL NULL YES BTREE
-t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 1 tig 1 ticket A NULL NULL NULL YES BTREE NO
+t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT NO
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
diff --git a/mysql-test/main/grant2.result b/mysql-test/main/grant2.result
index 626c69afff0..a7ac5d9e099 100644
--- a/mysql-test/main/grant2.result
+++ b/mysql-test/main/grant2.result
@@ -708,8 +708,8 @@ a
SHOW COLUMNS FROM t1;
Field Type Null Key Default Extra
SHOW KEYS FROM t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 0 PRIMARY 1 a A 0 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t3 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
#
# SHOW CREATE TABLE.
#
diff --git a/mysql-test/main/grant4.result b/mysql-test/main/grant4.result
index f252a4c2ad5..aed9519d152 100644
--- a/mysql-test/main/grant4.result
+++ b/mysql-test/main/grant4.result
@@ -94,14 +94,14 @@ use mysqltest_db1;
** SELECT FROM INFORMATION_SCHEMA.STATISTICS will succeed because any privileges will do (authentication is enough).
** but will return no rows
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
SHOW INDEX FROM t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5'
** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6.
SHOW INDEX FROM t6;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t6 1 i 1 s1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t6 1 i 1 s1 A NULL NULL NULL YES BTREE NO
** CHECK TABLE requires any privilege on any column combination and should succeed for t6:
CHECK TABLE t6;
Table Op Msg_type Msg_text
diff --git a/mysql-test/main/ignore_indexes.result b/mysql-test/main/ignore_indexes.result
new file mode 100644
index 00000000000..ee4af96db4f
--- /dev/null
+++ b/mysql-test/main/ignore_indexes.result
@@ -0,0 +1,381 @@
+#
+# MDEV-7317: Make an index ignorable to the optimizer
+#
+# Test of ALTER INDEX syntax.
+CREATE TABLE t1 ( a INT, KEY (a) );
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+SHOW KEYS FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+DROP TABLE t1;
+# Test of CREATE INDEX syntax with IGNORE indexes.
+CREATE TABLE t1 ( a INT, b INT );
+CREATE INDEX a_invisible ON t1(a) IGNORE;
+CREATE INDEX b_visible ON t1(a) NOT IGNORE;
+Warnings:
+Note 1831 Duplicate index `b_visible`. This is deprecated and will be disallowed in a future release
+CREATE INDEX a_b_invisible ON t1(a, b) IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a_invisible 1 a A NULL NULL NULL YES BTREE YES
+t1 1 b_visible 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_b_invisible 1 a A NULL NULL NULL YES BTREE YES
+t1 1 a_b_invisible 2 b A NULL NULL NULL YES BTREE YES
+DROP TABLE t1;
+# Test that IGNORE indexes are not used.
+CREATE TABLE t1 ( a INT, KEY (a) );
+CREATE TABLE t2 ( a INT, KEY (a) IGNORE );
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 SELECT * FROM t1;
+ANALYZE TABLE t1, t2;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+test.t2 analyze status Engine-independent statistics collected
+test.t2 analyze status Table is already up to date
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 5 Using index
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 5
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 5 Using index
+EXPLAIN SELECT a FROM t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5
+ALTER TABLE t2 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t2;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t2 index NULL a 5 NULL 5 Using index
+DROP TABLE t1, t2;
+# Test that renaming an index does not change visibility and vice versa.
+CREATE TABLE t1 (
+a INT, INDEX (a),
+b INT, INDEX (b) IGNORE
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 RENAME INDEX a TO a1;
+ALTER TABLE t1 RENAME INDEX b TO b1;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a1 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b1 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a1 IGNORE;
+ALTER TABLE t1 ALTER INDEX b1 NOT IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a1 1 a A NULL NULL NULL YES BTREE YES
+t1 1 b1 1 b A NULL NULL NULL YES BTREE NO
+DROP TABLE t1;
+# Test of SHOW CREATE TABLE.
+CREATE TABLE t1 (
+a INT,
+b INT,
+c INT,
+INDEX (a) NOT IGNORE,
+INDEX (b) IGNORE,
+INDEX (c)
+);
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` int(11) DEFAULT NULL,
+ `b` int(11) DEFAULT NULL,
+ `c` int(11) DEFAULT NULL,
+ KEY `a` (`a`),
+ KEY `b` (`b`) IGNORE,
+ KEY `c` (`c`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+DROP TABLE t1;
+# Test that primary key indexes can't be made invisible.
+CREATE TABLE t1 ( a INT, PRIMARY KEY (a) IGNORE );
+ERROR HY000: A primary key cannot be marked as IGNORE
+CREATE TABLE t1 ( a INT PRIMARY KEY IGNORE );
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IGNORE )' at line 1
+CREATE TABLE t1 ( a INT KEY IGNORE );
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IGNORE )' at line 1
+ALTER TABLE t1 ALTER INDEX PRIMARY IGNORE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'PRIMARY IGNORE' at line 1
+CREATE TABLE t1(a INT NOT NULL);
+ALTER TABLE t1 ADD PRIMARY KEY (a) IGNORE;
+ERROR HY000: A primary key cannot be marked as IGNORE
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT, KEY (a),
+b INT, KEY (b) IGNORE
+);
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORE;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+DROP TABLE t1;
+CREATE TABLE t1 (
+a INT, KEY (a),
+b INT, KEY (b) IGNORE
+);
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORE;
+ERROR 42000: Key 'no_such_index' doesn't exist in table 't1'
+#
+# Repeated alter actions. Should work.
+#
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALTER INDEX a NOT IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, ALTER INDEX b IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE YES
+#
+# Various combinations of RENAME INDEX and ALTER INDEX ... INVISIBLE.
+#
+ALTER TABLE t1 RENAME INDEX a TO x, RENAME INDEX x TO a;
+ERROR 42000: Key 'x' doesn't exist in table 't1'
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX x IGNORE;
+ERROR 42000: Key 'x' doesn't exist in table 't1'
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX a NOT IGNORE;
+ERROR 42000: Key 'a' doesn't exist in table 't1'
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, RENAME INDEX a TO x;
+ERROR 42000: Key 'a' doesn't exist in table 't1'
+#
+# Various algorithms and their effects.
+#
+INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALGORITHM = COPY;
+affected rows: 3
+info: Records: 3 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 3 NULL NULL YES BTREE YES
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, ALGORITHM = INPLACE;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 3 NULL NULL YES BTREE NO
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALGORITHM = DEFAULT;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 3 NULL NULL YES BTREE YES
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+affected rows: 0
+info: Records: 0 Duplicates: 0 Warnings: 0
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status Table is already up to date
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 3 NULL NULL YES BTREE NO
+t1 1 b 1 b A 3 NULL NULL YES BTREE YES
+ALTER TABLE t1 ADD INDEX ab(a, b), ALTER INDEX ab IGNORE;
+ERROR 42000: Key 'ab' doesn't exist in table 't1'
+DROP TABLE t1;
+#
+# The first NOT NULL UNIQUE index may of course be IGNORED if it is
+# not promoted to a primary key
+#
+CREATE TABLE t1 (
+a INT NOT NULL,
+b INT NOT NULL PRIMARY KEY,
+UNIQUE KEY (a) IGNORE
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 b A 0 NULL NULL BTREE NO
+t1 0 a 1 a A 0 NULL NULL BTREE YES
+DROP TABLE t1;
+# The check above applies only to the first NOT NULL UNIQUE index.
+CREATE TABLE t1 (
+a INT NOT NULL,
+b INT NOT NULL,
+UNIQUE KEY (a),
+UNIQUE KEY (b) IGNORE
+);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A 0 NULL NULL BTREE NO
+t1 0 b 1 b A 0 NULL NULL BTREE YES
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT NOT NULL, UNIQUE KEY (a) IGNORE);
+ERROR HY000: A primary key cannot be marked as IGNORE
+CREATE TEMPORARY TABLE t1 ( a INT, KEY (a) IGNORE);
+INSERT INTO t1 VALUES (0), (1), (2), (3);
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 5 NULL 4 Using index
+DROP TABLE t1;
+#
+# IGNORE fulltext indexes.
+#
+CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
+INSERT INTO t1 VALUES('Some data', 'for full-text search');
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze Warning Engine-independent statistics are not collected for column 'b'
+test.t1 analyze status OK
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 fulltext a a 0 1 Using where
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+ERROR HY000: Can't find FULLTEXT index matching the column list
+DROP TABLE t1;
+#
+# IGNORE indexes on AUTO_INCREMENT columns.
+#
+CREATE TABLE t1 ( a INT AUTO_INCREMENT, KEY ( a ) );
+INSERT INTO t1 VALUES (), (), ();
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 4 NULL 3 Using index
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 3 NULL NULL BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+DROP TABLE t1;
+#
+# IGNORE spatial indexes
+#
+CREATE TABLE t1 (
+fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+g GEOMETRY NOT NULL,
+SPATIAL KEY key1(g)
+);
+EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 range key1 key1 34 NULL 8 Using where
+ALTER TABLE t1 ALTER INDEX key1 IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 fid A 150 NULL NULL BTREE NO
+t1 1 key1 1 g A NULL 32 NULL SPATIAL YES
+EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 150 Using where
+DROP TABLE t1;
+CREATE TABLE t1 ( a INT GENERATED ALWAYS AS (1), KEY key1(a));
+INSERT INTO t1 VALUES (),(),();
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 key1 1 a A NULL NULL NULL YES BTREE NO
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL key1 5 NULL 3 Using index
+ALTER TABLE t1 ALTER INDEX key1 IGNORE;
+SHOW INDEXES FROM t1;
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 key1 1 a A NULL NULL NULL YES BTREE YES
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 3
+DROP TABLE t1;
+#
+# Partitioning on keys with an IGNORE index, IGNORE indexes over
+# partitioned tables.
+#
+CREATE TABLE t1 (
+a CHAR(2) NOT NULL,
+b CHAR(2) NOT NULL,
+c INT(10) UNSIGNED NOT NULL,
+d VARCHAR(255) DEFAULT NULL,
+e VARCHAR(1000) DEFAULT NULL,
+KEY (a) IGNORE,
+KEY (b)
+) PARTITION BY KEY (a) PARTITIONS 20;
+INSERT INTO t1 (a, b, c, d, e) VALUES
+('07', '03', 343, '1', '07_03_343'),
+('01', '04', 343, '2', '01_04_343'),
+('01', '06', 343, '3', '01_06_343'),
+('01', '07', 343, '4', '01_07_343'),
+('01', '08', 343, '5', '01_08_343'),
+('01', '09', 343, '6', '01_09_343'),
+('03', '03', 343, '7', '03_03_343'),
+('03', '06', 343, '8', '03_06_343'),
+('03', '07', 343, '9', '03_07_343'),
+('04', '03', 343, '10', '04_03_343'),
+('04', '06', 343, '11', '04_06_343'),
+('05', '03', 343, '12', '05_03_343'),
+('11', '03', 343, '13', '11_03_343'),
+('11', '04', 343, '14', '11_04_343');
+ANALYZE TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 14
+EXPLAIN SELECT b FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL b 2 NULL 14 Using index
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using where
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 index NULL a 2 NULL 14 Using index
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ref a a 2 const 2 Using where
+ALTER TABLE t1 ALTER INDEX b IGNORE;
+EXPLAIN SELECT b FROM t1;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE t1 ALL NULL NULL NULL NULL 14
+DROP TABLE t1;
diff --git a/mysql-test/main/ignore_indexes.test b/mysql-test/main/ignore_indexes.test
new file mode 100644
index 00000000000..6648609e722
--- /dev/null
+++ b/mysql-test/main/ignore_indexes.test
@@ -0,0 +1,342 @@
+--echo #
+--echo # MDEV-7317: Make an index ignorable to the optimizer
+--echo #
+
+
+--echo # Test of ALTER INDEX syntax.
+
+CREATE TABLE t1 ( a INT, KEY (a) );
+SHOW KEYS FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+SHOW KEYS FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+SHOW KEYS FROM t1;
+DROP TABLE t1;
+
+--echo # Test of CREATE INDEX syntax with IGNORE indexes.
+
+CREATE TABLE t1 ( a INT, b INT );
+CREATE INDEX a_invisible ON t1(a) IGNORE;
+CREATE INDEX b_visible ON t1(a) NOT IGNORE;
+CREATE INDEX a_b_invisible ON t1(a, b) IGNORE;
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--echo # Test that IGNORE indexes are not used.
+
+CREATE TABLE t1 ( a INT, KEY (a) );
+CREATE TABLE t2 ( a INT, KEY (a) IGNORE );
+
+INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
+INSERT INTO t2 SELECT * FROM t1;
+
+ANALYZE TABLE t1, t2;
+
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+
+EXPLAIN SELECT a FROM t2;
+ALTER TABLE t2 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t2;
+
+DROP TABLE t1, t2;
+
+--echo # Test that renaming an index does not change visibility and vice versa.
+
+CREATE TABLE t1 (
+ a INT, INDEX (a),
+ b INT, INDEX (b) IGNORE
+);
+
+SHOW INDEXES FROM t1;
+
+ALTER TABLE t1 RENAME INDEX a TO a1;
+ALTER TABLE t1 RENAME INDEX b TO b1;
+
+SHOW INDEXES FROM t1;
+
+ALTER TABLE t1 ALTER INDEX a1 IGNORE;
+ALTER TABLE t1 ALTER INDEX b1 NOT IGNORE;
+
+SHOW INDEXES FROM t1;
+
+DROP TABLE t1;
+
+--echo # Test of SHOW CREATE TABLE.
+
+CREATE TABLE t1 (
+ a INT,
+ b INT,
+ c INT,
+ INDEX (a) NOT IGNORE,
+ INDEX (b) IGNORE,
+ INDEX (c)
+);
+
+SHOW CREATE TABLE t1;
+
+DROP TABLE t1;
+
+--echo # Test that primary key indexes can't be made invisible.
+
+--error ER_PK_INDEX_CANT_BE_IGNORED
+CREATE TABLE t1 ( a INT, PRIMARY KEY (a) IGNORE );
+--error ER_PARSE_ERROR
+CREATE TABLE t1 ( a INT PRIMARY KEY IGNORE );
+--error ER_PARSE_ERROR
+CREATE TABLE t1 ( a INT KEY IGNORE );
+--error ER_PARSE_ERROR
+ALTER TABLE t1 ALTER INDEX PRIMARY IGNORE;
+
+CREATE TABLE t1(a INT NOT NULL);
+--error ER_PK_INDEX_CANT_BE_IGNORED
+ALTER TABLE t1 ADD PRIMARY KEY (a) IGNORE;
+
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (
+ a INT, KEY (a),
+ b INT, KEY (b) IGNORE
+);
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORE;
+
+DROP TABLE t1;
+
+
+CREATE TABLE t1 (
+ a INT, KEY (a),
+ b INT, KEY (b) IGNORE
+);
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX no_such_index TO x;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX no_such_index IGNORE;
+
+
+--echo #
+--echo # Repeated alter actions. Should work.
+--echo #
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALTER INDEX a NOT IGNORE;
+SHOW INDEXES FROM t1;
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, ALTER INDEX b IGNORE;
+SHOW INDEXES FROM t1;
+
+
+--echo #
+--echo # Various combinations of RENAME INDEX and ALTER INDEX ... INVISIBLE.
+--echo #
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, RENAME INDEX x TO a;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX x IGNORE;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 RENAME INDEX a TO x, ALTER INDEX a NOT IGNORE;
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, RENAME INDEX a TO x;
+
+
+--echo #
+--echo # Various algorithms and their effects.
+--echo #
+
+INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
+ANALYZE TABLE t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALGORITHM = COPY;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE, ALGORITHM = INPLACE;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a IGNORE, ALGORITHM = DEFAULT;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--enable_info
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+--disable_info
+ANALYZE TABLE t1;
+SHOW INDEXES FROM t1;
+
+--error ER_KEY_DOES_NOT_EXISTS
+ALTER TABLE t1 ADD INDEX ab(a, b), ALTER INDEX ab IGNORE;
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # The first NOT NULL UNIQUE index may of course be IGNORED if it is
+--echo # not promoted to a primary key
+--echo #
+
+CREATE TABLE t1 (
+ a INT NOT NULL,
+ b INT NOT NULL PRIMARY KEY,
+ UNIQUE KEY (a) IGNORE
+);
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--echo # The check above applies only to the first NOT NULL UNIQUE index.
+CREATE TABLE t1 (
+ a INT NOT NULL,
+ b INT NOT NULL,
+ UNIQUE KEY (a),
+ UNIQUE KEY (b) IGNORE
+);
+SHOW INDEXES FROM t1;
+DROP TABLE t1;
+
+--error ER_PK_INDEX_CANT_BE_IGNORED
+CREATE TABLE t1 ( a INT NOT NULL, UNIQUE KEY (a) IGNORE);
+
+
+CREATE TEMPORARY TABLE t1 ( a INT, KEY (a) IGNORE);
+INSERT INTO t1 VALUES (0), (1), (2), (3);
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+
+DROP TABLE t1;
+
+--echo #
+--echo # IGNORE fulltext indexes.
+--echo #
+CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
+INSERT INTO t1 VALUES('Some data', 'for full-text search');
+ANALYZE TABLE t1;
+
+let $query=
+EXPLAIN SELECT * FROM t1 WHERE MATCH(a, b) AGAINST ("collections");
+
+--eval $query
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+
+--error ER_FT_MATCHING_KEY_NOT_FOUND
+--eval $query
+
+DROP TABLE t1;
+
+
+--echo #
+--echo # IGNORE indexes on AUTO_INCREMENT columns.
+--echo #
+CREATE TABLE t1 ( a INT AUTO_INCREMENT, KEY ( a ) );
+INSERT INTO t1 VALUES (), (), ();
+ANALYZE TABLE t1;
+
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX a IGNORE;
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+
+DROP TABLE t1;
+
+--echo #
+--echo # IGNORE spatial indexes
+--echo #
+
+
+CREATE TABLE t1 (
+ fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ g GEOMETRY NOT NULL,
+ SPATIAL KEY key1(g)
+);
+
+--disable_query_log
+let $1=150;
+let $2=150;
+while ($1)
+{
+ eval INSERT INTO t1 (g) VALUES (GeomFromText('LineString($1 $1, $2 $2)'));
+ dec $1;
+ inc $2;
+}
+--enable_query_log
+
+let $query= EXPLAIN SELECT fid, AsText(g) FROM t1
+WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
+
+eval $query;
+ALTER TABLE t1 ALTER INDEX key1 IGNORE;
+SHOW INDEXES FROM t1;
+eval $query;
+
+DROP TABLE t1;
+
+CREATE TABLE t1 ( a INT GENERATED ALWAYS AS (1), KEY key1(a));
+INSERT INTO t1 VALUES (),(),();
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+ALTER TABLE t1 ALTER INDEX key1 IGNORE;
+SHOW INDEXES FROM t1;
+EXPLAIN SELECT a FROM t1;
+DROP TABLE t1;
+
+
+--echo #
+--echo # Partitioning on keys with an IGNORE index, IGNORE indexes over
+--echo # partitioned tables.
+--echo #
+
+--source include/have_partition.inc
+
+CREATE TABLE t1 (
+ a CHAR(2) NOT NULL,
+ b CHAR(2) NOT NULL,
+ c INT(10) UNSIGNED NOT NULL,
+ d VARCHAR(255) DEFAULT NULL,
+ e VARCHAR(1000) DEFAULT NULL,
+ KEY (a) IGNORE,
+ KEY (b)
+) PARTITION BY KEY (a) PARTITIONS 20;
+
+
+INSERT INTO t1 (a, b, c, d, e) VALUES
+('07', '03', 343, '1', '07_03_343'),
+('01', '04', 343, '2', '01_04_343'),
+('01', '06', 343, '3', '01_06_343'),
+('01', '07', 343, '4', '01_07_343'),
+('01', '08', 343, '5', '01_08_343'),
+('01', '09', 343, '6', '01_09_343'),
+('03', '03', 343, '7', '03_03_343'),
+('03', '06', 343, '8', '03_06_343'),
+('03', '07', 343, '9', '03_07_343'),
+('04', '03', 343, '10', '04_03_343'),
+('04', '06', 343, '11', '04_06_343'),
+('05', '03', 343, '12', '05_03_343'),
+('11', '03', 343, '13', '11_03_343'),
+('11', '04', 343, '14', '11_04_343');
+
+ANALYZE TABLE t1;
+
+EXPLAIN SELECT a FROM t1;
+EXPLAIN SELECT b FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+ALTER TABLE t1 ALTER INDEX a NOT IGNORE;
+EXPLAIN SELECT a FROM t1;
+EXPLAIN SELECT * FROM t1 WHERE a = '04';
+
+ALTER TABLE t1 ALTER INDEX b IGNORE;
+EXPLAIN SELECT b FROM t1;
+
+DROP TABLE t1;
diff --git a/mysql-test/main/information_schema.result b/mysql-test/main/information_schema.result
index 745588344d3..a92121c8167 100644
--- a/mysql-test/main/information_schema.result
+++ b/mysql-test/main/information_schema.result
@@ -201,11 +201,11 @@ table_name
t1
t4
select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE NO
show keys from t3 where Key_name = "a_data";
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a_data 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t3 1 a_data 1 a A NULL NULL NULL YES BTREE NO
show tables like 't%';
Tables_in_test (t%)
t2
@@ -457,7 +457,7 @@ latin1_spanish_ci
latin1_swedish_nopad_ci
latin1_nopad_bin
show keys from v4;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
select * from information_schema.views where TABLE_NAME like "v%";
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM
def test v0 select `information_schema`.`schemata`.`SCHEMA_NAME` AS `c` from `information_schema`.`schemata` NONE NO root@localhost DEFINER latin1 latin1_swedish_ci UNDEFINED
@@ -689,7 +689,7 @@ user
drop view v1;
create view vo as select 'a' union select 'a';
show index from vo;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
select * from information_schema.TABLE_CONSTRAINTS where
TABLE_NAME= "vo";
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
@@ -1246,8 +1246,8 @@ describe t1;
Field Type Null Key Default Extra
f1 int(11) YES MUL NULL
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 f1 1 f1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 f1 1 f1 A NULL NULL NULL YES BTREE NO
drop table t1;
create table t1(f1 binary(32), f2 varbinary(64));
select character_maximum_length, character_octet_length
@@ -1629,9 +1629,9 @@ CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG U
select * from information_schema.schemata where schema_name = NULL;
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH SCHEMA_COMMENT
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
select * from information_schema.tables where table_schema = NULL;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
select * from information_schema.tables where table_catalog = NULL;
diff --git a/mysql-test/main/invisible_field_debug.result b/mysql-test/main/invisible_field_debug.result
index 582c935333c..18dc4bfff9a 100644
--- a/mysql-test/main/invisible_field_debug.result
+++ b/mysql-test/main/invisible_field_debug.result
@@ -249,10 +249,10 @@ b
alter table t1 add index(a);
alter table t1 add index(a,b);
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
-t1 1 a_2 1 a A NULL NULL NULL YES BTREE
-t1 1 a_2 2 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_2 1 a A NULL NULL NULL YES BTREE NO
+t1 1 a_2 2 b A NULL NULL NULL YES BTREE NO
drop table t1;
set debug_dbug= "+d,test_pseudo_invisible";
Create table t1( a int default(99) invisible, b int);
@@ -280,7 +280,7 @@ ERROR 42000: Key column 'invisible' doesn't exist in table
alter table t1 add index(b,invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
drop table t1;
set debug_dbug= "+d,test_completely_invisible";
Create table t1( a int default(99) invisible, b int);
@@ -308,17 +308,17 @@ ERROR 42000: Key column 'invisible' doesn't exist in table
alter table t1 add index(b,invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
drop table t1;
set debug_dbug= "+d,test_completely_invisible,test_invisible_index";
Create table t1( a int default(99) , b int,c int, index(b));
set debug_dbug=@old_debug;
Show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
select * from INFORMATION_SCHEMA.STATISTICS where TABLE_SCHEMA ='test' and table_name='t1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test b 1 b A NULL NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 1 test b 1 b A NULL NULL NULL YES BTREE NO
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -359,8 +359,8 @@ invisible a b
9 7 7
set debug_dbug=@old_debug;
Show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
create index a1 on t1(invisible);
ERROR 42000: Key column 'invisible' doesn't exist in table
set debug_dbug= "+d,test_completely_invisible,test_invisible_index";
@@ -374,10 +374,10 @@ explain select * from t1 where invisible =9;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL invisible_2 NULL NULL NULL 7 Using where
show indexes in t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A NULL NULL NULL YES BTREE
-t1 1 invisible 1 c A NULL NULL NULL YES BTREE
-t1 1 invisible_2 1 invisible A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 invisible 1 c A NULL NULL NULL YES BTREE NO
+t1 1 invisible_2 1 invisible A NULL NULL NULL YES BTREE NO
drop table t1;
set @old_debug= @@debug_dbug;
CREATE TABLE t1 (i INT );
diff --git a/mysql-test/main/join.result b/mysql-test/main/join.result
index d8eb9795b4e..6c4bc4ca099 100644
--- a/mysql-test/main/join.result
+++ b/mysql-test/main/join.result
@@ -3337,9 +3337,9 @@ test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
set myisam_stats_method=@tmp1;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 pk A 1010 NULL NULL BTREE
-t1 0 a 1 a A 1010 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 pk A 1010 NULL NULL BTREE NO
+t1 0 a 1 a A 1010 NULL NULL YES BTREE NO
# t1 must use eq_ref(t1.a=t0.a) and rows must be 1 (and not 45):
explain select * from t0,t1 where t0.a=t1.a;
id select_type table type possible_keys key key_len ref rows Extra
diff --git a/mysql-test/main/key.result b/mysql-test/main/key.result
index 78a2f42c477..bc15c337634 100644
--- a/mysql-test/main/key.result
+++ b/mysql-test/main/key.result
@@ -148,12 +148,12 @@ a 2
drop table t1;
create table t1 (a int not null unique, b int unique, c int, d int not null primary key, key(c), e int not null unique);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 d A 0 NULL NULL BTREE
-t1 0 a 1 a A 0 NULL NULL BTREE
-t1 0 e 1 e A 0 NULL NULL BTREE
-t1 0 b 1 b A NULL NULL NULL YES BTREE
-t1 1 c 1 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 d A 0 NULL NULL BTREE NO
+t1 0 a 1 a A 0 NULL NULL BTREE NO
+t1 0 e 1 e A 0 NULL NULL BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 c 1 c A NULL NULL NULL YES BTREE NO
drop table t1;
CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
UNIQUE (c,i));
diff --git a/mysql-test/main/long_unique.result b/mysql-test/main/long_unique.result
index f463af8ccea..13b19c850d6 100644
--- a/mysql-test/main/long_unique.result
+++ b/mysql-test/main/long_unique.result
@@ -38,6 +38,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignore NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -52,8 +53,8 @@ select TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,ORDINAL_POSITION,COLUMN
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA COLUMN_COMMENT IS_GENERATED GENERATION_EXPRESSION
def test t1 a 1 NULL YES blob 65535 65535 NULL NULL NULL NULL NULL blob UNI NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG def
CONSTRAINT_SCHEMA test
@@ -211,8 +212,8 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `db_row_hash_1` (`db_row_hash_1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
#add column with unique index on blob ;
alter table t1 add column a blob unique;
show create table t1;
@@ -240,9 +241,9 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES HASH NO
# try to change the blob unique datatype;
#this will change index to b tree;
alter table t1 modify column aa int ;
@@ -258,9 +259,9 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
alter table t1 add column clm blob unique;
#try changing the name ;
alter table t1 change column clm clm_changed blob;
@@ -278,10 +279,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `clm` (`clm_changed`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
-t1 0 clm 1 clm_changed A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
+t1 0 clm 1 clm_changed A NULL NULL NULL YES HASH NO
#now drop the unique key;
alter table t1 drop key clm;
show create table t1;
@@ -297,17 +298,17 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`aa`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 a 1 aa A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 a 1 aa A NULL NULL NULL YES BTREE NO
drop table t1;
create table t1 (a TEXT CHARSET latin1 COLLATE latin1_german2_ci unique);
desc t1;
Field Type Null Key Default Extra
a text YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
insert into t1 values ('ae');
insert into t1 values ('AE');
ERROR 23000: Duplicate entry 'AE' for key 'a'
@@ -319,9 +320,9 @@ Field Type Null Key Default Extra
a int(11) NO PRI NULL
b blob YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
insert into t1 values(1,1),(2,2),(3,3);
insert into t1 values(1,1);
ERROR 23000: Duplicate entry '1' for key 'b'
@@ -356,11 +357,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `e` (`e`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -382,11 +383,11 @@ def test t1 c 3 NULL YES blob 65535 65535 NULL NULL NULL NULL NULL blob UNI NE
def test t1 d 4 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text UNI NEVER NULL
def test t1 e 5 NULL YES varchar 3000 3000 NULL NULL NULL latin1 latin1_swedish_ci varchar(3000) UNI NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
-def test t1 0 test c 1 c A NULL NULL NULL YES HASH
-def test t1 0 test d 1 d A NULL NULL NULL YES HASH
-def test t1 0 test e 1 e A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
+def test t1 0 test c 1 c A NULL NULL NULL YES HASH NO
+def test t1 0 test d 1 d A NULL NULL NULL YES HASH NO
+def test t1 0 test e 1 e A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
def test a def test t1 a 1 NULL NULL NULL NULL
@@ -549,11 +550,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `e` (`e`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
#add column with unique index on blob;
alter table t1 add column a blob unique;
show create table t1;
@@ -574,12 +575,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
#try to change the blob unique column name;
#this will change index to b tree;
alter table t1 modify column a int , modify column e int;
@@ -601,12 +602,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `d` (`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
alter table t1 add column clm1 blob unique,add column clm2 blob unique;
#try changing the name;
alter table t1 change column clm1 clm_changed1 blob, change column clm2 clm_changed2 blob;
@@ -632,14 +633,14 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `clm2` (`clm_changed2`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
-t1 0 clm1 1 clm_changed1 A NULL NULL NULL YES HASH
-t1 0 clm2 1 clm_changed2 A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
+t1 0 clm1 1 clm_changed1 A NULL NULL NULL YES HASH NO
+t1 0 clm2 1 clm_changed2 A NULL NULL NULL YES HASH NO
#now drop the unique key;
alter table t1 drop key clm1, drop key clm2;
show create table t1;
@@ -662,12 +663,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `d` (`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE
-t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 d 1 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 db_row_hash_1 1 db_row_hash_1 A NULL NULL NULL YES BTREE NO
+t1 0 db_row_hash_2 1 db_row_hash_2 A NULL NULL NULL YES BTREE NO
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 d 1 d A NULL NULL NULL YES HASH NO
drop table t1;
#now the table with key on multiple columns; the ultimate test;
create table t1(a blob, b int , c varchar(2000) , d text , e varchar(3000) , f longblob , g int , h text ,
@@ -703,21 +704,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
MyISAM file: DATADIR/test/t1
Record format: Packed
@@ -742,21 +743,21 @@ def test t1 f 6 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL NULL
def test t1 g 7 NULL YES int NULL NULL 10 0 NULL NULL NULL int(11) NEVER NULL
def test t1 h 8 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text NEVER NULL
select * from information_schema.statistics where table_schema = 'test' and table_name = 't1';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 0 test a 1 a A NULL NULL NULL YES HASH
-def test t1 0 test a 2 b A NULL NULL NULL YES HASH
-def test t1 0 test a 3 c A NULL NULL NULL YES HASH
-def test t1 0 test c 1 c A NULL NULL NULL YES HASH
-def test t1 0 test c 2 d A NULL NULL NULL YES HASH
-def test t1 0 test c 3 e A NULL NULL NULL YES HASH
-def test t1 0 test e 1 e A NULL NULL NULL YES HASH
-def test t1 0 test e 2 f A NULL NULL NULL YES HASH
-def test t1 0 test e 3 g A NULL NULL NULL YES HASH
-def test t1 0 test e 4 h A NULL NULL NULL YES HASH
-def test t1 0 test b 1 b A NULL NULL NULL YES HASH
-def test t1 0 test b 2 d A NULL NULL NULL YES HASH
-def test t1 0 test b 3 g A NULL NULL NULL YES HASH
-def test t1 0 test b 4 h A NULL NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 0 test a 1 a A NULL NULL NULL YES HASH NO
+def test t1 0 test a 2 b A NULL NULL NULL YES HASH NO
+def test t1 0 test a 3 c A NULL NULL NULL YES HASH NO
+def test t1 0 test c 1 c A NULL NULL NULL YES HASH NO
+def test t1 0 test c 2 d A NULL NULL NULL YES HASH NO
+def test t1 0 test c 3 e A NULL NULL NULL YES HASH NO
+def test t1 0 test e 1 e A NULL NULL NULL YES HASH NO
+def test t1 0 test e 2 f A NULL NULL NULL YES HASH NO
+def test t1 0 test e 3 g A NULL NULL NULL YES HASH NO
+def test t1 0 test e 4 h A NULL NULL NULL YES HASH NO
+def test t1 0 test b 1 b A NULL NULL NULL YES HASH NO
+def test t1 0 test b 2 d A NULL NULL NULL YES HASH NO
+def test t1 0 test b 3 g A NULL NULL NULL YES HASH NO
+def test t1 0 test b 4 h A NULL NULL NULL YES HASH NO
select * from information_schema.key_column_usage where table_schema= 'test' and table_name= 't1';
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
def test a def test t1 a 1 NULL NULL NULL NULL
@@ -859,21 +860,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
alter table t1 drop column db_row_hash_7 , drop column db_row_hash_5 ,
drop column db_row_hash_1, drop column db_row_hash_2 ;
show create table t1;
@@ -893,21 +894,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#try to change column names;
alter table t1 change column a aa blob , change column b bb blob , change column d dd blob;
show create table t1;
@@ -927,21 +928,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`bb`,`dd`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 aa A NULL NULL NULL YES HASH
-t1 0 a 2 bb A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 dd A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 bb A NULL NULL NULL YES HASH
-t1 0 b 2 dd A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 aa A NULL NULL NULL YES HASH NO
+t1 0 a 2 bb A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 dd A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 bb A NULL NULL NULL YES HASH NO
+t1 0 b 2 dd A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
alter table t1 change column aa a blob , change column bb b blob , change column dd d blob;
show create table t1;
Table Create Table
@@ -960,21 +961,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#now we will change the data type to int and varchar limit so that we no longer require hash_index;
#on key a_b_c;
alter table t1 modify column a varchar(20) , modify column b varchar(20) , modify column c varchar(20);
@@ -995,21 +996,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES BTREE
-t1 0 a 2 b A NULL NULL NULL YES BTREE
-t1 0 a 3 c A NULL NULL NULL YES BTREE
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES BTREE NO
+t1 0 a 2 b A NULL NULL NULL YES BTREE NO
+t1 0 a 3 c A NULL NULL NULL YES BTREE NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#change it back;
alter table t1 modify column a blob , modify column b blob , modify column c blob;
show create table t1;
@@ -1029,21 +1030,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
-t1 0 c 3 e A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 f A NULL NULL NULL YES HASH
-t1 0 e 3 g A NULL NULL NULL YES HASH
-t1 0 e 4 h A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
+t1 0 c 3 e A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 f A NULL NULL NULL YES HASH NO
+t1 0 e 3 g A NULL NULL NULL YES HASH NO
+t1 0 e 4 h A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
#try to delete blob column in unique;
truncate table t1;
#now try to delete keys;
@@ -1063,14 +1064,14 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`,`g`,`h`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
-t1 0 b 3 g A NULL NULL NULL YES HASH
-t1 0 b 4 h A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
+t1 0 b 3 g A NULL NULL NULL YES HASH NO
+t1 0 b 4 h A NULL NULL NULL YES HASH NO
drop table t1;
#now alter table containing some data basically some tests with ignore;
create table t1 (a blob);
@@ -1097,8 +1098,8 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
drop table t1;
#Now with multiple keys;
create table t1(a blob , b blob, c blob , d blob , e int);
@@ -1135,12 +1136,12 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 e 1 e A NULL NULL NULL YES BTREE
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 c A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 e 1 e A NULL NULL NULL YES BTREE NO
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 c A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 d A NULL NULL NULL YES HASH NO
drop table t1;
#visibility of db_row_hash
create table t1 (a blob unique , b blob unique);
@@ -1248,10 +1249,10 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `b` (`b`,`c`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 c A NULL NULL NULL YES HASH NO
insert into t1 values(concat(repeat('sachin',10000000),'1'),concat(repeat('sachin',10000000),'1'),
concat(repeat('sachin',10000000),'1'));
insert into t1 values(concat(repeat('sachin',10000000),'2'),concat(repeat('sachin',10000000),'2'),
@@ -1269,8 +1270,8 @@ desc t1;
Field Type Null Key Default Extra
a blob YES UNI NULL
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL 3000 NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL 3000 NULL YES HASH NO
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -1301,11 +1302,11 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `c` (`c`(4500),`d`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL 3500 NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL 4500 NULL YES HASH
-t1 0 c 2 d A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL 3500 NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL 4500 NULL YES HASH NO
+t1 0 c 2 d A NULL NULL NULL YES HASH NO
drop table t1;
disconnect newcon;
connection default;
diff --git a/mysql-test/main/long_unique_bugs.result b/mysql-test/main/long_unique_bugs.result
index 2b9ec4731de..fa9506a68be 100644
--- a/mysql-test/main/long_unique_bugs.result
+++ b/mysql-test/main/long_unique_bugs.result
@@ -82,6 +82,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignore NO
insert into t1 values(1,1);
ERROR 23000: Duplicate entry '1' for key 'a'
DROP TABLE t1;
@@ -128,6 +129,7 @@ Null
Index_type BTREE
Comment
Index_comment
+Ignore NO
ALTER TABLE t1 ADD INDEX (pk);
DROP TABLE t1;
CREATE TABLE t1 (b int, a varchar(4000));
diff --git a/mysql-test/main/long_unique_update.result b/mysql-test/main/long_unique_update.result
index b508583f47c..d4b142f4a94 100644
--- a/mysql-test/main/long_unique_update.result
+++ b/mysql-test/main/long_unique_update.result
@@ -24,6 +24,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignore NO
insert into t1 values(1),(2),(3),(4),(5);
select * from t1;
a
@@ -69,10 +70,10 @@ drop table t1;
#test 2;
create table t1 (a int primary key, b blob unique , c int unique );
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 c 1 c A NULL NULL NULL YES BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 c 1 c A NULL NULL NULL YES BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7);
select * from t1 limit 3;
a b c
@@ -129,10 +130,10 @@ drop table t1;
#test 3;
create table t1 (a blob unique, b blob unique , c blob unique);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 c 1 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 c 1 c A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,5),(6,6,6),(7,7,7);
select * from t1 limit 3;
a b c
@@ -226,21 +227,21 @@ t1 CREATE TABLE `t1` (
UNIQUE KEY `a` (`a`,`b`,`c`,`d`,`e`,`f`,`g`) USING HASH
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t1 0 b_2 1 b A NULL NULL NULL YES BTREE
-t1 0 b_2 2 f A NULL NULL NULL YES BTREE
-t1 0 b 1 b A NULL NULL NULL YES HASH
-t1 0 b 2 c A NULL NULL NULL YES HASH
-t1 0 e 1 e A NULL NULL NULL YES HASH
-t1 0 e 2 g A NULL NULL NULL YES HASH
-t1 0 a 1 a A NULL NULL NULL HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
-t1 0 a 4 d A NULL NULL NULL YES HASH
-t1 0 a 5 e A NULL NULL NULL YES HASH
-t1 0 a 6 f A NULL NULL NULL YES HASH
-t1 0 a 7 g A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t1 0 b_2 1 b A NULL NULL NULL YES BTREE NO
+t1 0 b_2 2 f A NULL NULL NULL YES BTREE NO
+t1 0 b 1 b A NULL NULL NULL YES HASH NO
+t1 0 b 2 c A NULL NULL NULL YES HASH NO
+t1 0 e 1 e A NULL NULL NULL YES HASH NO
+t1 0 e 2 g A NULL NULL NULL YES HASH NO
+t1 0 a 1 a A NULL NULL NULL HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
+t1 0 a 4 d A NULL NULL NULL YES HASH NO
+t1 0 a 5 e A NULL NULL NULL YES HASH NO
+t1 0 a 6 f A NULL NULL NULL YES HASH NO
+t1 0 a 7 g A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1,1,1,1,1),(2,2,2,2,2,2,2),(3,3,3,3,3,3,3),(4,4,4,4,4,4,4),
(5,5,5,5,5,5,5),(6,6,6,6,6,6,6),(7,7,7,7,7,7,7),(8,8,8,8,8,8,8),(9,9,9,9,9,9,9);
select * from t1 limit 3;
diff --git a/mysql-test/main/long_unique_using_hash.result b/mysql-test/main/long_unique_using_hash.result
index 987e11294ec..80ef3704f6c 100644
--- a/mysql-test/main/long_unique_using_hash.result
+++ b/mysql-test/main/long_unique_using_hash.result
@@ -13,6 +13,7 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignore NO
drop table t1;
create table t1(a blob , unique(a) using btree);
ERROR 42000: Specified key was too long; max key length is 1000 bytes
@@ -31,23 +32,24 @@ Null YES
Index_type HASH
Comment
Index_comment
+Ignore NO
drop table t1;
create table t1(a int ,b int , c int, unique(a, b, c) using hash);
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a A NULL NULL NULL YES HASH
-t1 0 a 2 b A NULL NULL NULL YES HASH
-t1 0 a 3 c A NULL NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a A NULL NULL NULL YES HASH NO
+t1 0 a 2 b A NULL NULL NULL YES HASH NO
+t1 0 a 3 c A NULL NULL NULL YES HASH NO
insert into t1 values(1,1,1);
insert into t1 values(1,1,1);
ERROR 23000: Duplicate entry '1-1-1' for key 'a'
drop table t1;
create table t1(a int ,b int , c int, unique(a, b, c) using hash) engine=memory;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a NULL NULL NULL NULL YES HASH
-t1 0 a 2 b NULL NULL NULL NULL YES HASH
-t1 0 a 3 c NULL 0 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 a 1 a NULL NULL NULL NULL YES HASH NO
+t1 0 a 2 b NULL NULL NULL NULL YES HASH NO
+t1 0 a 3 c NULL 0 NULL NULL YES HASH NO
insert into t1 values(1,1,1);
insert into t1 values(1,1,1);
ERROR 23000: Duplicate entry '1-1-1' for key 'a'
diff --git a/mysql-test/main/merge.result b/mysql-test/main/merge.result
index 0d6f387a7bc..80c6e3cf7f1 100644
--- a/mysql-test/main/merge.result
+++ b/mysql-test/main/merge.result
@@ -760,10 +760,10 @@ a b c
1 1 1
1 1 0
show index from t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a 1 a A NULL NULL NULL YES BTREE
-t3 1 a 2 b A NULL NULL NULL YES BTREE
-t3 1 a 3 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t3 1 a 1 a A NULL NULL NULL YES BTREE NO
+t3 1 a 2 b A NULL NULL NULL YES BTREE NO
+t3 1 a 3 c A NULL NULL NULL YES BTREE NO
drop table t1, t2, t3;
CREATE TABLE t1 ( a INT AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10), UNIQUE (b) )
ENGINE=MyISAM;
diff --git a/mysql-test/main/mix2_myisam.result b/mysql-test/main/mix2_myisam.result
index 91d51f82532..4d8981dc718 100644
--- a/mysql-test/main/mix2_myisam.result
+++ b/mysql-test/main/mix2_myisam.result
@@ -170,10 +170,10 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A # NULL NULL BTREE
-t1 1 parent_id 1 parent_id A # NULL NULL BTREE
-t1 1 level 1 level A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A # NULL NULL BTREE NO
+t1 1 parent_id 1 parent_id A # NULL NULL BTREE NO
+t1 1 level 1 level A # NULL NULL BTREE NO
drop table t1;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
@@ -214,8 +214,8 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 skr 1 a A # NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 skr 1 a A # NULL NULL YES BTREE NO
drop table t1;
create table t1 (a int,b varchar(20),key(a)) engine=MyISAM;
insert into t1 values (1,""), (2,"testing");
@@ -261,13 +261,13 @@ key(a),primary key(a,b), unique(c),key(a),unique(b)) ENGINE = MyISAM;
Warnings:
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
-t1 0 PRIMARY 2 b A # NULL NULL BTREE
-t1 0 c 1 c A # NULL NULL BTREE
-t1 0 b 1 b A # NULL NULL BTREE
-t1 1 a 1 a A # NULL NULL BTREE
-t1 1 a_2 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
+t1 0 PRIMARY 2 b A # NULL NULL BTREE NO
+t1 0 c 1 c A # NULL NULL BTREE NO
+t1 0 b 1 b A # NULL NULL BTREE NO
+t1 1 a 1 a A # NULL NULL BTREE NO
+t1 1 a_2 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (col1 int not null, col2 char(4) not null, primary key(col1)) ENGINE = MEMORY;
alter table t1 engine=MyISAM;
@@ -639,8 +639,8 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (i int, j int ) ENGINE=MyISAM;
insert into t1 values (1,2);
diff --git a/mysql-test/main/myisam.result b/mysql-test/main/myisam.result
index 1178cca9ed0..05ff98ca711 100644
--- a/mysql-test/main/myisam.result
+++ b/mysql-test/main/myisam.result
@@ -40,16 +40,16 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status Table is already up to date
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
drop table t1;
create table t1 (a int not null, b int not null, c int not null, primary key (a),key(b)) engine=myisam;
insert into t1 values (3,3,3),(1,1,1),(2,2,2),(4,4,4);
@@ -339,13 +339,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 5 NULL NULL YES BTREE
-t1 1 c 1 c A 5 NULL NULL YES BTREE
-t1 1 a 1 a A 1 NULL NULL BTREE
-t1 1 a 2 b A 5 NULL NULL YES BTREE
-t1 1 c_2 1 c A 5 NULL NULL YES BTREE
-t1 1 c_2 2 a A 5 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 5 NULL NULL YES BTREE NO
+t1 1 c 1 c A 5 NULL NULL YES BTREE NO
+t1 1 a 1 a A 1 NULL NULL BTREE NO
+t1 1 a 2 b A 5 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 5 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 5 NULL NULL BTREE NO
explain select * from t1,t2 where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL a NULL NULL NULL 2
@@ -363,13 +363,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 10 NULL NULL YES BTREE
-t1 1 c 1 c A 10 NULL NULL YES BTREE
-t1 1 a 1 a A 10 NULL NULL BTREE
-t1 1 a 2 b A 10 NULL NULL YES BTREE
-t1 1 c_2 1 c A 10 NULL NULL YES BTREE
-t1 1 c_2 2 a A 10 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 10 NULL NULL YES BTREE NO
+t1 1 c 1 c A 10 NULL NULL YES BTREE NO
+t1 1 a 1 a A 10 NULL NULL BTREE NO
+t1 1 a 2 b A 10 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 10 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 10 NULL NULL BTREE NO
explain select * from t1,t2 where t1.b=t2.b;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL b NULL NULL NULL 2 Using where
@@ -379,13 +379,13 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 5 NULL NULL YES BTREE
-t1 1 c 1 c A 5 NULL NULL YES BTREE
-t1 1 a 1 a A 1 NULL NULL BTREE
-t1 1 a 2 b A 5 NULL NULL YES BTREE
-t1 1 c_2 1 c A 5 NULL NULL YES BTREE
-t1 1 c_2 2 a A 5 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 5 NULL NULL YES BTREE NO
+t1 1 c 1 c A 5 NULL NULL YES BTREE NO
+t1 1 a 1 a A 1 NULL NULL BTREE NO
+t1 1 a 2 b A 5 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 5 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 5 NULL NULL BTREE NO
explain select * from t1,t2 force index(c) where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 2
@@ -613,29 +613,29 @@ test.t1 2924214226
drop table t1,t2;
create table t1 (a int, key (a));
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
create table t2 (a int);
set @@rand_seed1=31415926,@@rand_seed2=2718281828;
insert t1 select * from t2;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 1000 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 1000 NULL NULL YES BTREE NO
alter table t1 engine=heap;
alter table t1 disable keys;
Warnings:
Note 1031 Storage engine MEMORY of the table `test`.`t1` doesn't have this option
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL 500 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a NULL 500 NULL NULL YES HASH NO
drop table t1,t2;
create table t1 ( a tinytext, b char(1), index idx (a(1),b) );
insert into t1 values (null,''), (null,'');
@@ -679,16 +679,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
set myisam_stats_method=nulls_equal;
set @save_use_stat_tables = @@use_stat_tables;
set @@use_stat_tables = COMPLEMENTARY;
@@ -702,16 +702,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
set @@use_stat_tables = @save_use_stat_tables;
set myisam_stats_method=DEFAULT;
show variables like 'myisam_stats_method';
@@ -724,16 +724,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
drop table t1;
set myisam_stats_method=nulls_ignored;
show variables like 'myisam_stats_method';
@@ -754,22 +754,22 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
-t1 1 a 2 b A 4 NULL NULL YES BTREE
-t1 1 a 3 c A 4 NULL NULL YES BTREE
-t1 1 a 4 d A 4 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
+t1 1 a 2 b A 4 NULL NULL YES BTREE NO
+t1 1 a 3 c A 4 NULL NULL YES BTREE NO
+t1 1 a 4 d A 4 NULL NULL YES BTREE NO
delete from t1;
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 0 NULL NULL YES BTREE
-t1 1 a 2 b A 0 NULL NULL YES BTREE
-t1 1 a 3 c A 0 NULL NULL YES BTREE
-t1 1 a 4 d A 0 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 0 NULL NULL YES BTREE NO
+t1 1 a 2 b A 0 NULL NULL YES BTREE NO
+t1 1 a 3 c A 0 NULL NULL YES BTREE NO
+t1 1 a 4 d A 0 NULL NULL YES BTREE NO
set myisam_stats_method=DEFAULT;
drop table t1;
set @@use_stat_tables = @save_use_stat_tables;
@@ -1815,13 +1815,13 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
alter table t1 disable keys;
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
drop table t1;
create table t1 (c1 int) engine=myisam pack_keys=0;
create table t2 (c1 int) engine=myisam pack_keys=1;
diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result
index 7cbcdbad2b2..6f3fb547ee8 100644
--- a/mysql-test/main/mysqld--help.result
+++ b/mysql-test/main/mysqld--help.result
@@ -715,7 +715,8 @@ The following specify which files/extra groups are read (specified before remain
extended_keys, exists_to_in, orderby_uses_equalities,
condition_pushdown_for_derived, split_materialized,
condition_pushdown_for_subquery, rowid_filter,
- condition_pushdown_from_having, not_null_range_scan
+ condition_pushdown_from_having, not_null_range_scan,
+ ignore_indexes
--optimizer-trace=name
Controls tracing of the Optimizer:
optimizer_trace=option=val[,option=val...], where option
@@ -1643,7 +1644,7 @@ old-style-user-limits FALSE
optimizer-prune-level 1
optimizer-search-depth 62
optimizer-selectivity-sampling-limit 100
-optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on
+optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
optimizer-trace
optimizer-trace-max-mem-size 1048576
optimizer-use-condition-selectivity 4
diff --git a/mysql-test/main/mysqldump-utf8mb4.result b/mysql-test/main/mysqldump-utf8mb4.result
index 3bafd6da6c9..c704be3d5fa 100644
--- a/mysql-test/main/mysqldump-utf8mb4.result
+++ b/mysql-test/main/mysqldump-utf8mb4.result
@@ -18,7 +18,7 @@ Testing XML format output
<field Field="point" Type="varchar(10)" Null="NO" Key="PRI" Extra="" Comment="" />
<field Field="data" Type="varchar(10)" Null="YES" Key="" Default="NULL" Extra="" Comment="" />
<field Field="comment" Type="varchar(64)" Null="YES" Key="" Default="NULL" Extra="" Comment="" />
- <key Table="t1" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="point" Collation="A" Cardinality="1" Null="" Index_type="BTREE" Comment="" Index_comment="" />
+ <key Table="t1" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="point" Collation="A" Cardinality="1" Null="" Index_type="BTREE" Comment="" Index_comment="" Ignore="NO" />
</table_structure>
<table_data name="t1">
<row>
diff --git a/mysql-test/main/partition.result b/mysql-test/main/partition.result
index b132cf90f2c..caa77f96686 100644
--- a/mysql-test/main/partition.result
+++ b/mysql-test/main/partition.result
@@ -282,15 +282,15 @@ partition by list (a)
partition p1 values in (2));
insert into t1 values (1,1),(2,1),(2,2),(2,3);
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
drop table t1;
create table t1 (a int)
partition by hash (a);
diff --git a/mysql-test/main/pool_of_threads.result b/mysql-test/main/pool_of_threads.result
index fd3c848117c..00bc626bc75 100644
--- a/mysql-test/main/pool_of_threads.result
+++ b/mysql-test/main/pool_of_threads.result
@@ -2091,10 +2091,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
CREATE TABLE t1 (
cont_nr int(11) NOT NULL auto_increment,
diff --git a/mysql-test/main/ps_1general.result b/mysql-test/main/ps_1general.result
index 46812425ebc..67320ba8d98 100644
--- a/mysql-test/main/ps_1general.result
+++ b/mysql-test/main/ps_1general.result
@@ -291,9 +291,9 @@ a int(11) NO PRI NULL
create index t2_idx on t2(b);
prepare stmt4 from ' show index from t2 from test ';
execute stmt4;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 a A 0 NULL NULL BTREE
-t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 a A 0 NULL NULL BTREE NO
+t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE NO
prepare stmt4 from ' show table status from test like ''t2%'' ';
execute stmt4;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary
diff --git a/mysql-test/main/ps_ddl.result b/mysql-test/main/ps_ddl.result
index c5c5b5a9ac0..2fabd616f10 100644
--- a/mysql-test/main/ps_ddl.result
+++ b/mysql-test/main/ps_ddl.result
@@ -2295,11 +2295,11 @@ drop table if exists t1;
create table t1 (a int);
prepare stmt from "show keys from t1 where (1) in (select * from t1)";
execute stmt;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
drop table t1;
create table t1 (x int);
execute stmt;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
drop table t1;
deallocate prepare stmt;
#
diff --git a/mysql-test/main/repair.result b/mysql-test/main/repair.result
index 84773449e92..8f7b023b3b7 100644
--- a/mysql-test/main/repair.result
+++ b/mysql-test/main/repair.result
@@ -14,16 +14,16 @@ create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st));
insert into t1 values(1, "One");
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
-t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
repair table t1 extended;
Table Op Msg_type Msg_text
test.t1 repair status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A 1 NULL NULL BTREE
-t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A 1 NULL NULL BTREE NO
+t1 1 st_key 1 st A NULL NULL NULL YES BTREE disabled NO
drop table t1;
repair table t1 use_frm;
Table Op Msg_type Msg_text
@@ -47,8 +47,8 @@ REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
SET myisam_repair_threads=@@global.myisam_repair_threads;
DROP TABLE t1;
CREATE TABLE t1(a INT);
diff --git a/mysql-test/main/select.result b/mysql-test/main/select.result
index 7547b5b1347..2c164e3d1e2 100644
--- a/mysql-test/main/select.result
+++ b/mysql-test/main/select.result
@@ -2088,10 +2088,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/select_jcl6.result b/mysql-test/main/select_jcl6.result
index 6a8174d124c..a84b588ec5e 100644
--- a/mysql-test/main/select_jcl6.result
+++ b/mysql-test/main/select_jcl6.result
@@ -2099,10 +2099,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/select_pkeycache.result b/mysql-test/main/select_pkeycache.result
index 7547b5b1347..2c164e3d1e2 100644
--- a/mysql-test/main/select_pkeycache.result
+++ b/mysql-test/main/select_pkeycache.result
@@ -2088,10 +2088,10 @@ fld6 char(4) latin1_swedish_ci NO #
show full columns from t2 from test like 's%';
Field Type Collation Null Key Default Extra Privileges Comment
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE
-t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE
-t2 1 fld3 1 fld3 A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 auto A 1199 NULL NULL BTREE NO
+t2 0 fld1 1 fld1 A 1199 NULL NULL BTREE NO
+t2 1 fld3 1 fld3 A NULL NULL NULL BTREE NO
drop table t4, t3, t2, t1;
DO 1;
DO benchmark(100,1+1),1,1;
diff --git a/mysql-test/main/show_check.result b/mysql-test/main/show_check.result
index d031c792922..86d3a5e9b7d 100644
--- a/mysql-test/main/show_check.result
+++ b/mysql-test/main/show_check.result
@@ -76,10 +76,11 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 3 0 N 1 0 8
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 16 5 N 1 0 8
def information_schema STATISTICS STATISTICS COMMENT Comment 253 16 0 Y 0 0 8
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 1024 0 N 1 0 8
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
-t1 1 b 2 c A 5 NULL NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORE Ignore 253 3 2 N 1 0 8
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
+t1 1 b 2 c A 5 NULL NULL BTREE NO
insert into t1 values (5,5,5);
ERROR 23000: Duplicate entry '5' for key 'PRIMARY'
-- Here we enable metadata just to check that the collation of the
@@ -169,11 +170,11 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
-t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
-t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
-t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE NO
+t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE NO
+t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE NO
+t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE NO
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
@@ -186,11 +187,11 @@ def Msg_text 250 393216 2 Y 0 39 8
Table Op Msg_type Msg_text
test.t1 repair status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
-t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE
-t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE
-t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE NO
+t1 0 PRIMARY 2 f2 A 3 NULL NULL BTREE NO
+t1 0 PRIMARY 3 f3 A 9 NULL NULL BTREE NO
+t1 0 PRIMARY 4 f4 A 18 NULL NULL BTREE NO
drop table t1;
create temporary table t1 (a int not null);
show create table t1;
@@ -660,8 +661,9 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 3 0 N 1 0 63
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 16 5 N 1 0 63
def information_schema STATISTICS STATISTICS COMMENT Comment 253 16 0 Y 0 0 63
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 1024 0 N 1 0 63
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORE Ignore 253 3 2 N 1 0 63
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 field1 A 0 1000 NULL BTREE NO
drop table t1;
create table t1 (
c1 int NOT NULL,
@@ -930,8 +932,9 @@ def information_schema STATISTICS STATISTICS NULLABLE Null 253 9 0 N 1 0 33
def information_schema STATISTICS STATISTICS INDEX_TYPE Index_type 253 48 5 N 1 0 33
def information_schema STATISTICS STATISTICS COMMENT Comment 253 48 0 Y 0 0 33
def information_schema STATISTICS STATISTICS INDEX_COMMENT Index_comment 253 3072 0 N 1 0 33
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 c A 0 NULL NULL BTREE
+def information_schema STATISTICS STATISTICS IGNORE Ignore 253 9 2 N 1 0 33
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 c A 0 NULL NULL BTREE NO
----------------------------------------------------------------
SELECT
TABLE_CATALOG,
@@ -1312,7 +1315,7 @@ show columns from `a\b` from `mysqlttest\1`;
Field Type Null Key Default Extra
a int(11) YES NULL
show keys from `mysqlttest\1`.`a\b`;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
drop table `mysqlttest\1`.`a\b`;
drop database `mysqlttest\1`;
show engine foobar status;
diff --git a/mysql-test/main/show_explain.result b/mysql-test/main/show_explain.result
index 69dc506527b..f00b3057122 100644
--- a/mysql-test/main/show_explain.result
+++ b/mysql-test/main/show_explain.result
@@ -714,10 +714,10 @@ id select_type table type possible_keys key key_len ref rows Extra
Warnings:
Note 1003 SHOW INDEX FROM t1
connection con1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
-t1 1 b 1 b A NULL NULL NULL YES BTREE
-t1 1 c 1 c A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
+t1 1 b 1 b A NULL NULL NULL YES BTREE NO
+t1 1 c 1 c A NULL NULL NULL YES BTREE NO
SET debug_dbug=@old_debug;
DROP TABLE t1;
#
diff --git a/mysql-test/main/sp.result b/mysql-test/main/sp.result
index 376f44e3b01..434035a1aae 100644
--- a/mysql-test/main/sp.result
+++ b/mysql-test/main/sp.result
@@ -2414,7 +2414,7 @@ Level Code Message
Field Type Null Key Default Extra
id char(16) NO
data int(11) NO NULL
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
Database Table In_use Name_locked
Variable_name Value
Tables_in_test (foo)
@@ -2435,7 +2435,7 @@ Level Code Message
Field Type Null Key Default Extra
id char(16) NO
data int(11) NO NULL
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
Database Table In_use Name_locked
Variable_name Value
Tables_in_test (foo)
diff --git a/mysql-test/main/stat_tables.result b/mysql-test/main/stat_tables.result
index ba2e3ef268f..bb90aa7f9e2 100644
--- a/mysql-test/main/stat_tables.result
+++ b/mysql-test/main/stat_tables.result
@@ -154,10 +154,10 @@ select count(distinct o_custkey) from orders;
count(distinct o_custkey)
100
show index from orders;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE
-orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE
-orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE NO
+orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE NO
+orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE NO
select index_name, column_name, cardinality from information_schema.statistics
where table_name='orders';
index_name column_name cardinality
@@ -656,33 +656,33 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
dbt3_s001 lineitem i_l_commitdate 1 2.7160
SHOW INDEXES FROM lineitem;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='lineitem';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT
COUNT(DISTINCT l_orderkey), COUNT(DISTINCT l_orderkey,l_linenumber),
COUNT(DISTINCT l_shipDATE),
diff --git a/mysql-test/main/stat_tables_innodb.result b/mysql-test/main/stat_tables_innodb.result
index 0b50def19c2..a636fdd0e3c 100644
--- a/mysql-test/main/stat_tables_innodb.result
+++ b/mysql-test/main/stat_tables_innodb.result
@@ -186,10 +186,10 @@ select count(distinct o_custkey) from orders;
count(distinct o_custkey)
100
show index from orders;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE
-orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE
-orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+orders 0 PRIMARY 1 o_orderkey A 1500 NULL NULL BTREE NO
+orders 1 i_o_orderdate 1 o_orderDATE A 1126 NULL NULL YES BTREE NO
+orders 1 i_o_custkey 1 o_custkey A 100 NULL NULL YES BTREE NO
select index_name, column_name, cardinality from information_schema.statistics
where table_name='orders';
index_name column_name cardinality
@@ -688,33 +688,33 @@ dbt3_s001 lineitem i_l_orderkey_quantity 1 4.0033
dbt3_s001 lineitem i_l_orderkey_quantity 2 1.0404
dbt3_s001 lineitem i_l_commitdate 1 2.7160
SHOW INDEXES FROM lineitem;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+lineitem 0 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 0 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+lineitem 1 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+lineitem 1 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+lineitem 1 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+lineitem 1 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+lineitem 1 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+lineitem 1 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+lineitem 1 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='lineitem';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE
-def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 0 dbt3_s001 PRIMARY 2 l_linenumber A 6005 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_shipdate 1 l_shipDATE A 2266 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey_partkey 2 l_suppkey A 699 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_partkey 1 l_partkey A 200 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_suppkey 1 l_suppkey A 10 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_receiptdate 1 l_receiptDATE A 2268 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 1 l_orderkey A 1500 NULL NULL BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_orderkey_quantity 2 l_quantity A 5771 NULL NULL YES BTREE NO
+def dbt3_s001 lineitem 1 dbt3_s001 i_l_commitdate 1 l_commitDATE A 2210 NULL NULL YES BTREE NO
SELECT
COUNT(DISTINCT l_orderkey), COUNT(DISTINCT l_orderkey,l_linenumber),
COUNT(DISTINCT l_shipDATE),
diff --git a/mysql-test/main/stat_tables_par.result b/mysql-test/main/stat_tables_par.result
index 33fbe079c9e..f79f86cb76a 100644
--- a/mysql-test/main/stat_tables_par.result
+++ b/mysql-test/main/stat_tables_par.result
@@ -274,8 +274,8 @@ a b
2 2
SET DEBUG_SYNC= "now SIGNAL go";
connection default;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test a 1 a A 2 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 1 test a 1 a A 2 NULL NULL YES BTREE NO
connection default;
disconnect con1;
set debug_sync='RESET';
diff --git a/mysql-test/main/stat_tables_par_innodb.result b/mysql-test/main/stat_tables_par_innodb.result
index c33785a9436..135e0ca459e 100644
--- a/mysql-test/main/stat_tables_par_innodb.result
+++ b/mysql-test/main/stat_tables_par_innodb.result
@@ -307,8 +307,8 @@ a b
2 2
SET DEBUG_SYNC= "now SIGNAL go";
connection default;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1 1 test a 1 a A 2 NULL NULL YES BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1 1 test a 1 a A 2 NULL NULL YES BTREE NO
connection default;
disconnect con1;
set debug_sync='RESET';
diff --git a/mysql-test/main/type_ranges.result b/mysql-test/main/type_ranges.result
index 784a394d8b5..9efc680a588 100644
--- a/mysql-test/main/type_ranges.result
+++ b/mysql-test/main/type_ranges.result
@@ -65,21 +65,21 @@ longblob_col longblob NULL NO '' #
options enum('one','two','tree') latin1_swedish_ci NO MUL NULL #
flags set('one','two','tree') latin1_swedish_ci NO #
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 auto A 0 NULL NULL BTREE
-t1 1 utiny 1 utiny A NULL NULL NULL BTREE
-t1 1 tiny 1 tiny A NULL NULL NULL BTREE
-t1 1 short 1 short A NULL NULL NULL BTREE
-t1 1 any_name 1 medium A NULL NULL NULL BTREE
-t1 1 longlong 1 longlong A NULL NULL NULL BTREE
-t1 1 real_float 1 real_float A NULL NULL NULL BTREE
-t1 1 ushort 1 ushort A NULL NULL NULL BTREE
-t1 1 umedium 1 umedium A NULL NULL NULL BTREE
-t1 1 ulong 1 ulong A NULL NULL NULL BTREE
-t1 1 ulonglong 1 ulonglong A NULL NULL NULL BTREE
-t1 1 ulonglong 2 ulong A NULL NULL NULL BTREE
-t1 1 options 1 options A NULL NULL NULL BTREE
-t1 1 options 2 flags A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 auto A 0 NULL NULL BTREE NO
+t1 1 utiny 1 utiny A NULL NULL NULL BTREE NO
+t1 1 tiny 1 tiny A NULL NULL NULL BTREE NO
+t1 1 short 1 short A NULL NULL NULL BTREE NO
+t1 1 any_name 1 medium A NULL NULL NULL BTREE NO
+t1 1 longlong 1 longlong A NULL NULL NULL BTREE NO
+t1 1 real_float 1 real_float A NULL NULL NULL BTREE NO
+t1 1 ushort 1 ushort A NULL NULL NULL BTREE NO
+t1 1 umedium 1 umedium A NULL NULL NULL BTREE NO
+t1 1 ulong 1 ulong A NULL NULL NULL BTREE NO
+t1 1 ulonglong 1 ulonglong A NULL NULL NULL BTREE NO
+t1 1 ulonglong 2 ulong A NULL NULL NULL BTREE NO
+t1 1 options 1 options A NULL NULL NULL BTREE NO
+t1 1 options 2 flags A NULL NULL NULL BTREE NO
CREATE UNIQUE INDEX test on t1 ( auto ) ;
CREATE INDEX test2 on t1 ( ulonglong,ulong) ;
Warnings:
diff --git a/mysql-test/main/view.result b/mysql-test/main/view.result
index 55d95b2bb3b..95d18f73aa2 100644
--- a/mysql-test/main/view.result
+++ b/mysql-test/main/view.result
@@ -3674,7 +3674,7 @@ c1 c2
2 2
CREATE VIEW v1 AS SELECT c1, c2 FROM t1;
SHOW INDEX FROM v1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
SELECT * FROM v1 USE INDEX (PRIMARY) WHERE c1=2;
ERROR 42000: Key 'PRIMARY' doesn't exist in table 'v1'
SELECT * FROM v1 FORCE INDEX (PRIMARY) WHERE c1=2;
diff --git a/mysql-test/suite/binlog/r/binlog_stm_blackhole.result b/mysql-test/suite/binlog/r/binlog_stm_blackhole.result
index feed949a71a..ad42cec7eca 100644
--- a/mysql-test/suite/binlog/r/binlog_stm_blackhole.result
+++ b/mysql-test/suite/binlog/r/binlog_stm_blackhole.result
@@ -63,9 +63,9 @@ INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
('Function MATCH ... AGAINST()','is used to do a search'),
('Full-text search in MySQL', 'implements vector space model');
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
-t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT NO
+t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT NO
select * from t1 where MATCH(a,b) AGAINST ("collections");
a b
Only MyISAM tables support collections
diff --git a/mysql-test/suite/funcs_1/r/is_columns_is.result b/mysql-test/suite/funcs_1/r/is_columns_is.result
index cd548f426e1..9dc8e01f8fb 100644
--- a/mysql-test/suite/funcs_1/r/is_columns_is.result
+++ b/mysql-test/suite/funcs_1/r/is_columns_is.result
@@ -346,6 +346,7 @@ def information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0
def information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL NULL utf8 utf8_general_ci varchar(1) select NEVER NULL
def information_schema STATISTICS COLUMN_NAME 8 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
def information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL NULL utf8 utf8_general_ci varchar(16) select NEVER NULL
+def information_schema STATISTICS IGNORE 17 '' NO varchar 3 9 NULL NULL NULL utf8 utf8_general_ci varchar(3) select NEVER NULL
def information_schema STATISTICS INDEX_COMMENT 16 '' NO varchar 1024 3072 NULL NULL NULL utf8 utf8_general_ci varchar(1024) select NEVER NULL
def information_schema STATISTICS INDEX_NAME 6 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
def information_schema STATISTICS INDEX_SCHEMA 5 '' NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select NEVER NULL
@@ -902,6 +903,7 @@ NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
3.0000 information_schema STATISTICS INDEX_COMMENT varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
+3.0000 information_schema STATISTICS IGNORE varchar 3 9 utf8 utf8_general_ci varchar(3)
3.0000 information_schema SYSTEM_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema SYSTEM_VARIABLES SESSION_VALUE varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
3.0000 information_schema SYSTEM_VARIABLES GLOBAL_VALUE varchar 2048 6144 utf8 utf8_general_ci varchar(2048)
diff --git a/mysql-test/suite/funcs_1/r/is_statistics.result b/mysql-test/suite/funcs_1/r/is_statistics.result
index df9fc55dbb0..1f1bf804f09 100644
--- a/mysql-test/suite/funcs_1/r/is_statistics.result
+++ b/mysql-test/suite/funcs_1/r/is_statistics.result
@@ -44,6 +44,7 @@ NULLABLE varchar(3) NO
INDEX_TYPE varchar(16) NO
COMMENT varchar(16) YES NULL
INDEX_COMMENT varchar(1024) NO
+IGNORE varchar(3) NO
SHOW CREATE TABLE information_schema.STATISTICS;
Table Create Table
STATISTICS CREATE TEMPORARY TABLE `STATISTICS` (
@@ -62,7 +63,8 @@ STATISTICS CREATE TEMPORARY TABLE `STATISTICS` (
`NULLABLE` varchar(3) NOT NULL DEFAULT '',
`INDEX_TYPE` varchar(16) NOT NULL DEFAULT '',
`COMMENT` varchar(16) DEFAULT NULL,
- `INDEX_COMMENT` varchar(1024) NOT NULL DEFAULT ''
+ `INDEX_COMMENT` varchar(1024) NOT NULL DEFAULT '',
+ `IGNORE` varchar(3) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8
SHOW COLUMNS FROM information_schema.STATISTICS;
Field Type Null Key Default Extra
@@ -82,6 +84,7 @@ NULLABLE varchar(3) NO
INDEX_TYPE varchar(16) NO
COMMENT varchar(16) YES NULL
INDEX_COMMENT varchar(1024) NO
+IGNORE varchar(3) NO
SELECT table_catalog, table_schema, table_name, index_schema, index_name
FROM information_schema.statistics WHERE table_catalog IS NOT NULL
ORDER BY table_schema, table_name, index_schema, index_name;
@@ -182,17 +185,17 @@ ENGINE = MEMORY;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost`
@@ -203,7 +206,7 @@ connect testuser1, localhost, testuser1, , test;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost`
@@ -213,7 +216,7 @@ connect testuser2, localhost, testuser2, , test;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql'
SHOW GRANTS FOR 'testuser2'@'localhost';
@@ -225,17 +228,17 @@ GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost';
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost`
@@ -248,13 +251,13 @@ connection testuser1;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH
-def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH NO
+def db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost`
@@ -266,7 +269,7 @@ connection testuser2;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql'
SHOW GRANTS FOR 'testuser2'@'localhost';
@@ -282,11 +285,11 @@ connection testuser1;
SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH
-def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH
-def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
-def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH NO
+def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH NO
+def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH NO
+def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH NO
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost`
@@ -318,9 +321,9 @@ ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1,f3);
SELECT * FROM information_schema.statistics
WHERE table_name LIKE 't1_%'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1_1 0 test PRIMARY 1 f1 A NULL NULL NULL BTREE
-def test t1_1 0 test PRIMARY 2 f3 A 0 NULL NULL BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1_1 0 test PRIMARY 1 f1 A NULL NULL NULL BTREE NO
+def test t1_1 0 test PRIMARY 2 f3 A 0 NULL NULL BTREE NO
ALTER TABLE test.t1_1 DROP PRIMARY KEY;
SELECT table_name FROM information_schema.statistics
WHERE table_name LIKE 't1_%';
@@ -328,8 +331,8 @@ table_name
ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1);
SELECT * FROM information_schema.statistics
WHERE table_name LIKE 't1_%';
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1_1 0 test PRIMARY 1 f1 A 0 NULL NULL BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1_1 0 test PRIMARY 1 f1 A 0 NULL NULL BTREE NO
ALTER TABLE test.t1_1 ADD INDEX (f4);
CREATE INDEX f3_f1 ON test.t1_1 (f3,f1);
CREATE UNIQUE INDEX f4x_uni ON test.t1_1 (f4x);
@@ -341,14 +344,14 @@ CREATE INDEX f2_prefix ON test.t1_1 (f2(20));
SELECT * FROM information_schema.statistics
WHERE table_name LIKE 't1_%' AND index_name <> 'PRIMARY'
ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def test t1_1 1 test f2_prefix 1 f2 A NULL 20 NULL YES BTREE
-def test t1_1 1 test f3_f1 1 f3 A NULL NULL NULL BTREE
-def test t1_1 1 test f3_f1 2 f1 A NULL NULL NULL BTREE
-def test t1_1 1 test f4 1 f4 A NULL NULL NULL YES BTREE
-def test t1_1 0 test f4x_uni 1 f4x A NULL NULL NULL YES BTREE
-def test t1_1 1 test not_null 1 f3x A NULL NULL NULL YES BTREE
-def test t1_2 1 test f2_hash 1 f2 NULL 0 NULL NULL YES HASH
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def test t1_1 1 test f2_prefix 1 f2 A NULL 20 NULL YES BTREE NO
+def test t1_1 1 test f3_f1 1 f3 A NULL NULL NULL BTREE NO
+def test t1_1 1 test f3_f1 2 f1 A NULL NULL NULL BTREE NO
+def test t1_1 1 test f4 1 f4 A NULL NULL NULL YES BTREE NO
+def test t1_1 0 test f4x_uni 1 f4x A NULL NULL NULL YES BTREE NO
+def test t1_1 1 test not_null 1 f3x A NULL NULL NULL YES BTREE NO
+def test t1_2 1 test f2_hash 1 f2 NULL 0 NULL NULL YES HASH NO
DROP TABLE test.t1_2;
SELECT DISTINCT table_name FROM information_schema.statistics
WHERE table_name = 't1_1';
diff --git a/mysql-test/suite/funcs_1/r/is_statistics_is.result b/mysql-test/suite/funcs_1/r/is_statistics_is.result
index a4fe6054d0e..54a48c32269 100644
--- a/mysql-test/suite/funcs_1/r/is_statistics_is.result
+++ b/mysql-test/suite/funcs_1/r/is_statistics_is.result
@@ -6,12 +6,12 @@ GRANT SELECT ON db_datadict.* TO testuser1@localhost;
SELECT * FROM information_schema.statistics
WHERE table_schema = 'information_schema'
ORDER BY table_schema, table_name, index_name, seq_in_index, column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
connect testuser1,localhost,testuser1,,db_datadict;
SELECT * FROM information_schema.statistics
WHERE table_schema = 'information_schema'
ORDER BY table_schema, table_name, index_name, seq_in_index, column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
connection default;
disconnect testuser1;
DROP USER testuser1@localhost;
diff --git a/mysql-test/suite/funcs_1/r/is_statistics_mysql.result b/mysql-test/suite/funcs_1/r/is_statistics_mysql.result
index 40d5e125c0d..f038590b1e1 100644
--- a/mysql-test/suite/funcs_1/r/is_statistics_mysql.result
+++ b/mysql-test/suite/funcs_1/r/is_statistics_mysql.result
@@ -6,88 +6,88 @@ GRANT SELECT ON db_datadict.* TO testuser1@localhost;
SELECT * FROM information_schema.statistics
WHERE table_schema = 'mysql'
ORDER BY table_schema, table_name, index_name, seq_in_index, column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
-def mysql columns_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql columns_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE
-def mysql columns_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
-def mysql columns_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE
-def mysql columns_priv 0 mysql PRIMARY 5 Column_name A #CARD# NULL NULL BTREE
-def mysql column_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE
-def mysql column_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE
-def mysql column_stats 0 mysql PRIMARY 3 column_name A #CARD# NULL NULL BTREE
-def mysql db 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql db 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE
-def mysql db 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
-def mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE
-def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
-def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
-def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
-def mysql global_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql global_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
-def mysql gtid_slave_pos 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
-def mysql gtid_slave_pos 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
-def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
-def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
-def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
-def mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE
-def mysql help_relation 1 mysql help_topic_id 1 help_topic_id A #CARD# NULL NULL BTREE
-def mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE
-def mysql help_relation 0 mysql PRIMARY 2 help_topic_id A #CARD# NULL NULL BTREE
-def mysql help_topic 0 mysql name 1 name A #CARD# NULL NULL BTREE
-def mysql help_topic 0 mysql PRIMARY 1 help_topic_id A #CARD# NULL NULL BTREE
-def mysql index_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE
-def mysql index_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE
-def mysql index_stats 0 mysql PRIMARY 3 index_name A #CARD# NULL NULL BTREE
-def mysql index_stats 0 mysql PRIMARY 4 prefix_arity A #CARD# NULL NULL BTREE
-def mysql innodb_index_stats 0 mysql PRIMARY 1 database_name A #CARD# NULL NULL BTREE
-def mysql innodb_index_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE
-def mysql innodb_index_stats 0 mysql PRIMARY 3 index_name A #CARD# NULL NULL BTREE
-def mysql innodb_index_stats 0 mysql PRIMARY 4 stat_name A #CARD# NULL NULL BTREE
-def mysql innodb_table_stats 0 mysql PRIMARY 1 database_name A #CARD# NULL NULL BTREE
-def mysql innodb_table_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE
-def mysql plugin 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
-def mysql proc 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
-def mysql proc 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
-def mysql proc 0 mysql PRIMARY 3 type A #CARD# NULL NULL BTREE
-def mysql procs_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
-def mysql procs_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql procs_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE
-def mysql procs_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
-def mysql procs_priv 0 mysql PRIMARY 4 Routine_name A #CARD# NULL NULL BTREE
-def mysql procs_priv 0 mysql PRIMARY 5 Routine_type A #CARD# NULL NULL BTREE
-def mysql proxies_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
-def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
-def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
-def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
-def mysql roles_mapping 0 mysql Host 1 Host A #CARD# NULL NULL BTREE
-def mysql roles_mapping 0 mysql Host 2 User A #CARD# NULL NULL BTREE
-def mysql roles_mapping 0 mysql Host 3 Role A #CARD# NULL NULL BTREE
-def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
-def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
-def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
-def mysql tables_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE
-def mysql tables_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE
-def mysql tables_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE
-def mysql table_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE
-def mysql table_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE
-def mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE
-def mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A #CARD# NULL NULL BTREE
-def mysql time_zone_name 0 mysql PRIMARY 1 Name A #CARD# NULL NULL BTREE
-def mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE
-def mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A #CARD# NULL NULL BTREE
-def mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE
-def mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A #CARD# NULL NULL BTREE
-def mysql transaction_registry 1 mysql begin_timestamp 1 begin_timestamp A #CARD# NULL NULL BTREE
-def mysql transaction_registry 0 mysql commit_id 1 commit_id A #CARD# NULL NULL BTREE
-def mysql transaction_registry 1 mysql commit_timestamp 1 commit_timestamp A #CARD# NULL NULL BTREE
-def mysql transaction_registry 1 mysql commit_timestamp 2 transaction_id A #CARD# NULL NULL BTREE
-def mysql transaction_registry 0 mysql PRIMARY 1 transaction_id A #CARD# NULL NULL BTREE
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
+def mysql columns_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql columns_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE NO
+def mysql columns_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE NO
+def mysql columns_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE NO
+def mysql columns_priv 0 mysql PRIMARY 5 Column_name A #CARD# NULL NULL BTREE NO
+def mysql column_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE NO
+def mysql column_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE NO
+def mysql column_stats 0 mysql PRIMARY 3 column_name A #CARD# NULL NULL BTREE NO
+def mysql db 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql db 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE NO
+def mysql db 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE NO
+def mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE NO
+def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE NO
+def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE NO
+def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE NO
+def mysql global_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql global_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE NO
+def mysql gtid_slave_pos 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE NO
+def mysql gtid_slave_pos 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE NO
+def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE NO
+def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE NO
+def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE NO
+def mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE NO
+def mysql help_relation 1 mysql help_topic_id 1 help_topic_id A #CARD# NULL NULL BTREE NO
+def mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE NO
+def mysql help_relation 0 mysql PRIMARY 2 help_topic_id A #CARD# NULL NULL BTREE NO
+def mysql help_topic 0 mysql name 1 name A #CARD# NULL NULL BTREE NO
+def mysql help_topic 0 mysql PRIMARY 1 help_topic_id A #CARD# NULL NULL BTREE NO
+def mysql index_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE NO
+def mysql index_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE NO
+def mysql index_stats 0 mysql PRIMARY 3 index_name A #CARD# NULL NULL BTREE NO
+def mysql index_stats 0 mysql PRIMARY 4 prefix_arity A #CARD# NULL NULL BTREE NO
+def mysql innodb_index_stats 0 mysql PRIMARY 1 database_name A #CARD# NULL NULL BTREE NO
+def mysql innodb_index_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE NO
+def mysql innodb_index_stats 0 mysql PRIMARY 3 index_name A #CARD# NULL NULL BTREE NO
+def mysql innodb_index_stats 0 mysql PRIMARY 4 stat_name A #CARD# NULL NULL BTREE NO
+def mysql innodb_table_stats 0 mysql PRIMARY 1 database_name A #CARD# NULL NULL BTREE NO
+def mysql innodb_table_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE NO
+def mysql plugin 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE NO
+def mysql proc 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE NO
+def mysql proc 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE NO
+def mysql proc 0 mysql PRIMARY 3 type A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 0 mysql PRIMARY 4 Routine_name A #CARD# NULL NULL BTREE NO
+def mysql procs_priv 0 mysql PRIMARY 5 Routine_type A #CARD# NULL NULL BTREE NO
+def mysql proxies_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE NO
+def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE NO
+def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE NO
+def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE NO
+def mysql roles_mapping 0 mysql Host 1 Host A #CARD# NULL NULL BTREE NO
+def mysql roles_mapping 0 mysql Host 2 User A #CARD# NULL NULL BTREE NO
+def mysql roles_mapping 0 mysql Host 3 Role A #CARD# NULL NULL BTREE NO
+def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE NO
+def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE NO
+def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE NO
+def mysql tables_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE NO
+def mysql tables_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE NO
+def mysql tables_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE NO
+def mysql table_stats 0 mysql PRIMARY 1 db_name A #CARD# NULL NULL BTREE NO
+def mysql table_stats 0 mysql PRIMARY 2 table_name A #CARD# NULL NULL BTREE NO
+def mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE NO
+def mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A #CARD# NULL NULL BTREE NO
+def mysql time_zone_name 0 mysql PRIMARY 1 Name A #CARD# NULL NULL BTREE NO
+def mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE NO
+def mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A #CARD# NULL NULL BTREE NO
+def mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE NO
+def mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A #CARD# NULL NULL BTREE NO
+def mysql transaction_registry 1 mysql begin_timestamp 1 begin_timestamp A #CARD# NULL NULL BTREE NO
+def mysql transaction_registry 0 mysql commit_id 1 commit_id A #CARD# NULL NULL BTREE NO
+def mysql transaction_registry 1 mysql commit_timestamp 1 commit_timestamp A #CARD# NULL NULL BTREE NO
+def mysql transaction_registry 1 mysql commit_timestamp 2 transaction_id A #CARD# NULL NULL BTREE NO
+def mysql transaction_registry 0 mysql PRIMARY 1 transaction_id A #CARD# NULL NULL BTREE NO
connect testuser1,localhost,testuser1,,db_datadict;
SELECT * FROM information_schema.statistics
WHERE table_schema = 'mysql'
ORDER BY table_schema, table_name, index_name, seq_in_index, column_name;
-TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
+TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORE
connection default;
disconnect testuser1;
DROP USER testuser1@localhost;
diff --git a/mysql-test/suite/funcs_1/r/is_table_constraints.result b/mysql-test/suite/funcs_1/r/is_table_constraints.result
index e0b861c8589..9dc0d79e56a 100644
--- a/mysql-test/suite/funcs_1/r/is_table_constraints.result
+++ b/mysql-test/suite/funcs_1/r/is_table_constraints.result
@@ -120,16 +120,16 @@ def db_datadict my_idx2 db_datadict t1 UNIQUE
def db_datadict PRIMARY db_datadict t1 PRIMARY KEY
def db_datadict PRIMARY db_datadict t2 PRIMARY KEY
SHOW INDEXES FROM db_datadict.t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ###
-t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ###
-t1 0 my_idx1 1 f6 ### ### ### ### ### ### ###
-t1 0 my_idx1 2 f1 ### ### ### ### ### ### ###
-t1 0 my_idx2 1 f3 ### ### ### ### ### ### ###
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ### NO
+t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ### NO
+t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### NO
+t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO
+t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO
SHOW INDEXES FROM db_datadict.t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 0 PRIMARY 1 f1 ### ### ### ### ### ### ###
-t2 0 PRIMARY 2 f2 ### ### ### ### ### ### ###
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 0 PRIMARY 1 f1 ### ### ### ### ### ### ### NO
+t2 0 PRIMARY 2 f2 ### ### ### ### ### ### ### NO
connect testuser1, localhost, testuser1, , db_datadict;
SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost
@@ -143,12 +143,12 @@ def db_datadict my_idx1 db_datadict t1 UNIQUE
def db_datadict my_idx2 db_datadict t1 UNIQUE
def db_datadict PRIMARY db_datadict t1 PRIMARY KEY
SHOW INDEXES FROM db_datadict.t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ###
-t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ###
-t1 0 my_idx1 1 f6 ### ### ### ### ### ### ###
-t1 0 my_idx1 2 f1 ### ### ### ### ### ### ###
-t1 0 my_idx2 1 f3 ### ### ### ### ### ### ###
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ### NO
+t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ### NO
+t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### NO
+t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO
+t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO
SHOW INDEXES FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2'
connection default;
diff --git a/mysql-test/suite/funcs_1/r/storedproc.result b/mysql-test/suite/funcs_1/r/storedproc.result
index 4005240aa49..bcdce3c17b6 100644
--- a/mysql-test/suite/funcs_1/r/storedproc.result
+++ b/mysql-test/suite/funcs_1/r/storedproc.result
@@ -22270,8 +22270,8 @@ END//
CALL sp6 (10, 20, 30, 40, 50);
f1 f2 f3
10 30 50
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-res_t9 1 index_1 1 f1 A NULL 5 NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+res_t9 1 index_1 1 f1 A NULL 5 NULL YES BTREE NO
DROP PROCEDURE sp6;
drop table res_t9;
diff --git a/mysql-test/suite/heap/heap.result b/mysql-test/suite/heap/heap.result
index 0ef38360caf..fe40344ae0f 100644
--- a/mysql-test/suite/heap/heap.result
+++ b/mysql-test/suite/heap/heap.result
@@ -3,8 +3,8 @@ create table t1 (a int not null,b int not null, primary key (a)) engine=heap com
insert into t1 values(1,1),(2,2),(3,3),(4,4);
delete from t1 where a=1 or a=0;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a NULL 3 NULL NULL HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a NULL 3 NULL NULL HASH NO
select * from t1;
a b
2 2
diff --git a/mysql-test/suite/heap/heap_btree.result b/mysql-test/suite/heap/heap_btree.result
index 5778ff0dd55..3d59f578e38 100644
--- a/mysql-test/suite/heap/heap_btree.result
+++ b/mysql-test/suite/heap/heap_btree.result
@@ -3,8 +3,8 @@ create table t1 (a int not null,b int not null, primary key using BTREE (a)) eng
insert into t1 values(1,1),(2,2),(3,3),(4,4);
delete from t1 where a=1 or a=0;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A NULL NULL NULL BTREE NO
select * from t1;
a b
2 2
diff --git a/mysql-test/suite/heap/heap_hash.result b/mysql-test/suite/heap/heap_hash.result
index df1acdae506..6b9fb58f999 100644
--- a/mysql-test/suite/heap/heap_hash.result
+++ b/mysql-test/suite/heap/heap_hash.result
@@ -3,8 +3,8 @@ create table t1 (a int not null,b int not null, primary key using HASH (a)) engi
insert into t1 values(1,1),(2,2),(3,3),(4,4);
delete from t1 where a=1 or a=0;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a NULL 3 NULL NULL HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a NULL 3 NULL NULL HASH NO
select * from t1;
a b
2 2
@@ -327,15 +327,15 @@ explain select * from t1 ignore index (btree_idx) where name='matt';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id NULL 91 NULL NULL HASH
-t1 1 heap_idx 1 name NULL 13 NULL NULL HASH
-t1 1 btree_idx 1 name A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id NULL 91 NULL NULL HASH NO
+t1 1 heap_idx 1 name NULL 13 NULL NULL HASH NO
+t1 1 btree_idx 1 name A NULL NULL NULL BTREE NO
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id NULL 91 NULL NULL HASH
-t1 1 heap_idx 1 name NULL 13 NULL NULL HASH
-t1 1 btree_idx 1 name A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id NULL 91 NULL NULL HASH NO
+t1 1 heap_idx 1 name NULL 13 NULL NULL HASH NO
+t1 1 btree_idx 1 name A NULL NULL NULL BTREE NO
create table t3
(
a varchar(20) not null,
@@ -344,13 +344,13 @@ key (a,b)
) engine=heap;
insert into t3 select name, name from t1;
show index from t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a 1 a NULL NULL NULL NULL HASH
-t3 1 a 2 b NULL 13 NULL NULL HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t3 1 a 1 a NULL NULL NULL NULL HASH NO
+t3 1 a 2 b NULL 13 NULL NULL HASH NO
show index from t3;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t3 1 a 1 a NULL NULL NULL NULL HASH
-t3 1 a 2 b NULL 13 NULL NULL HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t3 1 a 1 a NULL NULL NULL NULL HASH NO
+t3 1 a 2 b NULL 13 NULL NULL HASH NO
explain select * from t1 ignore key(btree_idx), t3 where t1.name='matt' and t3.a = concat('',t1.name) and t3.b=t1.name;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ref heap_idx heap_idx 22 const 7 Using where
diff --git a/mysql-test/suite/innodb/r/innodb-index-online.result b/mysql-test/suite/innodb/r/innodb-index-online.result
index 8eebece46b5..d27ea515932 100644
--- a/mysql-test/suite/innodb/r/innodb-index-online.result
+++ b/mysql-test/suite/innodb/r/innodb-index-online.result
@@ -208,9 +208,9 @@ INSERT INTO mysql.innodb_index_stats SELECT * FROM t1_c2_stats;
DROP TABLE t1_c2_stats;
CREATE INDEX c2d ON t1(c2);
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 c1 A 80 NULL NULL BTREE
-t1 1 c2d 1 c2 A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 c1 A 80 NULL NULL BTREE NO
+t1 1 c2d 1 c2 A 10 NULL NULL YES BTREE NO
EXPLAIN SELECT COUNT(*) FROM t1 WHERE c2 > 3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range c2d c2d 5 NULL 32 Using where; Using index
diff --git a/mysql-test/suite/innodb/r/innodb.result b/mysql-test/suite/innodb/r/innodb.result
index 76dedbf2495..3f2be3b0179 100644
--- a/mysql-test/suite/innodb/r/innodb.result
+++ b/mysql-test/suite/innodb/r/innodb.result
@@ -175,10 +175,10 @@ Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A # NULL NULL BTREE
-t1 1 parent_id 1 parent_id A # NULL NULL BTREE
-t1 1 level 1 level A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A # NULL NULL BTREE NO
+t1 1 parent_id 1 parent_id A # NULL NULL BTREE NO
+t1 1 level 1 level A # NULL NULL BTREE NO
drop table t1;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
@@ -220,8 +220,8 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 skr 1 a A # NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 skr 1 a A # NULL NULL YES BTREE NO
drop table t1;
create table t1 (a int,b varchar(20),key(a)) engine=innodb;
insert into t1 values (1,""), (2,"testing");
@@ -410,13 +410,13 @@ key(a),primary key(a,b), unique(c),key(a),unique(b));
Warnings:
Note 1831 Duplicate index `a_2`. This is deprecated and will be disallowed in a future release
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
-t1 0 PRIMARY 2 b A # NULL NULL BTREE
-t1 0 c 1 c A # NULL NULL BTREE
-t1 0 b 1 b A # NULL NULL BTREE
-t1 1 a 1 a A # NULL NULL BTREE
-t1 1 a_2 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
+t1 0 PRIMARY 2 b A # NULL NULL BTREE NO
+t1 0 c 1 c A # NULL NULL BTREE NO
+t1 0 b 1 b A # NULL NULL BTREE NO
+t1 1 a 1 a A # NULL NULL BTREE NO
+t1 1 a_2 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (col1 int not null, col2 char(4) not null, primary key(col1));
alter table t1 engine=innodb;
@@ -753,8 +753,8 @@ Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A # NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A # NULL NULL BTREE NO
drop table t1;
create table t1 (i int, j int ) ENGINE=innodb;
insert into t1 values (1,2);
diff --git a/mysql-test/suite/innodb/r/innodb_stats.result b/mysql-test/suite/innodb/r/innodb_stats.result
index eadce75318b..23b37ec48da 100644
--- a/mysql-test/suite/innodb/r/innodb_stats.result
+++ b/mysql-test/suite/innodb/r/innodb_stats.result
@@ -53,6 +53,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1);
ANALYZE TABLE test_innodb_stats;
@@ -106,6 +107,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (1);
ANALYZE TABLE test_innodb_stats;
@@ -159,6 +161,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (1), (1);
ANALYZE TABLE test_innodb_stats;
@@ -212,6 +215,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (1), (1), (1), (1), (1), (1), (1), (1), (1);
ANALYZE TABLE test_innodb_stats;
@@ -265,6 +269,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (2);
ANALYZE TABLE test_innodb_stats;
@@ -318,6 +323,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (1), (2);
ANALYZE TABLE test_innodb_stats;
@@ -371,6 +377,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (2), (3);
ANALYZE TABLE test_innodb_stats;
@@ -424,6 +431,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (1), (2), (3), (3);
ANALYZE TABLE test_innodb_stats;
@@ -477,6 +485,7 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
TRUNCATE TABLE test_innodb_stats;
INSERT INTO test_innodb_stats (a) VALUES (1), (2), (3), (4), (5), (1), (2), (3), (4), (5);
ANALYZE TABLE test_innodb_stats;
@@ -530,3 +539,4 @@ NULLABLE YES
INDEX_TYPE BTREE
COMMENT
INDEX_COMMENT
+IGNORE NO
diff --git a/mysql-test/suite/innodb_fts/r/fulltext.result b/mysql-test/suite/innodb_fts/r/fulltext.result
index 0e30dd0be05..17855a72d08 100644
--- a/mysql-test/suite/innodb_fts/r/fulltext.result
+++ b/mysql-test/suite/innodb_fts/r/fulltext.result
@@ -6,9 +6,9 @@ INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
('Full-text search in MySQL', 'implements vector space model');
ANALYZE TABLE t1;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
-t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT NO
+t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT NO
select * from t1 where MATCH(a,b) AGAINST ("collections");
a b
Full-text indexes are called collections
@@ -232,9 +232,9 @@ match(ttxt.inhalt) against ('foobar');
id
3
show keys from t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 1 tig 1 ticket A 3 NULL NULL YES BTREE
-t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 1 tig 1 ticket A 3 NULL NULL YES BTREE NO
+t2 1 tix 1 inhalt NULL NULL NULL NULL YES FULLTEXT NO
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
diff --git a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
index 52420da2409..11f7a46baee 100644
--- a/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
+++ b/mysql-test/suite/innodb_gis/r/alter_spatial_index.result
@@ -130,13 +130,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
SET @g1 = ST_GeomFromText('POLYGON((20 20,30 30,40 40,50 50,40 50,30 40,30 30,20 20))');
SELECT c1,ST_Astext(c2),ST_Astext(c4) FROM tab WHERE ST_Crosses(tab.c4, @g1);
c1 ST_Astext(c2) ST_Astext(c4)
@@ -174,13 +174,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c44`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c22 A # 32 NULL SPATIAL
-tab 1 idx3 1 c33 A # 32 NULL SPATIAL
-tab 1 idx4 1 c44 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c44 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c22 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c33 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c44 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c44 A # 10 NULL BTREE NO
ALTER TABLE tab CHANGE COLUMN c22 c2 POINT NOT NULL;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
@@ -206,13 +206,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ALTER TABLE tab DISABLE KEYS;
Warnings:
Note 1031 Storage engine InnoDB of the table `test`.`tab` doesn't have this option
@@ -332,11 +332,11 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
DELETE FROM tab;
ALTER TABLE tab ADD PRIMARY KEY(c2);
affected rows: 0
@@ -364,14 +364,14 @@ tab CREATE TABLE `tab` (
SPATIAL KEY `idx2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c2 A # 25 NULL BTREE
-tab 0 const_1 1 c2 A # 25 NULL BTREE
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c2 A # 25 NULL BTREE NO
+tab 0 const_1 1 c2 A # 25 NULL BTREE NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@@ -406,14 +406,14 @@ tab CREATE TABLE `tab` (
SPATIAL KEY `idx2` (`c2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c5 A # 10 NULL BTREE
-tab 0 const_1 1 c5 A # 10 NULL BTREE
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c5 A # 10 NULL BTREE NO
+tab 0 const_1 1 c5 A # 10 NULL BTREE NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@@ -540,13 +540,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
SET @g1 = ST_GeomFromText( 'POLYGON((7 1,6 2,6 3,10 3,10 1,7 1))');
UPDATE tab SET C2 = ST_GeomFromText('POINT(1000 1000)')
WHERE MBRContains(tab.c4, @g1);
@@ -577,13 +577,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ANALYZE TABLE tab;
Table Op Msg_type Msg_text
test.tab analyze status Engine-independent statistics collected
@@ -634,13 +634,13 @@ tab CREATE TABLE `tab` (
KEY `idx6` (`c4`(10)) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A # NULL NULL BTREE
-tab 1 idx2 1 c2 A # 32 NULL SPATIAL
-tab 1 idx3 1 c3 A # 32 NULL SPATIAL
-tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon
-tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry
-tab 1 idx6 1 c4 A # 10 NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A # NULL NULL BTREE NO
+tab 1 idx2 1 c2 A # 32 NULL SPATIAL NO
+tab 1 idx3 1 c3 A # 32 NULL SPATIAL NO
+tab 1 idx4 1 c4 A # 32 NULL SPATIAL testing spatial index on Polygon NO
+tab 1 idx5 1 c5 A # 32 NULL SPATIAL testing spatial index on Geometry NO
+tab 1 idx6 1 c4 A # 10 NULL BTREE NO
ANALYZE TABLE tab;
Table Op Msg_type Msg_text
test.tab analyze status Engine-independent statistics collected
@@ -716,12 +716,12 @@ child CREATE TABLE `child` (
SPATIAL KEY `idx2` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM parent;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-parent 0 PRIMARY 1 id A 0 25 NULL BTREE
-parent 1 idx1 1 id A NULL 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+parent 0 PRIMARY 1 id A 0 25 NULL BTREE NO
+parent 1 idx1 1 id A NULL 32 NULL SPATIAL NO
SHOW INDEX FROM child;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-child 1 idx2 1 parent_id A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+child 1 idx2 1 parent_id A # 32 NULL SPATIAL NO
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ;
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ON DELETE CASCADE ;
DROP table child,parent;
@@ -748,12 +748,12 @@ child CREATE TABLE `child` (
SPATIAL KEY `idx2` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM parent;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-parent 0 PRIMARY 1 id A 0 10 NULL BTREE
-parent 1 idx1 1 id A NULL 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+parent 0 PRIMARY 1 id A 0 10 NULL BTREE NO
+parent 1 idx1 1 id A NULL 32 NULL SPATIAL NO
SHOW INDEX FROM child;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-child 1 idx2 1 parent_id A NULL 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+child 1 idx2 1 parent_id A NULL 32 NULL SPATIAL NO
ALTER TABLE child ADD FOREIGN KEY(parent_id) REFERENCES parent(id) ;
DROP table child,parent;
create table t1 (c1 int) engine=innodb;
diff --git a/mysql-test/suite/innodb_gis/r/create_spatial_index.result b/mysql-test/suite/innodb_gis/r/create_spatial_index.result
index 78f2a6ad04d..afb7c06af95 100644
--- a/mysql-test/suite/innodb_gis/r/create_spatial_index.result
+++ b/mysql-test/suite/innodb_gis/r/create_spatial_index.result
@@ -7,12 +7,12 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=8 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=4
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE
-tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
-tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
-tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
-tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE NO
+tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
+tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
+tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
+tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@@ -437,11 +437,11 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=2 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=8
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
-tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
-tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
-tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
+tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
+tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
+tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c1,c2,c3,c4,c5)
VALUES(1,ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@@ -854,12 +854,12 @@ CREATE SPATIAL INDEX idx3 on tab(c4 ASC) KEY_BLOCK_SIZE=16 ;
CREATE SPATIAL INDEX idx4 on tab(c5 DESC) KEY_BLOCK_SIZE=16
COMMENT 'Spatial index on Geometry type column';
SHOW INDEXES FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE
-tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL
-tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968
-tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL
-tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 0 PRIMARY 1 c1 A 0 NULL NULL BTREE NO
+tab 1 idx1 1 c2 A NULL 32 NULL SPATIAL NO
+tab 1 idx2 1 c3 A NULL 32 NULL SPATIAL wl6968 NO
+tab 1 idx3 1 c4 A NULL 32 NULL SPATIAL NO
+tab 1 idx4 1 c5 A NULL 32 NULL SPATIAL Spatial index on Geometry type column NO
INSERT INTO tab(c2,c3,c4,c5)
VALUES(ST_GeomFromText('POINT(10 10)'),ST_GeomFromText('LINESTRING(5 5,20 20,30 30)'),
ST_GeomFromText('POLYGON((30 30,40 40,50 50,30 50,30 40,30 30))'),
@@ -1255,8 +1255,8 @@ tab CREATE TABLE `tab` (
CONSTRAINT `tab_const` CHECK (cast(`c1` as char charset binary) > 0)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SHOW INDEX FROM tab;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-tab 1 idx1 1 c1 A NULL 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+tab 1 idx1 1 c1 A NULL 32 NULL SPATIAL NO
set @g1 = ST_GeomFromText('POINT(-1 -2)');
SELECT ST_AsText(c1) FROM tab;
ST_AsText(c1)
diff --git a/mysql-test/suite/innodb_gis/r/rtree.result b/mysql-test/suite/innodb_gis/r/rtree.result
index b7cdc8ec7c9..961f1d6b8aa 100644
--- a/mysql-test/suite/innodb_gis/r/rtree.result
+++ b/mysql-test/suite/innodb_gis/r/rtree.result
@@ -37,8 +37,8 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 g 1 g A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb;
INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
@@ -183,10 +183,10 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 i A # NULL NULL BTREE
-t1 0 PRIMARY 2 i2 A # NULL NULL BTREE
-t1 1 g 1 g A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 i A # NULL NULL BTREE NO
+t1 0 PRIMARY 2 i2 A # NULL NULL BTREE NO
+t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
diff --git a/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
index 0165887a9f1..f89898c368e 100644
--- a/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
+++ b/mysql-test/suite/innodb_gis/r/rtree_multi_pk.result
@@ -37,10 +37,10 @@ POINT(3 3)
POINT(3.1 3.1)
POINT(2 2)
show indexes from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 i A # NULL NULL BTREE
-t1 0 PRIMARY 2 i2 A # NULL NULL BTREE
-t1 1 g 1 g A # 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 i A # NULL NULL BTREE NO
+t1 0 PRIMARY 2 i2 A # NULL NULL BTREE NO
+t1 1 g 1 g A # 32 NULL SPATIAL NO
drop table t1;
create table t1 (name VARCHAR(100), square GEOMETRY not null, spatial index (square))engine=innodb;
INSERT INTO t1 VALUES("small", ST_GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
diff --git a/mysql-test/suite/maria/maria-recovery-rtree-ft.result b/mysql-test/suite/maria/maria-recovery-rtree-ft.result
index bb7d864b6b1..3eb65cee78e 100644
--- a/mysql-test/suite/maria/maria-recovery-rtree-ft.result
+++ b/mysql-test/suite/maria/maria-recovery-rtree-ft.result
@@ -15,14 +15,14 @@ name VARCHAR(32)
,SPATIAL key (line)
) transactional=1 row_format=page engine=aria;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 line 1 line A NULL 32 NULL SPATIAL
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 line 1 line A NULL 32 NULL SPATIAL NO
CREATE TABLE t2 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)
) transactional=1 row_format=page engine=aria;
SHOW INDEX FROM t2;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t2 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
-t2 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t2 1 a 1 a NULL NULL NULL NULL YES FULLTEXT NO
+t2 1 a 2 b NULL NULL NULL NULL YES FULLTEXT NO
* TEST of REDO: see if recovery can reconstruct if we give it an old table
connection admin;
* copied t2 for feeding_recovery
diff --git a/mysql-test/suite/maria/maria-recovery2.result b/mysql-test/suite/maria/maria-recovery2.result
index 0ed49ab8142..4463b58fe83 100644
--- a/mysql-test/suite/maria/maria-recovery2.result
+++ b/mysql-test/suite/maria/maria-recovery2.result
@@ -145,8 +145,8 @@ ok
connection default;
use mysqltest;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 1 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 1 NULL NULL YES BTREE NO
select count(*) from t1;
count(*)
1
diff --git a/mysql-test/suite/maria/maria.result b/mysql-test/suite/maria/maria.result
index eaa4fa568a5..d77f0e225b8 100644
--- a/mysql-test/suite/maria/maria.result
+++ b/mysql-test/suite/maria/maria.result
@@ -62,16 +62,16 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status Table is already up to date
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 a A 5 NULL NULL BTREE
-t1 1 b 1 b A 1 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 a A 5 NULL NULL BTREE NO
+t1 1 b 1 b A 1 NULL NULL BTREE NO
drop table t1;
create table t1 (a int not null, b int not null, c int not null, primary key (a),key(b));
insert into t1 values (3,3,3),(1,1,1),(2,2,2),(4,4,4);
@@ -371,13 +371,13 @@ check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 10 NULL NULL YES BTREE
-t1 1 c 1 c A 10 NULL NULL YES BTREE
-t1 1 a 1 a A 10 NULL NULL BTREE
-t1 1 a 2 b A 10 NULL NULL YES BTREE
-t1 1 c_2 1 c A 10 NULL NULL YES BTREE
-t1 1 c_2 2 a A 10 NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 10 NULL NULL YES BTREE NO
+t1 1 c 1 c A 10 NULL NULL YES BTREE NO
+t1 1 a 1 a A 10 NULL NULL BTREE NO
+t1 1 a 2 b A 10 NULL NULL YES BTREE NO
+t1 1 c_2 1 c A 10 NULL NULL YES BTREE NO
+t1 1 c_2 2 a A 10 NULL NULL BTREE NO
explain select * from t1,t2 where t1.a=t2.a;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL a NULL NULL NULL 2
@@ -640,29 +640,29 @@ Error 1146 Table 'test.t3' doesn't exist
drop table t1,t2;
create table t1 (a int, key (a));
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE NO
alter table t1 disable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
create table t2 (a int);
set @@rand_seed1=31415926,@@rand_seed2=2718281828;
insert t1 select * from t2;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A NULL NULL NULL YES BTREE disabled
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A NULL NULL NULL YES BTREE disabled NO
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 1000 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 1000 NULL NULL YES BTREE NO
alter table t1 engine=heap;
alter table t1 disable keys;
Warnings:
Note 1031 Storage engine MEMORY of the table `test`.`t1` doesn't have this option
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a NULL 500 NULL NULL YES HASH
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a NULL 500 NULL NULL YES HASH NO
drop table t1,t2;
create table t1 ( a tinytext, b char(1), index idx (a(1),b) );
insert into t1 values (null,''), (null,'');
@@ -740,16 +740,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
set aria_stats_method=nulls_equal;
set @save_use_stat_tables= @@use_stat_tables;
set @@use_stat_tables= COMPLEMENTARY;
@@ -763,16 +763,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
set @@use_stat_tables= @save_use_stat_tables;
set aria_stats_method=DEFAULT;
show variables like 'aria_stats_method';
@@ -785,16 +785,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
insert into t1 values (11);
delete from t1 where a=11;
check table t1;
Table Op Msg_type Msg_text
test.t1 check status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
drop table t1;
set aria_stats_method=nulls_ignored;
show variables like 'aria_stats_method';
@@ -815,22 +815,22 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
-t1 1 a 2 b A 4 NULL NULL YES BTREE
-t1 1 a 3 c A 4 NULL NULL YES BTREE
-t1 1 a 4 d A 4 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
+t1 1 a 2 b A 4 NULL NULL YES BTREE NO
+t1 1 a 3 c A 4 NULL NULL YES BTREE NO
+t1 1 a 4 d A 4 NULL NULL YES BTREE NO
delete from t1;
analyze table t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show index from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 0 NULL NULL YES BTREE
-t1 1 a 2 b A 0 NULL NULL YES BTREE
-t1 1 a 3 c A 0 NULL NULL YES BTREE
-t1 1 a 4 d A 0 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 0 NULL NULL YES BTREE NO
+t1 1 a 2 b A 0 NULL NULL YES BTREE NO
+t1 1 a 3 c A 0 NULL NULL YES BTREE NO
+t1 1 a 4 d A 0 NULL NULL YES BTREE NO
set @@use_stat_tables= @save_use_stat_tables;
set aria_stats_method=DEFAULT;
drop table t1;
@@ -1706,13 +1706,13 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status Table is already up to date
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
alter table t1 disable keys;
alter table t1 enable keys;
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 8 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 8 NULL NULL YES BTREE NO
drop table t1;
connect session1,localhost,root,,;
connect session2,localhost,root,,;
diff --git a/mysql-test/suite/rpl/r/rpl_ddl.result b/mysql-test/suite/rpl/r/rpl_ddl.result
index 22ce9a288c1..c4dff940c92 100644
--- a/mysql-test/suite/rpl/r/rpl_ddl.result
+++ b/mysql-test/suite/rpl/r/rpl_ddl.result
@@ -790,10 +790,10 @@ MAX(f1)
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
connection master;
SHOW INDEX FROM mysqltest1.t6;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
connection slave;
SHOW INDEX FROM mysqltest1.t6;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
connection master;
######## CREATE INDEX my_idx5 ON mysqltest1.t5(f1) ########
@@ -833,12 +833,12 @@ MAX(f1)
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
connection master;
SHOW INDEX FROM mysqltest1.t5;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t5 1 my_idx5 1 f1 A 0 NULL NULL YES BTREE NO
connection slave;
SHOW INDEX FROM mysqltest1.t5;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t5 1 my_idx5 1 f1 A NULL NULL NULL YES BTREE NO
connection master;
######## DROP DATABASE mysqltest2 ########
diff --git a/mysql-test/suite/sys_vars/r/myisam_stats_method_func.result b/mysql-test/suite/sys_vars/r/myisam_stats_method_func.result
index 1de1d195460..e403fe7e83f 100644
--- a/mysql-test/suite/sys_vars/r/myisam_stats_method_func.result
+++ b/mysql-test/suite/sys_vars/r/myisam_stats_method_func.result
@@ -23,16 +23,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
INSERT INTO t1 VALUES (11);
DELETE FROM t1 WHERE a = 11;
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 10 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 10 NULL NULL YES BTREE NO
'Set nulls to be equal'
SET myisam_stats_method = nulls_equal;
set @save_use_stat_tables= @@use_stat_tables;
@@ -44,16 +44,16 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
INSERT INTO t1 VALUES (11);
DELETE FROM t1 WHERE a = 11;
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 5 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 5 NULL NULL YES BTREE NO
'Set nulls to be ignored'
SET myisam_stats_method = nulls_ignored;
SHOW VARIABLES LIKE 'myisam_stats_method';
@@ -73,22 +73,22 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 2 NULL NULL YES BTREE
-t1 1 a 2 b A 4 NULL NULL YES BTREE
-t1 1 a 3 c A 4 NULL NULL YES BTREE
-t1 1 a 4 d A 4 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 2 NULL NULL YES BTREE NO
+t1 1 a 2 b A 4 NULL NULL YES BTREE NO
+t1 1 a 3 c A 4 NULL NULL YES BTREE NO
+t1 1 a 4 d A 4 NULL NULL YES BTREE NO
DELETE FROM t1;
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a A 0 NULL NULL YES BTREE
-t1 1 a 2 b A 0 NULL NULL YES BTREE
-t1 1 a 3 c A 0 NULL NULL YES BTREE
-t1 1 a 4 d A 0 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 a 1 a A 0 NULL NULL YES BTREE NO
+t1 1 a 2 b A 0 NULL NULL YES BTREE NO
+t1 1 a 3 c A 0 NULL NULL YES BTREE NO
+t1 1 a 4 d A 0 NULL NULL YES BTREE NO
SET myisam_stats_method = DEFAULT;
set @@use_stat_tables= @save_use_stat_tables;
DROP TABLE t1;
diff --git a/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result b/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result
index 0ac1b839d76..f2c2a5ca9a8 100644
--- a/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result
+++ b/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result
@@ -1,60 +1,60 @@
set @@global.optimizer_switch=@@optimizer_switch;
select @@global.optimizer_switch;
@@global.optimizer_switch
-index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
select @@session.optimizer_switch;
@@session.optimizer_switch
-index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
show global variables like 'optimizer_switch';
Variable_name Value
-optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
show session variables like 'optimizer_switch';
Variable_name Value
-optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
select * from information_schema.global_variables where variable_name='optimizer_switch';
VARIABLE_NAME VARIABLE_VALUE
-OPTIMIZER_SWITCH index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+OPTIMIZER_SWITCH index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
select * from information_schema.session_variables where variable_name='optimizer_switch';
VARIABLE_NAME VARIABLE_VALUE
-OPTIMIZER_SWITCH index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off
+OPTIMIZER_SWITCH index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,ignore_indexes=on
set global optimizer_switch=10;
set session optimizer_switch=5;
select @@global.optimizer_switch;
@@global.optimizer_switch
-index_merge=off,index_merge_union=on,index_merge_sort_union=off,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+index_merge=off,index_merge_union=on,index_merge_sort_union=off,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
select @@session.optimizer_switch;
@@session.optimizer_switch
-index_merge=on,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+index_merge=on,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
set global optimizer_switch="index_merge_sort_union=on";
set session optimizer_switch="index_merge=off";
select @@global.optimizer_switch;
@@global.optimizer_switch
-index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
select @@session.optimizer_switch;
@@session.optimizer_switch
-index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
show global variables like 'optimizer_switch';
Variable_name Value
-optimizer_switch index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+optimizer_switch index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
show session variables like 'optimizer_switch';
Variable_name Value
-optimizer_switch index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+optimizer_switch index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
select * from information_schema.global_variables where variable_name='optimizer_switch';
VARIABLE_NAME VARIABLE_VALUE
-OPTIMIZER_SWITCH index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+OPTIMIZER_SWITCH index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
select * from information_schema.session_variables where variable_name='optimizer_switch';
VARIABLE_NAME VARIABLE_VALUE
-OPTIMIZER_SWITCH index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+OPTIMIZER_SWITCH index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=off,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
set session optimizer_switch="default";
select @@session.optimizer_switch;
@@session.optimizer_switch
-index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off
+index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=off,loosescan=off,materialization=off,in_to_exists=off,semijoin=off,partial_match_rowid_merge=off,partial_match_table_scan=off,subquery_cache=off,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=off,join_cache_hashed=off,join_cache_bka=off,optimize_join_buffer_size=off,table_elimination=off,extended_keys=off,exists_to_in=off,orderby_uses_equalities=off,condition_pushdown_for_derived=off,split_materialized=off,condition_pushdown_for_subquery=off,rowid_filter=off,condition_pushdown_from_having=off,not_null_range_scan=off,ignore_indexes=off
set optimizer_switch = replace(@@optimizer_switch, '=off', '=on');
Warnings:
Warning 1681 'engine_condition_pushdown=on' is deprecated and will be removed in a future release
select @@optimizer_switch;
@@optimizer_switch
-index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=on
+index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=on,mrr_sort_keys=on,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=on,ignore_indexes=on
set global optimizer_switch=1.1;
ERROR 42000: Incorrect argument type to variable 'optimizer_switch'
set global optimizer_switch=1e1;
diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
index e07d2c503e4..508c1fccce8 100644
--- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
+++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result
@@ -2430,7 +2430,7 @@ VARIABLE_COMMENT Fine-tune the optimizer behavior
NUMERIC_MIN_VALUE NULL
NUMERIC_MAX_VALUE NULL
NUMERIC_BLOCK_SIZE NULL
-ENUM_VALUE_LIST index_merge,index_merge_union,index_merge_sort_union,index_merge_intersection,index_merge_sort_intersection,engine_condition_pushdown,index_condition_pushdown,derived_merge,derived_with_keys,firstmatch,loosescan,materialization,in_to_exists,semijoin,partial_match_rowid_merge,partial_match_table_scan,subquery_cache,mrr,mrr_cost_based,mrr_sort_keys,outer_join_with_cache,semijoin_with_cache,join_cache_incremental,join_cache_hashed,join_cache_bka,optimize_join_buffer_size,table_elimination,extended_keys,exists_to_in,orderby_uses_equalities,condition_pushdown_for_derived,split_materialized,condition_pushdown_for_subquery,rowid_filter,condition_pushdown_from_having,not_null_range_scan,default
+ENUM_VALUE_LIST index_merge,index_merge_union,index_merge_sort_union,index_merge_intersection,index_merge_sort_intersection,engine_condition_pushdown,index_condition_pushdown,derived_merge,derived_with_keys,firstmatch,loosescan,materialization,in_to_exists,semijoin,partial_match_rowid_merge,partial_match_table_scan,subquery_cache,mrr,mrr_cost_based,mrr_sort_keys,outer_join_with_cache,semijoin_with_cache,join_cache_incremental,join_cache_hashed,join_cache_bka,optimize_join_buffer_size,table_elimination,extended_keys,exists_to_in,orderby_uses_equalities,condition_pushdown_for_derived,split_materialized,condition_pushdown_for_subquery,rowid_filter,condition_pushdown_from_having,not_null_range_scan,ignore_indexes,default
READ_ONLY NO
COMMAND_LINE_ARGUMENT REQUIRED
VARIABLE_NAME OPTIMIZER_TRACE
diff --git a/mysql-test/suite/vcol/r/vcol_keys_myisam.result b/mysql-test/suite/vcol/r/vcol_keys_myisam.result
index 33375a14803..854f88d142d 100644
--- a/mysql-test/suite/vcol/r/vcol_keys_myisam.result
+++ b/mysql-test/suite/vcol/r/vcol_keys_myisam.result
@@ -268,9 +268,9 @@ check table t1 extended;
Table Op Msg_type Msg_text
test.t1 check status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 999 NULL NULL YES BTREE
-t1 1 i 1 d A 999 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 999 NULL NULL YES BTREE NO
+t1 1 i 1 d A 999 NULL NULL YES BTREE NO
select * from t1 where b=11;
a b c d
10 11 -5440 10-5440
@@ -280,9 +280,9 @@ Table Op Msg_type Msg_text
test.t1 analyze status Engine-independent statistics collected
test.t1 analyze status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 998 NULL NULL YES BTREE
-t1 1 i 1 d A 998 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 998 NULL NULL YES BTREE NO
+t1 1 i 1 d A 998 NULL NULL YES BTREE NO
select * from t1 where b=11;
a b c d
10 11 -5440 10-5440
@@ -290,9 +290,9 @@ optimize table t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
show keys from t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 b 1 b A 998 NULL NULL YES BTREE
-t1 1 i 1 d A 998 NULL NULL YES BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 b 1 b A 998 NULL NULL YES BTREE NO
+t1 1 i 1 d A 998 NULL NULL YES BTREE NO
select * from t1 where b=11;
a b c d
10 11 -5440 10-5440
diff --git a/sql/handler.cc b/sql/handler.cc
index 3eb29a1f9fe..6827ad70ee1 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -108,7 +108,7 @@ static handlerton *installed_htons[128];
#define BITMAP_STACKBUF_SIZE (128/8)
KEY_CREATE_INFO default_key_create_info=
-{ HA_KEY_ALG_UNDEF, 0, 0, {NullS, 0}, {NullS, 0}, true };
+{ HA_KEY_ALG_UNDEF, 0, 0, {NullS, 0}, {NullS, 0}, true, false };
/* number of entries in handlertons[] */
ulong total_ha= 0;
@@ -4764,7 +4764,8 @@ handler::check_if_supported_inplace_alter(TABLE *altered_table,
ALTER_PARTITIONED |
ALTER_VIRTUAL_GCOL_EXPR |
ALTER_RENAME |
- ALTER_RENAME_INDEX;
+ ALTER_RENAME_INDEX |
+ ALTER_INDEX_IGNORABILITY;
/* Is there at least one operation that requires copy algorithm? */
if (ha_alter_info->handler_flags & ~inplace_offline_operations)
@@ -4812,6 +4813,7 @@ Alter_inplace_info::Alter_inplace_info(HA_CREATE_INFO *create_info_arg,
index_drop_buffer(nullptr),
index_add_count(0),
index_add_buffer(nullptr),
+ index_altered_ignorability_count(0),
rename_keys(current_thd->mem_root),
handler_ctx(nullptr),
group_commit_ctx(nullptr),
diff --git a/sql/handler.h b/sql/handler.h
index afad986c883..50ba52a8cd1 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -769,6 +769,12 @@ typedef bool Log_func(THD*, TABLE*, bool, const uchar*, const uchar*);
*/
#define ALTER_COLUMN_INDEX_LENGTH (1ULL << 60)
+
+/**
+ Means that the ignorability of an index is changed.
+*/
+#define ALTER_INDEX_IGNORABILITY (1ULL << 61)
+
/*
Flags set in partition_flags when altering partitions
*/
@@ -2318,6 +2324,26 @@ struct Table_specification_st: public HA_CREATE_INFO,
/**
+ Structure describing changes to an index to be caused by ALTER TABLE.
+*/
+
+struct KEY_PAIR
+{
+ /**
+ Pointer to KEY object describing old version of index in
+ TABLE::key_info array for TABLE instance representing old
+ version of table.
+ */
+ KEY *old_key;
+ /**
+ Pointer to KEY object describing new version of index in
+ Alter_inplace_info::key_info_buffer array.
+ */
+ KEY *new_key;
+};
+
+
+/**
In-place alter handler context.
This is a superclass intended to be subclassed by individual handlers
@@ -2416,6 +2442,11 @@ public:
*/
uint *index_add_buffer;
+ KEY_PAIR *index_altered_ignorability_buffer;
+
+ /** Size of index_altered_ignorability_buffer array. */
+ uint index_altered_ignorability_count;
+
/**
Old and new index names. Used for index rename.
*/
@@ -2521,6 +2552,18 @@ public:
*/
void report_unsupported_error(const char *not_supported,
const char *try_instead) const;
+ void add_altered_index_ignorability(KEY *old_key, KEY *new_key)
+ {
+ KEY_PAIR *key_pair= index_altered_ignorability_buffer +
+ index_altered_ignorability_count++;
+ key_pair->old_key= old_key;
+ key_pair->new_key= new_key;
+ DBUG_PRINT("info", ("index had ignorability altered: %i to %i",
+ old_key->is_ignored,
+ new_key->is_ignored));
+ }
+
+
};
@@ -2537,6 +2580,7 @@ typedef struct st_key_create_information
directly by the user (set by the parser).
*/
bool check_for_duplicate_indexes;
+ bool is_ignored;
} KEY_CREATE_INFO;
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 52eeaf10cd5..8db6be4b8bc 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -6079,7 +6079,7 @@ bool Item_func_match::fix_index()
{
if ((table->key_info[keynr].flags & HA_FULLTEXT) &&
(flags & FT_BOOL ? table->keys_in_use_for_query.is_set(keynr) :
- table->s->keys_in_use.is_set(keynr)))
+ table->s->usable_indexes(table->in_use).is_set(keynr)))
{
ft_to_key[fts]=keynr;
diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt
index 250da9948a0..02cf6b3d561 100644
--- a/sql/share/errmsg-utf8.txt
+++ b/sql/share/errmsg-utf8.txt
@@ -7961,3 +7961,5 @@ ER_KEY_CONTAINS_PERIOD_FIELDS
eng "Key %`s cannot explicitly include column %`s"
ER_KEY_CANT_HAVE_WITHOUT_OVERLAPS
eng "Key %`s cannot have WITHOUT OVERLAPS"
+ER_PK_INDEX_CANT_BE_IGNORED
+ eng "A primary key cannot be marked as IGNORE"
diff --git a/sql/sql_alter.cc b/sql/sql_alter.cc
index a1d235086db..92fd210ee18 100644
--- a/sql/sql_alter.cc
+++ b/sql/sql_alter.cc
@@ -27,6 +27,7 @@ Alter_info::Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root)
key_list(rhs.key_list, mem_root),
alter_rename_key_list(rhs.alter_rename_key_list, mem_root),
create_list(rhs.create_list, mem_root),
+ alter_index_ignorability_list(rhs.alter_index_ignorability_list, mem_root),
check_constraint_list(rhs.check_constraint_list, mem_root),
flags(rhs.flags), partition_flags(rhs.partition_flags),
keys_onoff(rhs.keys_onoff),
diff --git a/sql/sql_alter.h b/sql/sql_alter.h
index 88873477c7c..67c0a8bbd1e 100644
--- a/sql/sql_alter.h
+++ b/sql/sql_alter.h
@@ -20,6 +20,7 @@
class Alter_drop;
class Alter_column;
class Alter_rename_key;
+class Alter_index_ignorability;
class Key;
/**
@@ -95,6 +96,8 @@ public:
List<Alter_rename_key> alter_rename_key_list;
// List of columns, used by both CREATE and ALTER TABLE.
List<Create_field> create_list;
+ // Indexes whose ignorability needs to be changed.
+ List<Alter_index_ignorability> alter_index_ignorability_list;
enum flags_bits
{
@@ -134,6 +137,7 @@ public:
key_list.empty();
alter_rename_key_list.empty();
create_list.empty();
+ alter_index_ignorability_list.empty();
check_constraint_list.empty();
flags= 0;
partition_flags= 0;
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 1069b49790a..8d01566d8c3 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -373,6 +373,29 @@ public:
};
+/* An ALTER INDEX operation that changes the ignorability of an index. */
+class Alter_index_ignorability: public Sql_alloc
+{
+public:
+ Alter_index_ignorability(const char *name, bool is_ignored) :
+ m_name(name), m_is_ignored(is_ignored)
+ {
+ assert(name != NULL);
+ }
+
+ const char *name() const { return m_name; }
+
+ /* The ignorability after the operation is performed. */
+ bool is_ignored() const { return m_is_ignored; }
+ Alter_index_ignorability *clone(MEM_ROOT *mem_root) const
+ { return new (mem_root) Alter_index_ignorability(*this); }
+
+private:
+ const char *m_name;
+ bool m_is_ignored;
+};
+
+
class Key :public Sql_alloc, public DDL_options {
public:
enum Keytype { PRIMARY, UNIQUE, MULTIPLE, FULLTEXT, SPATIAL, FOREIGN_KEY};
diff --git a/sql/sql_priv.h b/sql/sql_priv.h
index 493313da90a..7b6a139bbdf 100644
--- a/sql/sql_priv.h
+++ b/sql/sql_priv.h
@@ -232,6 +232,7 @@
#define OPTIMIZER_SWITCH_USE_ROWID_FILTER (1ULL << 33)
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FROM_HAVING (1ULL << 34)
#define OPTIMIZER_SWITCH_NOT_NULL_RANGE_SCAN (1ULL << 35)
+#define OPTIMIZER_SWITCH_IGNORE_INDEXES (1ULL << 36)
#define OPTIMIZER_SWITCH_DEFAULT (OPTIMIZER_SWITCH_INDEX_MERGE | \
OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \
@@ -262,7 +263,8 @@
OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_SUBQUERY | \
OPTIMIZER_SWITCH_USE_ROWID_FILTER | \
OPTIMIZER_SWITCH_COND_PUSHDOWN_FROM_HAVING | \
- OPTIMIZER_SWITCH_OPTIMIZE_JOIN_BUFFER_SIZE)
+ OPTIMIZER_SWITCH_OPTIMIZE_JOIN_BUFFER_SIZE| \
+ OPTIMIZER_SWITCH_IGNORE_INDEXES)
/*
Replication uses 8 bytes to store SQL_MODE in the binary log. The day you
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 2528134f4ee..5594b98db27 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -2479,6 +2479,9 @@ static void store_key_options(THD *thd, String *packet, TABLE *table,
append_unescaped(packet, key_info->comment.str,
key_info->comment.length);
}
+
+ if (key_info->is_ignored)
+ packet->append(STRING_WITH_LEN(" IGNORE"));
}
}
@@ -6667,6 +6670,12 @@ static int get_schema_stat_record(THD *thd, TABLE_LIST *tables,
if (key_info->flags & HA_USES_COMMENT)
table->field[15]->store(key_info->comment.str,
key_info->comment.length, cs);
+
+ // IGNORE column
+ const char *is_ignored= key_info->is_ignored ? "YES" : "NO";
+ table->field[16]->store(is_ignored, strlen(is_ignored), cs);
+ table->field[16]->set_notnull();
+
if (schema_table_store_record(thd, table))
DBUG_RETURN(1);
}
@@ -9033,6 +9042,7 @@ ST_FIELD_INFO stat_fields_info[]=
Column("COMMENT", Varchar(16), NULLABLE, "Comment", OPEN_FRM_ONLY),
Column("INDEX_COMMENT", Varchar(INDEX_COMMENT_MAXLEN),
NOT_NULL, "Index_comment",OPEN_FRM_ONLY),
+ Column("IGNORE", Varchar(3), NOT_NULL, "Ignore", OPEN_FRM_ONLY),
CEnd()
};
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 1434e0d61d4..471783c280b 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -4291,7 +4291,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
}
create_info->period_info.unique_keys++;
}
-
+ key_info->is_ignored= key->key_create_info.is_ignored;
key_info++;
}
@@ -6829,6 +6829,32 @@ Compare_keys compare_keys_but_name(const KEY *table_key, const KEY *new_key,
return result;
}
+
+/**
+ Look-up KEY object by index name using case-insensitive comparison.
+
+ @param key_name Index name.
+ @param key_start Start of array of KEYs for table.
+ @param key_end End of array of KEYs for table.
+
+ @note Case-insensitive comparison is necessary to correctly
+ handle renaming of keys.
+
+ @retval non-NULL - pointer to KEY object for index found.
+ @retval NULL - no index with such name found (or it is marked
+ as renamed).
+*/
+
+static KEY *find_key_ci(const char *key_name, KEY *key_start, KEY *key_end) {
+ for (KEY *key = key_start; key < key_end; key++)
+ {
+ if (!my_strcasecmp(system_charset_info, key_name, key->name.str))
+ return key;
+ }
+ return NULL;
+}
+
+
/**
Compare original and new versions of a table and fill Alter_inplace_info
describing differences between those versions.
@@ -6888,7 +6914,10 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar,
! (ha_alter_info->index_add_buffer=
(uint*) thd->alloc(sizeof(uint) *
alter_info->key_list.elements)) ||
- ha_alter_info->rename_keys.reserve(ha_alter_info->index_add_count))
+ ha_alter_info->rename_keys.reserve(ha_alter_info->index_add_count) ||
+ ! (ha_alter_info->index_altered_ignorability_buffer=
+ (KEY_PAIR*)thd->alloc(sizeof(KEY_PAIR) *
+ alter_info->alter_index_ignorability_list.elements)))
DBUG_RETURN(true);
/*
@@ -7294,6 +7323,29 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar,
}
}
+ List_iterator<Alter_index_ignorability>
+ ignorability_index_it(alter_info->alter_index_ignorability_list);
+ Alter_index_ignorability *alter_index_ignorability;
+ while((alter_index_ignorability= ignorability_index_it++))
+ {
+ const char *name= alter_index_ignorability->name();
+
+ KEY *old_key, *new_key;
+ old_key= find_key_ci(name, table->key_info, table_key_end);
+ new_key= find_key_ci(name, ha_alter_info->key_info_buffer, new_key_end);
+
+ DBUG_ASSERT(old_key != NULL);
+
+ if (new_key == NULL)
+ {
+ my_error(ER_KEY_DOES_NOT_EXISTS, MYF(0), name, table->s->table_name.str);
+ DBUG_RETURN(true);
+ }
+ new_key->is_ignored= alter_index_ignorability->is_ignored();
+ ha_alter_info->handler_flags|= ALTER_RENAME_INDEX;
+ ha_alter_info->add_altered_index_ignorability(old_key, new_key);
+ }
+
/*
Sort index_add_buffer according to how key_info_buffer is sorted.
I.e. with primary keys first - see sort_keys().
@@ -8128,6 +8180,17 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
/* New key definitions are added here */
List<Key> new_key_list;
List<Alter_rename_key> rename_key_list(alter_info->alter_rename_key_list);
+
+ /*
+ Create a deep copy of the list of visibility for indexes, as it will be
+ altered here.
+ */
+ List<Alter_index_ignorability>
+ alter_index_ignorability_list(alter_info->alter_index_ignorability_list,
+ thd->mem_root);
+
+ list_copy_and_replace_each_value(alter_index_ignorability_list, thd->mem_root);
+
List_iterator<Alter_drop> drop_it(alter_info->drop_list);
List_iterator<Create_field> def_it(alter_info->create_list);
List_iterator<Alter_column> alter_it(alter_info->alter_list);
@@ -8594,6 +8657,18 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
continue;
}
+ List_iterator<Alter_index_ignorability>
+ ignorability_index_it(alter_index_ignorability_list);
+
+ Alter_index_ignorability *index_ignorability;
+ while((index_ignorability= ignorability_index_it++))
+ {
+ const char* name= index_ignorability->name();
+ if (!my_strcasecmp(system_charset_info, key_name, name))
+ ignorability_index_it.remove();
+ }
+
+
/* If this index is to stay in the table check if it has to be renamed. */
List_iterator<Alter_rename_key> rename_key_it(rename_key_list);
Alter_rename_key *rename_key;
@@ -8742,6 +8817,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
key_create_info.parser_name= *plugin_name(key_info->parser);
if (key_info->flags & HA_USES_COMMENT)
key_create_info.comment= key_info->comment;
+ key_create_info.is_ignored= key_info->is_ignored;
/*
We're refreshing an already existing index. Since the index is not
@@ -8773,6 +8849,24 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
else
key_type= Key::MULTIPLE;
+ List_iterator<Alter_index_ignorability>
+ ignorability_index_it(alter_info->alter_index_ignorability_list);
+ Alter_index_ignorability *index_ignorability;
+ while((index_ignorability= ignorability_index_it++))
+ {
+ const char *name= index_ignorability->name();
+ if (!my_strcasecmp(system_charset_info, key_name, name))
+ {
+ if (table->s->primary_key <= MAX_KEY &&
+ table->key_info + table->s->primary_key == key_info)
+ {
+ my_error(ER_PK_INDEX_CANT_BE_IGNORED, MYF(0));
+ goto err;
+ }
+ key_create_info.is_ignored= index_ignorability->is_ignored();
+ }
+ }
+
tmp_name.str= key_name;
tmp_name.length= strlen(key_name);
/* We dont need LONG_UNIQUE_HASH_FIELD flag because it will be autogenerated */
@@ -8975,6 +9069,14 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
goto err;
}
+ if (alter_index_ignorability_list.elements)
+ {
+ my_error(ER_KEY_DOES_NOT_EXISTS, MYF(0),
+ alter_index_ignorability_list.head()->name(),
+ table->s->table_name.str);
+ goto err;
+ }
+
if (!create_info->comment.str)
{
create_info->comment.str= table->s->comment.str;
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index b946b8a9ee0..ba4675f5546 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1383,6 +1383,7 @@ End SQL_MODE_ORACLE_SPECIFIC */
case_stmt_body opt_bin_mod opt_for_system_time_clause
opt_if_exists_table_element opt_if_not_exists_table_element
opt_recursive opt_format_xid opt_for_portion_of_time_clause
+ ignorability
%type <object_ddl_options>
create_or_replace
@@ -7000,7 +7001,11 @@ all_key_opt:
{ Lex->last_key->key_create_info.comment= $2; }
| VISIBLE_SYM
{
- /* This is mainly for MySQL 8.0 compatiblity */
+ /* This is mainly for MySQL 8.0 compatiblity */
+ }
+ | ignorability
+ {
+ Lex->last_key->key_create_info.is_ignored= $1;
}
| IDENT_sys equal TEXT_STRING_sys
{
@@ -7058,6 +7063,11 @@ btree_or_rtree:
| HASH_SYM { $$= HA_KEY_ALG_HASH; }
;
+ignorability:
+ IGNORE_SYM { $$= true; }
+ | NOT_SYM IGNORE_SYM { $$= false; }
+ ;
+
key_list:
key_list ',' key_part order_dir
{
@@ -7743,6 +7753,16 @@ alter_list_item:
if (unlikely(Lex->add_alter_list($4, $7, $3)))
MYSQL_YYABORT;
}
+ | ALTER INDEX_SYM ident ignorability
+ {
+ LEX *lex= Lex;
+ Alter_index_ignorability *ac= new (thd->mem_root)
+ Alter_index_ignorability($3.str, $4);
+ if (ac == NULL)
+ MYSQL_YYABORT;
+ lex->alter_info.alter_index_ignorability_list.push_back(ac);
+ lex->alter_info.flags|= ALTER_INDEX_IGNORABILITY;
+ }
| ALTER opt_column opt_if_exists_table_element field_ident DROP DEFAULT
{
if (unlikely(Lex->add_alter_list($4, (Virtual_column_info*) 0, $3)))
diff --git a/sql/structs.h b/sql/structs.h
index 0993c453e16..eb45a3ace1f 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -165,6 +165,10 @@ typedef struct st_key {
double actual_rec_per_key(uint i);
bool without_overlaps;
+ /*
+ TRUE if index needs to be ignored
+ */
+ bool is_ignored;
} KEY;
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index df6f9933e36..66e7d996988 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -2714,6 +2714,7 @@ export const char *optimizer_switch_names[]=
"rowid_filter",
"condition_pushdown_from_having",
"not_null_range_scan",
+ "ignore_indexes",
"default",
NullS
};
diff --git a/sql/table.cc b/sql/table.cc
index 92e3d2e4800..a7142db17bd 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -61,6 +61,7 @@ struct extra2_fields
LEX_CUSTRING application_period;
LEX_CUSTRING field_data_type_info;
LEX_CUSTRING without_overlaps;
+ LEX_CUSTRING index_flags;
void reset()
{ bzero((void*)this, sizeof(*this)); }
};
@@ -1407,6 +1408,39 @@ void TABLE_SHARE::set_overlapped_keys()
}
+/*
+ @brief
+ Set of indexes that are marked as IGNORE.
+*/
+
+void TABLE_SHARE::set_ignored_indexes()
+{
+ KEY *keyinfo= key_info;
+ for (uint i= 0; i < keys; i++, keyinfo++)
+ {
+ if (keyinfo->is_ignored)
+ ignored_indexes.set_bit(i);
+ }
+}
+
+
+/*
+ @brief
+ Set of indexes that the optimizer may use when creating an execution plan.
+*/
+
+key_map TABLE_SHARE::usable_indexes(THD *thd)
+{
+ if (optimizer_flag(thd, OPTIMIZER_SWITCH_IGNORE_INDEXES))
+ {
+ key_map usable_indexes(keys_in_use);
+ usable_indexes.subtract(ignored_indexes);
+ return usable_indexes;
+ }
+ return keys_in_use;
+}
+
+
bool Item_field::check_index_dependence(void *arg)
{
TABLE *table= (TABLE *)arg;
@@ -1574,6 +1608,9 @@ bool read_extra2(const uchar *frm_image, size_t len, extra2_fields *fields)
case EXTRA2_FIELD_DATA_TYPE_INFO:
fail= read_extra2_section_once(extra2, length, &fields->field_data_type_info);
break;
+ case EXTRA2_INDEX_FLAGS:
+ fail= read_extra2_section_once(extra2, length, &fields->index_flags);
+ break;
default:
/* abort frm parsing if it's an unknown but important extra2 value */
if (type >= EXTRA2_ENGINE_IMPORTANT)
@@ -1729,6 +1766,7 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
MEM_ROOT *old_root= thd->mem_root;
Virtual_column_info **table_check_constraints;
extra2_fields extra2;
+ bool extra_index_flags_present= FALSE;
DBUG_ENTER("TABLE_SHARE::init_from_binary_frm_image");
keyinfo= &first_keyinfo;
@@ -1883,9 +1921,13 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
share->key_parts= key_parts= disk_buff[1];
}
share->keys_for_keyread.init(0);
+ share->ignored_indexes.init(0);
share->keys_in_use.init(keys);
ext_key_parts= key_parts;
+ if (extra2.index_flags.str && extra2.index_flags.length != keys)
+ goto err;
+
len= (uint) uint2korr(disk_buff+4);
share->reclength = uint2korr(frm_image+16);
@@ -2081,9 +2123,26 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
}
share->key_block_size= uint2korr(frm_image+62);
keyinfo= share->key_info;
+
+
+ if (extra2.index_flags.str)
+ extra_index_flags_present= TRUE;
+
for (uint i= 0; i < share->keys; i++, keyinfo++)
+ {
+ if (extra_index_flags_present)
+ {
+ uchar flags= *extra2.index_flags.str++;
+ keyinfo->is_ignored= (flags & EXTRA2_IGNORED_KEY);
+ }
+ else
+ keyinfo->is_ignored= FALSE;
+
if (keyinfo->algorithm == HA_KEY_ALG_LONG_HASH)
hash_fields++;
+ }
+
+ share->set_ignored_indexes();
#ifdef WITH_PARTITION_STORAGE_ENGINE
if (par_image && plugin_data(se_plugin, handlerton*) == partition_hton)
@@ -2738,6 +2797,33 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
}
}
+ /*
+ Make sure that the primary key is not marked as IGNORE
+ This can happen in the case
+ 1) when IGNORE is mentioned in the Key specification
+ 2) When a unique NON-NULLABLE key is promted to a primary key.
+ The unqiue key could have been marked as IGNORE when there
+ was a primary key in the table.
+
+ Eg:
+ CREATE TABLE t1(a INT NOT NULL, primary key(a), UNIQUE key1(a))
+ so for this table when we try to IGNORE key1
+ then we run:
+ ALTER TABLE t1 ALTER INDEX key1 IGNORE
+ this runs successsfully and key1 is marked as IGNORE.
+
+ But lets say then we drop the primary key
+ ALTER TABLE t1 DROP PRIMARY
+ then the UNIQUE key will be promoted to become the primary key
+ but then the UNIQUE key cannot be marked as IGNORE, so an
+ error is thrown
+ */
+ if (primary_key != MAX_KEY && keyinfo && keyinfo->is_ignored)
+ {
+ my_error(ER_PK_INDEX_CANT_BE_IGNORED, MYF(0));
+ goto err;
+ }
+
if (share->use_ext_keys)
{
if (primary_key >= MAX_KEY)
@@ -8129,7 +8215,7 @@ bool TABLE_LIST::process_index_hints(TABLE *tbl)
{
/* initialize the result variables */
tbl->keys_in_use_for_query= tbl->keys_in_use_for_group_by=
- tbl->keys_in_use_for_order_by= tbl->s->keys_in_use;
+ tbl->keys_in_use_for_order_by= tbl->s->usable_indexes(tbl->in_use);
/* index hint list processing */
if (index_hints)
diff --git a/sql/table.h b/sql/table.h
index d93f466077f..5e5bb2d43a8 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -684,6 +684,10 @@ struct TABLE_SHARE
Excludes keys disabled by ALTER TABLE ... DISABLE KEYS.
*/
key_map keys_in_use;
+
+ /* The set of ignored indexes for a table. */
+ key_map ignored_indexes;
+
key_map keys_for_keyread;
ha_rows min_rows, max_rows; /* create information */
ulong avg_row_length; /* create information */
@@ -1071,6 +1075,8 @@ struct TABLE_SHARE
void free_frm_image(const uchar *frm);
void set_overlapped_keys();
+ void set_ignored_indexes();
+ key_map usable_indexes(THD *thd);
};
/* not NULL, but cannot be dereferenced */
diff --git a/sql/unireg.cc b/sql/unireg.cc
index 6860d2c6347..d88e41e042d 100644
--- a/sql/unireg.cc
+++ b/sql/unireg.cc
@@ -118,6 +118,20 @@ static uchar *extra2_write_field_properties(uchar *pos,
return pos;
}
+static uchar *extra2_write_index_properties(uchar *pos, const KEY *keyinfo,
+ uint keys)
+{
+ *pos++= EXTRA2_INDEX_FLAGS;
+ pos= extra2_write_len(pos, keys);
+ for (uint i=0; i < keys; i++)
+ {
+ *pos++= keyinfo[i].is_ignored ?
+ EXTRA2_IGNORED_KEY :
+ EXTRA2_DEFAULT_INDEX_FLAGS;
+ }
+ return pos;
+}
+
static uint16
get_fieldno_by_name(HA_CREATE_INFO *create_info, List<Create_field> &create_fields,
const Lex_ident &field_name)
@@ -402,6 +416,14 @@ LEX_CUSTRING build_frm_image(THD *thd, const LEX_CSTRING &table,
extra2_size+= 1 + extra2_str_size(create_fields.elements);
}
+ /*
+ To store the ignorability flag for each key.
+ Here 1 bytes is reserved to store the extra index flags for keys.
+ Currently only 1 bit is used, rest of the bits can be used in the future
+ */
+ if (keys)
+ extra2_size+= 1 + extra2_str_size(keys);
+
for (i= 0; i < keys; i++)
if (key_info[i].algorithm == HA_KEY_ALG_LONG_HASH)
e_unique_hash_extra_parts++;
@@ -518,6 +540,10 @@ LEX_CUSTRING build_frm_image(THD *thd, const LEX_CSTRING &table,
if (has_extra2_field_flags_)
pos= extra2_write_field_properties(pos, create_fields);
+
+ if (keys)
+ pos= extra2_write_index_properties(pos, key_info, keys);
+
int4store(pos, filepos); // end of the extra2 segment
pos+= 4;
diff --git a/sql/unireg.h b/sql/unireg.h
index 873d6f681fc..67ddb94cbcf 100644
--- a/sql/unireg.h
+++ b/sql/unireg.h
@@ -172,6 +172,7 @@ enum extra2_frm_value_type {
EXTRA2_GIS=2,
EXTRA2_APPLICATION_TIME_PERIOD=3,
EXTRA2_PERIOD_FOR_SYSTEM_TIME=4,
+ EXTRA2_INDEX_FLAGS=5,
#define EXTRA2_ENGINE_IMPORTANT 128
@@ -185,6 +186,11 @@ enum extra2_field_flags {
VERS_OPTIMIZED_UPDATE= 1 << INVISIBLE_MAX_BITS,
};
+enum extra2_index_flags {
+ EXTRA2_DEFAULT_INDEX_FLAGS,
+ EXTRA2_IGNORED_KEY
+};
+
LEX_CUSTRING build_frm_image(THD *thd, const LEX_CSTRING &table,
HA_CREATE_INFO *create_info,
List<Create_field> &create_fields,
diff --git a/storage/connect/mysql-test/connect/r/alter.result b/storage/connect/mysql-test/connect/r/alter.result
index 77d775220ec..5f1e9c392d0 100644
--- a/storage/connect/mysql-test/connect/r/alter.result
+++ b/storage/connect/mysql-test/connect/r/alter.result
@@ -20,12 +20,12 @@ CREATE INDEX xd ON t1(d);
DROP INDEX xd ON t1;
ALTER TABLE t1 ADD INDEX xc (c), ADD INDEX xd (d);
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 xc 1 c A NULL NULL NULL XINDEX
-t1 1 xd 1 d A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 xc 1 c A NULL NULL NULL XINDEX NO
+t1 1 xd 1 d A NULL NULL NULL XINDEX NO
ALTER TABLE t1 DROP INDEX xc, DROP INDEX xd;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
#
# Testing modifying columns inward table (not in-place)
#
@@ -92,9 +92,9 @@ t1 CREATE TABLE `t1` (
KEY `xd` (`d`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 xc 1 c A NULL NULL NULL BTREE
-t1 1 xd 1 d A NULL NULL NULL BTREE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 xc 1 c A NULL NULL NULL BTREE NO
+t1 1 xd 1 d A NULL NULL NULL BTREE NO
SELECT * FROM t1;
c d
1 One
@@ -110,9 +110,9 @@ t1 CREATE TABLE `t1` (
KEY `xd` (`d`)
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`=DBF
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 xc 1 c A NULL NULL NULL XINDEX
-t1 1 xd 1 d A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 xc 1 c A NULL NULL NULL XINDEX NO
+t1 1 xd 1 d A NULL NULL NULL XINDEX NO
SELECT * FROM t1;
c d
1 One
@@ -142,15 +142,15 @@ line
#
ALTER TABLE t1 ADD INDEX xc (c), ADD INDEX xd (d);
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 xc 1 c A NULL NULL NULL XINDEX
-t1 1 xd 1 d A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 xc 1 c A NULL NULL NULL XINDEX NO
+t1 1 xd 1 d A NULL NULL NULL XINDEX NO
SELECT d FROM t1 WHERE c = 2;
d
Two
ALTER TABLE t1 DROP INDEX xc, DROP INDEX xd;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
#
# Other alterations do not modify the file
#
diff --git a/storage/connect/mysql-test/connect/r/json.result b/storage/connect/mysql-test/connect/r/json.result
index 6b6f40d2c47..3e7c20fb164 100644
--- a/storage/connect/mysql-test/connect/r/json.result
+++ b/storage/connect/mysql-test/connect/r/json.result
@@ -191,8 +191,8 @@ INDEX IX(ISBN)
)
ENGINE=CONNECT TABLE_TYPE=JSON FILE_NAME='bib0.json' LRECL=320 OPTION_LIST='Pretty=0';
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 IX 1 ISBN A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 IX 1 ISBN A NULL NULL NULL XINDEX NO
SELECT * FROM t1;
ISBN Language Subject AuthorFN AuthorLN Title Translation TranslatorFN TranslatorLN Publisher Location Year
9782212090819 fr applications Jean-Michel Bernadac Construire une application XML NULL NULL NULL Eyrolles Paris 1999
diff --git a/storage/connect/mysql-test/connect/r/part_file.result b/storage/connect/mysql-test/connect/r/part_file.result
index 3dabd946b50..f2f923ed72a 100644
--- a/storage/connect/mysql-test/connect/r/part_file.result
+++ b/storage/connect/mysql-test/connect/r/part_file.result
@@ -99,8 +99,8 @@ PARTITION `1` VALUES LESS THAN(10),
PARTITION `2` VALUES LESS THAN(50),
PARTITION `3` VALUES LESS THAN(MAXVALUE));
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A NULL NULL NULL XINDEX NO
INSERT INTO t1(id,msg) VALUES(4, 'four');
SELECT * FROM dr1 ORDER BY fname, ftype;
fname ftype
@@ -294,8 +294,8 @@ part3 .txt
#
CREATE INDEX XID ON t1(id);
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 XID 1 id A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 1 XID 1 id A NULL NULL NULL XINDEX NO
SELECT * FROM dr1 ORDER BY fname, ftype;
fname ftype
part1 .fnx
@@ -309,7 +309,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 1 ref XID XID 4 const 1
DROP INDEX XID ON t1;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
SELECT * FROM dr1 ORDER BY fname, ftype;
fname ftype
part1 .txt
@@ -317,8 +317,8 @@ part2 .txt
part3 .txt
ALTER TABLE t1 ADD PRIMARY KEY (id);
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id A NULL NULL NULL XINDEX
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id A NULL NULL NULL XINDEX NO
SELECT * FROM dr1 ORDER BY fname, ftype;
fname ftype
part1 .fnx
@@ -332,7 +332,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 1 const PRIMARY PRIMARY 4 const 1
ALTER TABLE t1 DROP PRIMARY KEY;
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
SELECT * FROM dr1 ORDER BY fname, ftype;
fname ftype
part1 .txt
diff --git a/storage/connect/mysql-test/connect/r/part_table.result b/storage/connect/mysql-test/connect/r/part_table.result
index ee17a1d32b9..41f4ee227a1 100644
--- a/storage/connect/mysql-test/connect/r/part_table.result
+++ b/storage/connect/mysql-test/connect/r/part_table.result
@@ -111,8 +111,8 @@ Warning 1105 Data repartition in 1 is unchecked
Warning 1105 Data repartition in 2 is unchecked
Warning 1105 Data repartition in 3 is unchecked
SHOW INDEX FROM t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 PRIMARY 1 id NULL NULL NULL NULL REMOTE
+Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignore
+t1 0 PRIMARY 1 id NULL NULL NULL NULL REMOTE NO
INSERT INTO t1 VALUES(4, 'four');
INSERT INTO t1 VALUES(40, 'forty');
INSERT INTO t1 VALUES(72,'seventy two');