diff options
author | Varun Gupta <varun.gupta@mariadb.com> | 2020-04-26 15:42:57 +0530 |
---|---|---|
committer | Varun Gupta <varun.gupta@mariadb.com> | 2020-05-06 17:19:58 +0530 |
commit | 4539d3ea77fc5fde63f515a97bc679afd7b614c7 (patch) | |
tree | 4d3381ab3e1330af957b66541adccd388d8d0b73 | |
parent | 8ad3c6154b90314980faf1cdd4c317c9bbf5f84c (diff) | |
download | mariadb-git-bb-10.5-mdev7317.tar.gz |
MDEV-7317: Make an index ignorable to the optimizerbb-10.5-mdev7317
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'); |