diff options
Diffstat (limited to 'mysql-test/main')
126 files changed, 17787 insertions, 3520 deletions
diff --git a/mysql-test/main/alter_table.test b/mysql-test/main/alter_table.test index f6e9bfe1126..8ddf60f26d8 100644 --- a/mysql-test/main/alter_table.test +++ b/mysql-test/main/alter_table.test @@ -648,11 +648,11 @@ set sql_mode="no_zero_date"; create table t1(f1 int); alter table t1 add column f2 datetime not null, add column f21 date not null; insert into t1 values(1,'2000-01-01','2000-01-01'); ---error 1292 +--error ER_TRUNCATED_WRONG_VALUE alter table t1 add column f3 datetime not null; ---error 1292 +--error ER_TRUNCATED_WRONG_VALUE alter table t1 add column f3 date not null; ---error 1292 +--error ER_TRUNCATED_WRONG_VALUE alter table t1 add column f4 datetime not null default '2002-02-02', add column f41 date not null; alter table t1 add column f4 datetime not null default '2002-02-02', diff --git a/mysql-test/main/check_constraint.result b/mysql-test/main/check_constraint.result index 01a71bf36a5..899192905ea 100644 --- a/mysql-test/main/check_constraint.result +++ b/mysql-test/main/check_constraint.result @@ -284,11 +284,11 @@ drop table t1; # # MDEV-26061 MariaDB server crash at Field::set_default # -create table t1 (d timestamp check (default (d) is true)) as select 1; +create table t1 (d timestamp not null default now() check (default (d) is true)) as select 1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `d` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() CHECK (default(`d`) is true), + `d` timestamp NOT NULL DEFAULT current_timestamp() CHECK (default(`d`) is true), `1` int(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci drop table t1; diff --git a/mysql-test/main/check_constraint.test b/mysql-test/main/check_constraint.test index 194fdc04399..46a34239270 100644 --- a/mysql-test/main/check_constraint.test +++ b/mysql-test/main/check_constraint.test @@ -212,7 +212,7 @@ drop table t1; --echo # MDEV-26061 MariaDB server crash at Field::set_default --echo # -create table t1 (d timestamp check (default (d) is true)) as select 1; +create table t1 (d timestamp not null default now() check (default (d) is true)) as select 1; show create table t1; drop table t1; diff --git a/mysql-test/main/create.result b/mysql-test/main/create.result index 12de9bca44e..c80a7aec743 100644 --- a/mysql-test/main/create.result +++ b/mysql-test/main/create.result @@ -528,7 +528,7 @@ t2 CREATE TABLE `t2` ( `ifnull(h,h)` decimal(5,4) DEFAULT NULL, `ifnull(i,i)` year(4) DEFAULT NULL, `ifnull(j,j)` date DEFAULT NULL, - `ifnull(k,k)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `ifnull(k,k)` timestamp NOT NULL, `ifnull(l,l)` datetime DEFAULT NULL, `ifnull(m,m)` varchar(1) DEFAULT NULL, `ifnull(n,n)` varchar(3) DEFAULT NULL, @@ -1120,7 +1120,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL, - `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL, + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL, `DESCRIPTION` varchar(60) NOT NULL, `MAXLEN` bigint(3) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci @@ -1141,9 +1141,6 @@ SET sql_mode = NO_ZERO_DATE; CREATE TABLE t2(c1 TIMESTAMP, c2 TIMESTAMP DEFAULT 0); ERROR 42000: Invalid default value for 'c2' -CREATE TABLE t2(c1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c2 TIMESTAMP NOT NULL); -ERROR 42000: Invalid default value for 'c2' - # -- Check that NULL column still can be created. CREATE TABLE t2(c1 TIMESTAMP NULL); diff --git a/mysql-test/main/create.test b/mysql-test/main/create.test index 541748fc6ad..1f29a9a31d4 100644 --- a/mysql-test/main/create.test +++ b/mysql-test/main/create.test @@ -1062,9 +1062,9 @@ SET sql_mode = NO_ZERO_DATE; --error ER_INVALID_DEFAULT CREATE TABLE t2(c1 TIMESTAMP, c2 TIMESTAMP DEFAULT 0); ---echo ---error ER_INVALID_DEFAULT -CREATE TABLE t2(c1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c2 TIMESTAMP NOT NULL); +#--echo +#--error ER_INVALID_DEFAULT +#CREATE TABLE t2(c1 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c2 TIMESTAMP NOT NULL); --echo --echo # -- Check that NULL column still can be created. diff --git a/mysql-test/main/ctype_collate_context.result b/mysql-test/main/ctype_collate_context.result index 53eeaa4e713..4ef3d9a6c7b 100644 --- a/mysql-test/main/ctype_collate_context.result +++ b/mysql-test/main/ctype_collate_context.result @@ -6,7 +6,9 @@ INSERT INTO t0 VALUES ('COLLATE DEFAULT'), ('COLLATE utf8mb4_bin'), ('COLLATE latin1_swedish_ci'), -('COLLATE latin1_bin'); +('COLLATE latin1_bin'), +('COLLATE uca1400_ai_ci'), +('COLLATE uca1400_as_ci'); CREATE TABLE clauses ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -216,11 +218,11 @@ result CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci TEST: 1 clauses -TOTAL 7 +TOTAL 9 ERROR 0 -OK 7 +OK 9 query CREATE DATABASE attrs CHARACTER SET DEFAULT @@ -250,11 +252,19 @@ query CREATE DATABASE attrs COLLATE latin1_bin result CHARACTER SET latin1 COLLATE latin1_bin +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + TEST: 2 clauses -TOTAL 49 +TOTAL 81 -ERROR 24 +ERROR 46 query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET DEFAULT @@ -281,6 +291,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET latin1 result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -301,6 +319,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET latin1 COLLATE utf8mb4_bin result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -317,6 +343,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -333,6 +367,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -352,7 +394,63 @@ query CREATE DATABASE attrs COLLATE latin1_swedish_ci COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' -OK 25 +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +OK 35 query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT @@ -371,6 +469,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET latin1 result CHARACTER SET latin1 COLLATE latin1_swedish_ci @@ -403,6 +509,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -454,11 +568,35 @@ query CREATE DATABASE attrs COLLATE latin1_bin COLLATE latin1_bin result CHARACTER SET latin1 COLLATE latin1_bin +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + TEST: 3 clauses -TOTAL 343 +TOTAL 729 -ERROR 264 +ERROR 612 query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET DEFAULT CHARACTER SET DEFAULT @@ -501,6 +639,14 @@ attrs COLLATE latin1_bin CHARACTER SET latin1 CHARACTER SET DEFAULT result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET DEFAULT (utf8mb4)' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 CHARACTER SET DEFAULT +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 CHARACTER SET DEFAULT +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 CHARACTER SET DEFAULT result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -529,6 +675,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT CHARACTER SET DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET latin1 COLLATE utf8mb4_bin CHARACTER SET DEFAULT result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -545,6 +699,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin CHARACTER SET DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci CHARACTER SET DEFAULT result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -573,6 +735,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci CHARACTER SET DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin CHARACTER SET DEFAULT result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -601,6 +771,62 @@ attrs COLLATE latin1_bin COLLATE latin1_bin CHARACTER SET DEFAULT result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -629,6 +855,14 @@ attrs COLLATE latin1_bin CHARACTER SET DEFAULT CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET latin1 CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -641,6 +875,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET latin1 CHARACTER SET latin1 result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' @@ -669,6 +911,14 @@ attrs COLLATE latin1_bin CHARACTER SET utf8mb4 CHARACTER SET latin1 result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -685,6 +935,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT CHARACTER SET latin1 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin CHARACTER SET latin1 result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -713,6 +971,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin CHARACTER SET latin1 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -729,6 +995,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci CHARACTER SET latin1 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin CHARACTER SET latin1 result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -749,6 +1023,86 @@ attrs COLLATE latin1_swedish_ci COLLATE latin1_bin CHARACTER SET latin1 result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci CHARACTER SET latin1 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET DEFAULT CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -789,6 +1143,14 @@ attrs COLLATE latin1_bin CHARACTER SET latin1 CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 CHARACTER SET utf8mb4 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 CHARACTER SET utf8mb4 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -817,6 +1179,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET latin1 COLLATE utf8mb4_bin CHARACTER SET utf8mb4 result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -833,6 +1203,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -861,6 +1239,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin CHARACTER SET utf8mb4 result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -889,6 +1275,62 @@ attrs COLLATE latin1_bin COLLATE latin1_bin CHARACTER SET utf8mb4 result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET DEFAULT COLLATE DEFAULT result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET DEFAULT (utf8mb4)' @@ -905,6 +1347,14 @@ attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE DEFAULT result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -921,6 +1371,14 @@ attrs COLLATE latin1_bin CHARACTER SET latin1 COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE DEFAULT +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE DEFAULT +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 COLLATE DEFAULT result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -937,6 +1395,14 @@ attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE DEFAULT result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs COLLATE utf8mb4_bin COLLATE DEFAULT COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE DEFAULT' @@ -945,6 +1411,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE DEFAULT' @@ -973,6 +1447,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE DEFAULT result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -989,6 +1471,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' @@ -1017,6 +1507,86 @@ attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE DEFAULT result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE DEFAULT +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET DEFAULT COLLATE utf8mb4_bin result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -1033,6 +1603,14 @@ attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE utf8mb4_bin result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -1061,6 +1639,14 @@ attrs COLLATE latin1_bin CHARACTER SET latin1 COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE utf8mb4_bin +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE utf8mb4_bin +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' @@ -1077,6 +1663,14 @@ attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE utf8mb4_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE utf8mb4_bin' @@ -1105,6 +1699,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET latin1 COLLATE utf8mb4_bin COLLATE utf8mb4_bin result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' @@ -1121,6 +1723,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE utf8mb4_bin' @@ -1149,6 +1759,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' @@ -1177,6 +1795,86 @@ attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE utf8mb4_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE utf8mb4_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -1205,6 +1903,14 @@ attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -1221,6 +1927,14 @@ attrs COLLATE latin1_bin CHARACTER SET latin1 COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE latin1_swedish_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE latin1_swedish_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -1249,6 +1963,14 @@ attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -1265,6 +1987,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_swedish_ci' @@ -1293,6 +2023,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' @@ -1309,6 +2047,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' @@ -1337,6 +2083,86 @@ attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE latin1_swedish_ci result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE latin1_swedish_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -1365,6 +2191,14 @@ attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE latin1_bin result ERROR: Conflicting declarations: 'CHARACTER SET DEFAULT (utf8mb4)' and 'CHARACTER SET latin1' @@ -1385,6 +2219,14 @@ attrs COLLATE latin1_swedish_ci CHARACTER SET latin1 COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE latin1_bin +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE latin1_bin +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -1413,6 +2255,14 @@ attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE latin1_bin' @@ -1441,6 +2291,14 @@ attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_bin' @@ -1469,6 +2327,14 @@ attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' @@ -1497,6 +2363,14 @@ attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE latin1_bin result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' @@ -1516,7 +2390,663 @@ query CREATE DATABASE attrs COLLATE latin1_swedish_ci COLLATE latin1_bin COLLATE latin1_bin result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' -OK 79 +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE latin1_bin +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_general_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_general_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE uca1400_ai_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'CHARACTER SET utf8mb4' and 'CHARACTER SET latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET latin1 COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET latin1 CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_general_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE latin1_bin CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_general_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE DEFAULT COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE DEFAULT' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE utf8mb4_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE utf8mb4_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_swedish_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_swedish_ci' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE latin1_bin COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE latin1_bin' + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_ai_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_as_ci' and 'COLLATE uca1400_ai_ci' + +query CREATE DATABASE +attrs CHARACTER SET latin1 COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: COLLATION 'uca1400_as_ci' is not valid for CHARACTER SET 'latin1' + +query CREATE DATABASE +attrs COLLATE DEFAULT COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE DEFAULT' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE utf8mb4_bin COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE utf8mb4_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_swedish_ci COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_swedish_ci' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE latin1_bin COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE latin1_bin' and 'COLLATE uca1400_as_ci' + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result ERROR: Conflicting declarations: 'COLLATE uca1400_ai_ci' and 'COLLATE uca1400_as_ci' + +OK 117 query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT CHARACTER SET DEFAULT @@ -1535,6 +3065,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET DEFAULT CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -1551,6 +3089,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET utf8mb4 CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -1575,6 +3121,30 @@ attrs COLLATE utf8mb4_bin COLLATE utf8mb4_bin CHARACTER SET DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci CHARACTER SET DEFAULT +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET latin1 CHARACTER SET latin1 CHARACTER SET latin1 result CHARACTER SET latin1 COLLATE latin1_swedish_ci @@ -1639,6 +3209,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET DEFAULT CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -1655,6 +3233,14 @@ attrs COLLATE utf8mb4_bin CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT COLLATE DEFAULT CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -1679,6 +3265,30 @@ attrs COLLATE utf8mb4_bin COLLATE utf8mb4_bin CHARACTER SET utf8mb4 result CHARACTER SET utf8mb4 COLLATE utf8mb4_bin query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci CHARACTER SET utf8mb4 +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT COLLATE DEFAULT result CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci @@ -1833,6 +3443,78 @@ result CHARACTER SET latin1 COLLATE latin1_bin query CREATE DATABASE attrs COLLATE latin1_bin COLLATE latin1_bin COLLATE latin1_bin result CHARACTER SET latin1 COLLATE latin1_bin + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET DEFAULT COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET DEFAULT COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci CHARACTER SET utf8mb4 COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET DEFAULT COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs CHARACTER SET utf8mb4 COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci + +query CREATE DATABASE +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE uca1400_as_ci +result CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci ALTER TABLE results RENAME TO results_create_db; # # Running ALTER DATABASE tests @@ -1850,9 +3532,9 @@ ALTER TABLE results RENAME TO results_alter_db; # ALTER DATABASE db1 COMMENT '' COLLATE DEFAULT; -- means "the default collation of the current character set of db1" # ALTER DATABASE db1 COMMENT ''; -- means "keep the current db1 collation" CALL diff_result_tables('results_create_db', 'results_alter_db', ''); -COUNT(*) 400 -SUM(t1.result=t2.result) 396 -SUM(t1.result<>t2.result) 4 +COUNT(*) 820 +SUM(t1.result=t2.result) 810 +SUM(t1.result<>t2.result) 10 attrs aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci @@ -1862,13 +3544,37 @@ attrs COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci +attrs COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci + attrs COLLATE DEFAULT COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci + attrs COLLATE DEFAULT COLLATE DEFAULT COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci + +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci # # Running CREATE TABLE tests # @@ -1880,8 +3586,8 @@ CALL run_all('', ALTER TABLE results RENAME TO results_create_table; # Expect no difference to CREATE DATABASE CALL diff_result_tables('results_create_db', 'results_create_table', ''); -COUNT(*) 400 -SUM(t1.result=t2.result) 400 +COUNT(*) 820 +SUM(t1.result=t2.result) 820 SUM(t1.result<>t2.result) 0 DROP DATABASE test1; # @@ -1900,9 +3606,9 @@ ALTER TABLE results RENAME TO results_alter_table; # ALTER TABLE test1.t1 COMMENT '' COLLATE DEFAULT; -- means "the default collation of the current character set of test1.t1" # ALTER TABLE test1.t1 COMMENT ''; -- means "keep the current collation of test.t1" CALL diff_result_tables('results_create_table', 'results_alter_table', ''); -COUNT(*) 400 -SUM(t1.result=t2.result) 396 -SUM(t1.result<>t2.result) 4 +COUNT(*) 820 +SUM(t1.result=t2.result) 810 +SUM(t1.result<>t2.result) 10 attrs aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci @@ -1912,13 +3618,37 @@ attrs COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci +attrs COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci + attrs COLLATE DEFAULT COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci + attrs COLLATE DEFAULT COLLATE DEFAULT COLLATE DEFAULT aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci + +attrs COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci COLLATE uca1400_ai_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_ai_ci + +attrs COLLATE uca1400_as_ci COLLATE uca1400_as_ci COLLATE uca1400_as_ci +aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_as_ci +bbb CHARACTER SET utf8mb3 COLLATE utf8mb3_uca1400_as_ci DROP DATABASE test1; # # Running ALTER TABLE CONVERT TO tests @@ -1931,16 +3661,16 @@ CALL run_all('CREATE TABLE test1.t1(a INT) CHARACTER SET utf8mb3 COLLATE utf8mb3 ALTER TABLE results RENAME TO results_convert_table; # CONVERT TO COLLATE (without CHARACTER SET) is not supported yet CALL diff_result_tables_stat('results_alter_table', 'results_convert_table',''); -COUNT(*) 400 -SUM(t1.result=t2.result) 36 -SUM(t1.result<>t2.result) 364 +COUNT(*) 820 +SUM(t1.result=t2.result) 66 +SUM(t1.result<>t2.result) 754 # Everything that did not fail on syntax error # should give equal results with ALTER TABLE DEFAULT CHARACTER SET # Expect 0 non-equal results: CALL diff_result_tables('results_alter_table', 'results_convert_table', 't2.result NOT RLIKE ''SQL syntax'''); -COUNT(*) 36 -SUM(t1.result=t2.result) 36 +COUNT(*) 66 +SUM(t1.result=t2.result) 66 SUM(t1.result<>t2.result) 0 DROP DATABASE test1; DROP PROCEDURE show_results_all; diff --git a/mysql-test/main/ctype_collate_context.test b/mysql-test/main/ctype_collate_context.test index 0867237a223..6934bf487c3 100644 --- a/mysql-test/main/ctype_collate_context.test +++ b/mysql-test/main/ctype_collate_context.test @@ -9,7 +9,9 @@ INSERT INTO t0 VALUES ('COLLATE DEFAULT'), ('COLLATE utf8mb4_bin'), ('COLLATE latin1_swedish_ci'), -('COLLATE latin1_bin'); +('COLLATE latin1_bin'), +('COLLATE uca1400_ai_ci'), +('COLLATE uca1400_as_ci'); CREATE TABLE clauses ( diff --git a/mysql-test/main/ctype_ldml.result b/mysql-test/main/ctype_ldml.result index d4b24ad9af3..df009b77bca 100644 --- a/mysql-test/main/ctype_ldml.result +++ b/mysql-test/main/ctype_ldml.result @@ -469,6 +469,7 @@ utf8mb4_test_ci utf8mb4 326 8 utf16_test_ci utf16 327 8 utf8mb4_test_400_ci utf8mb4 328 8 utf8mb4_test_520_nopad_ci utf8mb4 329 8 +utf8mb4_uca1400_test01_as_ci utf8mb4 330 4 latin1_test latin1 331 1 latin1_test2 latin1 332 1 latin1_test2_cs latin1 333 1 @@ -505,6 +506,7 @@ ucs2_test_ci ucs2 358 8 utf8mb4_test_ci utf8mb4 326 8 utf8mb4_test_400_ci utf8mb4 328 8 utf8mb4_test_520_nopad_ci utf8mb4 329 8 +utf8mb4_uca1400_test01_as_ci utf8mb4 330 4 utf16_test_ci utf16 327 8 utf32_test_ci utf32 391 8 show collation like 'ucs2_vn_ci'; @@ -3079,3 +3081,100 @@ tèl.123 10020E8B0F2E025D0E2A0E2B0E2C ťèl.123 10020E8B0F2E025D0E2A0E2B0E2C tex.123 10020E8B105A025D0E2A0E2B0E2C DROP TABLE t1; +# +# MDEV-27009 Add UCA-14.0.0 collations +# +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci, comment VARCHAR(128)); +INSERT INTO t1 VALUES ('a', '0061 LATIN SMALL LETTER A'); +INSERT INTO t1 VALUES ('c', '0063 LATIN SMALL LETTER C'); +INSERT INTO t1 VALUES ('à ', '00E0 LATIN SMALL LETTER A WITH GRAVE'); +INSERT INTO t1 VALUES ('ć', '0107 LATIN SMALL LETTER C WITH ACUTE'); +INSERT INTO t1 VALUES (_ucs2 0x0439, '0439 CYRILLIC SMALL LETTER SHORT I - precomposed'); +INSERT INTO t1 VALUES (_ucs2 0x04380306, '0438 0306 CYRILLIC SMALL LETTER SHORT I - contraction'); +INSERT INTO t1 VALUES (_ucs2 0x0CCB, '0CCB KANNADA VOWEL SIGN OO - precomposed'); +INSERT INTO t1 VALUES (_ucs2 0x0CC60CC20CD5, '0CC6 0CC2 0CD5 KANNADA VOWEL SIGN OO - contraction'); +SELECT +'---' AS `---`, +comment, +HEX(a), +HEX(WEIGHT_STRING(a)), +HEX(WEIGHT_STRING(a LEVEL 1)), +HEX(WEIGHT_STRING(a LEVEL 2)), +WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_unicode_ci) AS is_400, +WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_unicode_520_ci) AS is_520, +WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_uca1400_ai_ci) AS is_1400 +FROM t1 +ORDER BY a, HEX(a); +--- --- +comment 0061 LATIN SMALL LETTER A +HEX(a) 61 +HEX(WEIGHT_STRING(a)) 20750020 +HEX(WEIGHT_STRING(a LEVEL 1)) 2075 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 00E0 LATIN SMALL LETTER A WITH GRAVE +HEX(a) C3A0 +HEX(WEIGHT_STRING(a)) 207500200025 +HEX(WEIGHT_STRING(a LEVEL 1)) 2075 +HEX(WEIGHT_STRING(a LEVEL 2)) 00200025 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0063 LATIN SMALL LETTER C +HEX(a) 63 +HEX(WEIGHT_STRING(a)) 20A90020 +HEX(WEIGHT_STRING(a LEVEL 1)) 20A9 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0107 LATIN SMALL LETTER C WITH ACUTE +HEX(a) C487 +HEX(WEIGHT_STRING(a)) 20A900200024 +HEX(WEIGHT_STRING(a LEVEL 1)) 20A9 +HEX(WEIGHT_STRING(a LEVEL 2)) 00200024 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0438 0306 CYRILLIC SMALL LETTER SHORT I - contraction +HEX(a) D0B8CC86 +HEX(WEIGHT_STRING(a)) 24E10020 +HEX(WEIGHT_STRING(a LEVEL 1)) 24E1 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0439 CYRILLIC SMALL LETTER SHORT I - precomposed +HEX(a) D0B9 +HEX(WEIGHT_STRING(a)) 24E10020 +HEX(WEIGHT_STRING(a LEVEL 1)) 24E1 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0CC6 0CC2 0CD5 KANNADA VOWEL SIGN OO - contraction +HEX(a) E0B386E0B382E0B395 +HEX(WEIGHT_STRING(a)) 2D150020 +HEX(WEIGHT_STRING(a LEVEL 1)) 2D15 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +--- --- +comment 0CCB KANNADA VOWEL SIGN OO - precomposed +HEX(a) E0B38B +HEX(WEIGHT_STRING(a)) 2D150020 +HEX(WEIGHT_STRING(a LEVEL 1)) 2D15 +HEX(WEIGHT_STRING(a LEVEL 2)) 0020 +is_400 0 +is_520 0 +is_1400 1 +DROP TABLE t1; diff --git a/mysql-test/main/ctype_ldml.test b/mysql-test/main/ctype_ldml.test index 447a9b4565a..ed3234970bb 100644 --- a/mysql-test/main/ctype_ldml.test +++ b/mysql-test/main/ctype_ldml.test @@ -639,3 +639,33 @@ SELECT * FROM t1 WHERE phone='123' ORDER BY BINARY phone; SELECT * FROM t1 WHERE phone<>'123' ORDER BY BINARY phone; SELECT phone, HEX(WEIGHT_STRING(phone)) FROM t1 ORDER BY phone, BINARY phone; DROP TABLE t1; + + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_test01_as_ci, comment VARCHAR(128)); +INSERT INTO t1 VALUES ('a', '0061 LATIN SMALL LETTER A'); +INSERT INTO t1 VALUES ('c', '0063 LATIN SMALL LETTER C'); +INSERT INTO t1 VALUES ('à ', '00E0 LATIN SMALL LETTER A WITH GRAVE'); +INSERT INTO t1 VALUES ('ć', '0107 LATIN SMALL LETTER C WITH ACUTE'); +INSERT INTO t1 VALUES (_ucs2 0x0439, '0439 CYRILLIC SMALL LETTER SHORT I - precomposed'); +INSERT INTO t1 VALUES (_ucs2 0x04380306, '0438 0306 CYRILLIC SMALL LETTER SHORT I - contraction'); +INSERT INTO t1 VALUES (_ucs2 0x0CCB, '0CCB KANNADA VOWEL SIGN OO - precomposed'); +INSERT INTO t1 VALUES (_ucs2 0x0CC60CC20CD5, '0CC6 0CC2 0CD5 KANNADA VOWEL SIGN OO - contraction'); +--vertical_results +SELECT + '---' AS `---`, + comment, + HEX(a), + HEX(WEIGHT_STRING(a)), + HEX(WEIGHT_STRING(a LEVEL 1)), + HEX(WEIGHT_STRING(a LEVEL 2)), + WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_unicode_ci) AS is_400, + WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_unicode_520_ci) AS is_520, + WEIGHT_STRING(a LEVEL 1)=WEIGHT_STRING(a COLLATE utf8mb4_uca1400_ai_ci) AS is_1400 +FROM t1 +ORDER BY a, HEX(a); +--horizontal_results +DROP TABLE t1; diff --git a/mysql-test/main/ctype_ucs2_uca.result b/mysql-test/main/ctype_ucs2_uca.result index 430f0ec1c37..317f86b1a4f 100644 --- a/mysql-test/main/ctype_ucs2_uca.result +++ b/mysql-test/main/ctype_ucs2_uca.result @@ -588,3 +588,581 @@ SET NAMES utf8; # # End of 10.2 tests # +# +# Start of 10.9 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# Collation IDs in the protocol +# +SET @charset='ucs2'; +FOR rec IN (SELECT COLLATION_NAME +FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY +WHERE CHARACTER_SET_NAME=@charset +AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO +SET NAMES utf8mb4; +SET character_set_results=NULL; +EXECUTE IMMEDIATE CONCAT('SELECT CONVERT('''' USING ',@charset,')', +' COLLATE ', rec.COLLATION_NAME, +' AS ', rec.COLLATION_NAME, +' LIMIT 0'); +END FOR; +$$ +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_ci 253 0 0 Y 0 39 128 +uca1400_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_cs 253 0 0 Y 0 39 128 +uca1400_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_ci 253 0 0 Y 0 39 128 +uca1400_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_cs 253 0 0 Y 0 39 128 +uca1400_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_ci 253 0 0 Y 0 39 128 +uca1400_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_cs 253 0 0 Y 0 39 128 +uca1400_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_ci 253 0 0 Y 0 39 128 +uca1400_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_cs 253 0 0 Y 0 39 128 +uca1400_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_ci 253 0 0 Y 0 39 129 +uca1400_icelandic_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_cs 253 0 0 Y 0 39 129 +uca1400_icelandic_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_ci 253 0 0 Y 0 39 129 +uca1400_icelandic_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_cs 253 0 0 Y 0 39 129 +uca1400_icelandic_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_ci 253 0 0 Y 0 39 129 +uca1400_icelandic_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_cs 253 0 0 Y 0 39 129 +uca1400_icelandic_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_ci 253 0 0 Y 0 39 129 +uca1400_icelandic_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_cs 253 0 0 Y 0 39 129 +uca1400_icelandic_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_ci 253 0 0 Y 0 39 130 +uca1400_latvian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_cs 253 0 0 Y 0 39 130 +uca1400_latvian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_ci 253 0 0 Y 0 39 130 +uca1400_latvian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_cs 253 0 0 Y 0 39 130 +uca1400_latvian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_ci 253 0 0 Y 0 39 130 +uca1400_latvian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_cs 253 0 0 Y 0 39 130 +uca1400_latvian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_ci 253 0 0 Y 0 39 130 +uca1400_latvian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_cs 253 0 0 Y 0 39 130 +uca1400_latvian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_ci 253 0 0 Y 0 39 131 +uca1400_romanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_cs 253 0 0 Y 0 39 131 +uca1400_romanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_ci 253 0 0 Y 0 39 131 +uca1400_romanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_cs 253 0 0 Y 0 39 131 +uca1400_romanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_ci 253 0 0 Y 0 39 131 +uca1400_romanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_cs 253 0 0 Y 0 39 131 +uca1400_romanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_ci 253 0 0 Y 0 39 131 +uca1400_romanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_cs 253 0 0 Y 0 39 131 +uca1400_romanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_ci 253 0 0 Y 0 39 132 +uca1400_slovenian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_cs 253 0 0 Y 0 39 132 +uca1400_slovenian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_ci 253 0 0 Y 0 39 132 +uca1400_slovenian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_cs 253 0 0 Y 0 39 132 +uca1400_slovenian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_ci 253 0 0 Y 0 39 132 +uca1400_slovenian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_cs 253 0 0 Y 0 39 132 +uca1400_slovenian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_ci 253 0 0 Y 0 39 132 +uca1400_slovenian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_cs 253 0 0 Y 0 39 132 +uca1400_slovenian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_ci 253 0 0 Y 0 39 133 +uca1400_polish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_cs 253 0 0 Y 0 39 133 +uca1400_polish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_ci 253 0 0 Y 0 39 133 +uca1400_polish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_cs 253 0 0 Y 0 39 133 +uca1400_polish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_ci 253 0 0 Y 0 39 133 +uca1400_polish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_cs 253 0 0 Y 0 39 133 +uca1400_polish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_ci 253 0 0 Y 0 39 133 +uca1400_polish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_cs 253 0 0 Y 0 39 133 +uca1400_polish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_ci 253 0 0 Y 0 39 134 +uca1400_estonian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_cs 253 0 0 Y 0 39 134 +uca1400_estonian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_ci 253 0 0 Y 0 39 134 +uca1400_estonian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_cs 253 0 0 Y 0 39 134 +uca1400_estonian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_ci 253 0 0 Y 0 39 134 +uca1400_estonian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_cs 253 0 0 Y 0 39 134 +uca1400_estonian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_ci 253 0 0 Y 0 39 134 +uca1400_estonian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_cs 253 0 0 Y 0 39 134 +uca1400_estonian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_ci 253 0 0 Y 0 39 135 +uca1400_spanish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_cs 253 0 0 Y 0 39 135 +uca1400_spanish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_ci 253 0 0 Y 0 39 135 +uca1400_spanish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_cs 253 0 0 Y 0 39 135 +uca1400_spanish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_ci 253 0 0 Y 0 39 135 +uca1400_spanish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_cs 253 0 0 Y 0 39 135 +uca1400_spanish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_ci 253 0 0 Y 0 39 135 +uca1400_spanish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_cs 253 0 0 Y 0 39 135 +uca1400_spanish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_ci 253 0 0 Y 0 39 136 +uca1400_swedish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_cs 253 0 0 Y 0 39 136 +uca1400_swedish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_ci 253 0 0 Y 0 39 136 +uca1400_swedish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_cs 253 0 0 Y 0 39 136 +uca1400_swedish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_ci 253 0 0 Y 0 39 136 +uca1400_swedish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_cs 253 0 0 Y 0 39 136 +uca1400_swedish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_ci 253 0 0 Y 0 39 136 +uca1400_swedish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_cs 253 0 0 Y 0 39 136 +uca1400_swedish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_ci 253 0 0 Y 0 39 137 +uca1400_turkish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_cs 253 0 0 Y 0 39 137 +uca1400_turkish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_ci 253 0 0 Y 0 39 137 +uca1400_turkish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_cs 253 0 0 Y 0 39 137 +uca1400_turkish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_ci 253 0 0 Y 0 39 137 +uca1400_turkish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_cs 253 0 0 Y 0 39 137 +uca1400_turkish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_ci 253 0 0 Y 0 39 137 +uca1400_turkish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_cs 253 0 0 Y 0 39 137 +uca1400_turkish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_ci 253 0 0 Y 0 39 138 +uca1400_czech_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_cs 253 0 0 Y 0 39 138 +uca1400_czech_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_ci 253 0 0 Y 0 39 138 +uca1400_czech_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_cs 253 0 0 Y 0 39 138 +uca1400_czech_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_ci 253 0 0 Y 0 39 138 +uca1400_czech_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_cs 253 0 0 Y 0 39 138 +uca1400_czech_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_ci 253 0 0 Y 0 39 138 +uca1400_czech_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_cs 253 0 0 Y 0 39 138 +uca1400_czech_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_ci 253 0 0 Y 0 39 139 +uca1400_danish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_cs 253 0 0 Y 0 39 139 +uca1400_danish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_ci 253 0 0 Y 0 39 139 +uca1400_danish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_cs 253 0 0 Y 0 39 139 +uca1400_danish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_ci 253 0 0 Y 0 39 139 +uca1400_danish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_cs 253 0 0 Y 0 39 139 +uca1400_danish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_ci 253 0 0 Y 0 39 139 +uca1400_danish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_cs 253 0 0 Y 0 39 139 +uca1400_danish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_ci 253 0 0 Y 0 39 140 +uca1400_lithuanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_cs 253 0 0 Y 0 39 140 +uca1400_lithuanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_ci 253 0 0 Y 0 39 140 +uca1400_lithuanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_cs 253 0 0 Y 0 39 140 +uca1400_lithuanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_ci 253 0 0 Y 0 39 140 +uca1400_lithuanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_cs 253 0 0 Y 0 39 140 +uca1400_lithuanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_ci 253 0 0 Y 0 39 140 +uca1400_lithuanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_cs 253 0 0 Y 0 39 140 +uca1400_lithuanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_ci 253 0 0 Y 0 39 141 +uca1400_slovak_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_cs 253 0 0 Y 0 39 141 +uca1400_slovak_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_ci 253 0 0 Y 0 39 141 +uca1400_slovak_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_cs 253 0 0 Y 0 39 141 +uca1400_slovak_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_ci 253 0 0 Y 0 39 141 +uca1400_slovak_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_cs 253 0 0 Y 0 39 141 +uca1400_slovak_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_ci 253 0 0 Y 0 39 141 +uca1400_slovak_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_cs 253 0 0 Y 0 39 141 +uca1400_slovak_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_ci 253 0 0 Y 0 39 142 +uca1400_spanish2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_cs 253 0 0 Y 0 39 142 +uca1400_spanish2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_ci 253 0 0 Y 0 39 142 +uca1400_spanish2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_cs 253 0 0 Y 0 39 142 +uca1400_spanish2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_ci 253 0 0 Y 0 39 142 +uca1400_spanish2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_cs 253 0 0 Y 0 39 142 +uca1400_spanish2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_ci 253 0 0 Y 0 39 142 +uca1400_spanish2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_cs 253 0 0 Y 0 39 142 +uca1400_spanish2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_ci 253 0 0 Y 0 39 143 +uca1400_roman_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_cs 253 0 0 Y 0 39 143 +uca1400_roman_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_ci 253 0 0 Y 0 39 143 +uca1400_roman_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_cs 253 0 0 Y 0 39 143 +uca1400_roman_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_ci 253 0 0 Y 0 39 143 +uca1400_roman_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_cs 253 0 0 Y 0 39 143 +uca1400_roman_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_ci 253 0 0 Y 0 39 143 +uca1400_roman_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_cs 253 0 0 Y 0 39 143 +uca1400_roman_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_ci 253 0 0 Y 0 39 144 +uca1400_persian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_cs 253 0 0 Y 0 39 144 +uca1400_persian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_ci 253 0 0 Y 0 39 144 +uca1400_persian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_cs 253 0 0 Y 0 39 144 +uca1400_persian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_ci 253 0 0 Y 0 39 144 +uca1400_persian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_cs 253 0 0 Y 0 39 144 +uca1400_persian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_ci 253 0 0 Y 0 39 144 +uca1400_persian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_cs 253 0 0 Y 0 39 144 +uca1400_persian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_ci 253 0 0 Y 0 39 145 +uca1400_esperanto_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_cs 253 0 0 Y 0 39 145 +uca1400_esperanto_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_ci 253 0 0 Y 0 39 145 +uca1400_esperanto_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_cs 253 0 0 Y 0 39 145 +uca1400_esperanto_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_ci 253 0 0 Y 0 39 145 +uca1400_esperanto_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_cs 253 0 0 Y 0 39 145 +uca1400_esperanto_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_ci 253 0 0 Y 0 39 145 +uca1400_esperanto_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_cs 253 0 0 Y 0 39 145 +uca1400_esperanto_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_ci 253 0 0 Y 0 39 146 +uca1400_hungarian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_cs 253 0 0 Y 0 39 146 +uca1400_hungarian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_ci 253 0 0 Y 0 39 146 +uca1400_hungarian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_cs 253 0 0 Y 0 39 146 +uca1400_hungarian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_ci 253 0 0 Y 0 39 146 +uca1400_hungarian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_cs 253 0 0 Y 0 39 146 +uca1400_hungarian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_ci 253 0 0 Y 0 39 146 +uca1400_hungarian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_cs 253 0 0 Y 0 39 146 +uca1400_hungarian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_ci 253 0 0 Y 0 39 147 +uca1400_sinhala_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_cs 253 0 0 Y 0 39 147 +uca1400_sinhala_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_ci 253 0 0 Y 0 39 147 +uca1400_sinhala_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_cs 253 0 0 Y 0 39 147 +uca1400_sinhala_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_ci 253 0 0 Y 0 39 147 +uca1400_sinhala_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_cs 253 0 0 Y 0 39 147 +uca1400_sinhala_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_ci 253 0 0 Y 0 39 147 +uca1400_sinhala_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_cs 253 0 0 Y 0 39 147 +uca1400_sinhala_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_ci 253 0 0 Y 0 39 148 +uca1400_german2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_cs 253 0 0 Y 0 39 148 +uca1400_german2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_ci 253 0 0 Y 0 39 148 +uca1400_german2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_cs 253 0 0 Y 0 39 148 +uca1400_german2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_ci 253 0 0 Y 0 39 148 +uca1400_german2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_cs 253 0 0 Y 0 39 148 +uca1400_german2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_ci 253 0 0 Y 0 39 148 +uca1400_german2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_cs 253 0 0 Y 0 39 148 +uca1400_german2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_ci 253 0 0 Y 0 39 151 +uca1400_vietnamese_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_cs 253 0 0 Y 0 39 151 +uca1400_vietnamese_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_ci 253 0 0 Y 0 39 151 +uca1400_vietnamese_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_cs 253 0 0 Y 0 39 151 +uca1400_vietnamese_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_ci 253 0 0 Y 0 39 151 +uca1400_vietnamese_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_cs 253 0 0 Y 0 39 151 +uca1400_vietnamese_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_ci 253 0 0 Y 0 39 151 +uca1400_vietnamese_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_cs 253 0 0 Y 0 39 151 +uca1400_vietnamese_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_ci 253 0 0 Y 0 39 640 +uca1400_croatian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_cs 253 0 0 Y 0 39 640 +uca1400_croatian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_ci 253 0 0 Y 0 39 640 +uca1400_croatian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_cs 253 0 0 Y 0 39 640 +uca1400_croatian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_ci 253 0 0 Y 0 39 640 +uca1400_croatian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_cs 253 0 0 Y 0 39 640 +uca1400_croatian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_ci 253 0 0 Y 0 39 640 +uca1400_croatian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_cs 253 0 0 Y 0 39 640 +uca1400_croatian_nopad_as_cs +SET NAMES utf8; +# +# End of 10.9 tests +# diff --git a/mysql-test/main/ctype_ucs2_uca.test b/mysql-test/main/ctype_ucs2_uca.test index 0aed0956f6c..5d0699401da 100644 --- a/mysql-test/main/ctype_ucs2_uca.test +++ b/mysql-test/main/ctype_ucs2_uca.test @@ -23,3 +23,21 @@ SET NAMES utf8; --echo # --echo # End of 10.2 tests --echo # + + +--echo # +--echo # Start of 10.9 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # Collation IDs in the protocol +--echo # + +SET @charset='ucs2'; +--source include/ctype_uca1400_ids_using_convert.inc + + +--echo # +--echo # End of 10.9 tests +--echo # diff --git a/mysql-test/main/ctype_utf16_uca.result b/mysql-test/main/ctype_utf16_uca.result index 93a0748adc9..69ebfc4de54 100644 --- a/mysql-test/main/ctype_utf16_uca.result +++ b/mysql-test/main/ctype_utf16_uca.result @@ -7939,6 +7939,585 @@ SELECT HEX(c) FROM t1; HEX(c) 0061006100610061006100610061006100610061 DROP TABLE t1; +SET NAMES utf8; # # End of 10.2 tests # +# +# Start of 10.9 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# Collation IDs in the protocol +# +SET @charset='utf16'; +FOR rec IN (SELECT COLLATION_NAME +FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY +WHERE CHARACTER_SET_NAME=@charset +AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO +SET NAMES utf8mb4; +SET character_set_results=NULL; +EXECUTE IMMEDIATE CONCAT('SELECT CONVERT('''' USING ',@charset,')', +' COLLATE ', rec.COLLATION_NAME, +' AS ', rec.COLLATION_NAME, +' LIMIT 0'); +END FOR; +$$ +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_ci 253 0 0 Y 0 39 101 +uca1400_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_cs 253 0 0 Y 0 39 101 +uca1400_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_ci 253 0 0 Y 0 39 101 +uca1400_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_cs 253 0 0 Y 0 39 101 +uca1400_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_ci 253 0 0 Y 0 39 101 +uca1400_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_cs 253 0 0 Y 0 39 101 +uca1400_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_ci 253 0 0 Y 0 39 101 +uca1400_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_cs 253 0 0 Y 0 39 101 +uca1400_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_ci 253 0 0 Y 0 39 102 +uca1400_icelandic_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_cs 253 0 0 Y 0 39 102 +uca1400_icelandic_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_ci 253 0 0 Y 0 39 102 +uca1400_icelandic_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_cs 253 0 0 Y 0 39 102 +uca1400_icelandic_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_ci 253 0 0 Y 0 39 102 +uca1400_icelandic_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_cs 253 0 0 Y 0 39 102 +uca1400_icelandic_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_ci 253 0 0 Y 0 39 102 +uca1400_icelandic_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_cs 253 0 0 Y 0 39 102 +uca1400_icelandic_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_ci 253 0 0 Y 0 39 103 +uca1400_latvian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_cs 253 0 0 Y 0 39 103 +uca1400_latvian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_ci 253 0 0 Y 0 39 103 +uca1400_latvian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_cs 253 0 0 Y 0 39 103 +uca1400_latvian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_ci 253 0 0 Y 0 39 103 +uca1400_latvian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_cs 253 0 0 Y 0 39 103 +uca1400_latvian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_ci 253 0 0 Y 0 39 103 +uca1400_latvian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_cs 253 0 0 Y 0 39 103 +uca1400_latvian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_ci 253 0 0 Y 0 39 104 +uca1400_romanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_cs 253 0 0 Y 0 39 104 +uca1400_romanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_ci 253 0 0 Y 0 39 104 +uca1400_romanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_cs 253 0 0 Y 0 39 104 +uca1400_romanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_ci 253 0 0 Y 0 39 104 +uca1400_romanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_cs 253 0 0 Y 0 39 104 +uca1400_romanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_ci 253 0 0 Y 0 39 104 +uca1400_romanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_cs 253 0 0 Y 0 39 104 +uca1400_romanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_ci 253 0 0 Y 0 39 105 +uca1400_slovenian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_cs 253 0 0 Y 0 39 105 +uca1400_slovenian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_ci 253 0 0 Y 0 39 105 +uca1400_slovenian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_cs 253 0 0 Y 0 39 105 +uca1400_slovenian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_ci 253 0 0 Y 0 39 105 +uca1400_slovenian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_cs 253 0 0 Y 0 39 105 +uca1400_slovenian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_ci 253 0 0 Y 0 39 105 +uca1400_slovenian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_cs 253 0 0 Y 0 39 105 +uca1400_slovenian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_ci 253 0 0 Y 0 39 106 +uca1400_polish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_cs 253 0 0 Y 0 39 106 +uca1400_polish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_ci 253 0 0 Y 0 39 106 +uca1400_polish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_cs 253 0 0 Y 0 39 106 +uca1400_polish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_ci 253 0 0 Y 0 39 106 +uca1400_polish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_cs 253 0 0 Y 0 39 106 +uca1400_polish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_ci 253 0 0 Y 0 39 106 +uca1400_polish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_cs 253 0 0 Y 0 39 106 +uca1400_polish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_ci 253 0 0 Y 0 39 107 +uca1400_estonian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_cs 253 0 0 Y 0 39 107 +uca1400_estonian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_ci 253 0 0 Y 0 39 107 +uca1400_estonian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_cs 253 0 0 Y 0 39 107 +uca1400_estonian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_ci 253 0 0 Y 0 39 107 +uca1400_estonian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_cs 253 0 0 Y 0 39 107 +uca1400_estonian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_ci 253 0 0 Y 0 39 107 +uca1400_estonian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_cs 253 0 0 Y 0 39 107 +uca1400_estonian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_ci 253 0 0 Y 0 39 108 +uca1400_spanish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_cs 253 0 0 Y 0 39 108 +uca1400_spanish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_ci 253 0 0 Y 0 39 108 +uca1400_spanish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_cs 253 0 0 Y 0 39 108 +uca1400_spanish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_ci 253 0 0 Y 0 39 108 +uca1400_spanish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_cs 253 0 0 Y 0 39 108 +uca1400_spanish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_ci 253 0 0 Y 0 39 108 +uca1400_spanish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_cs 253 0 0 Y 0 39 108 +uca1400_spanish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_ci 253 0 0 Y 0 39 109 +uca1400_swedish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_cs 253 0 0 Y 0 39 109 +uca1400_swedish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_ci 253 0 0 Y 0 39 109 +uca1400_swedish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_cs 253 0 0 Y 0 39 109 +uca1400_swedish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_ci 253 0 0 Y 0 39 109 +uca1400_swedish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_cs 253 0 0 Y 0 39 109 +uca1400_swedish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_ci 253 0 0 Y 0 39 109 +uca1400_swedish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_cs 253 0 0 Y 0 39 109 +uca1400_swedish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_ci 253 0 0 Y 0 39 110 +uca1400_turkish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_cs 253 0 0 Y 0 39 110 +uca1400_turkish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_ci 253 0 0 Y 0 39 110 +uca1400_turkish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_cs 253 0 0 Y 0 39 110 +uca1400_turkish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_ci 253 0 0 Y 0 39 110 +uca1400_turkish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_cs 253 0 0 Y 0 39 110 +uca1400_turkish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_ci 253 0 0 Y 0 39 110 +uca1400_turkish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_cs 253 0 0 Y 0 39 110 +uca1400_turkish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_ci 253 0 0 Y 0 39 111 +uca1400_czech_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_cs 253 0 0 Y 0 39 111 +uca1400_czech_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_ci 253 0 0 Y 0 39 111 +uca1400_czech_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_cs 253 0 0 Y 0 39 111 +uca1400_czech_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_ci 253 0 0 Y 0 39 111 +uca1400_czech_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_cs 253 0 0 Y 0 39 111 +uca1400_czech_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_ci 253 0 0 Y 0 39 111 +uca1400_czech_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_cs 253 0 0 Y 0 39 111 +uca1400_czech_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_ci 253 0 0 Y 0 39 112 +uca1400_danish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_cs 253 0 0 Y 0 39 112 +uca1400_danish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_ci 253 0 0 Y 0 39 112 +uca1400_danish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_cs 253 0 0 Y 0 39 112 +uca1400_danish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_ci 253 0 0 Y 0 39 112 +uca1400_danish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_cs 253 0 0 Y 0 39 112 +uca1400_danish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_ci 253 0 0 Y 0 39 112 +uca1400_danish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_cs 253 0 0 Y 0 39 112 +uca1400_danish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_ci 253 0 0 Y 0 39 113 +uca1400_lithuanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_cs 253 0 0 Y 0 39 113 +uca1400_lithuanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_ci 253 0 0 Y 0 39 113 +uca1400_lithuanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_cs 253 0 0 Y 0 39 113 +uca1400_lithuanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_ci 253 0 0 Y 0 39 113 +uca1400_lithuanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_cs 253 0 0 Y 0 39 113 +uca1400_lithuanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_ci 253 0 0 Y 0 39 113 +uca1400_lithuanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_cs 253 0 0 Y 0 39 113 +uca1400_lithuanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_ci 253 0 0 Y 0 39 114 +uca1400_slovak_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_cs 253 0 0 Y 0 39 114 +uca1400_slovak_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_ci 253 0 0 Y 0 39 114 +uca1400_slovak_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_cs 253 0 0 Y 0 39 114 +uca1400_slovak_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_ci 253 0 0 Y 0 39 114 +uca1400_slovak_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_cs 253 0 0 Y 0 39 114 +uca1400_slovak_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_ci 253 0 0 Y 0 39 114 +uca1400_slovak_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_cs 253 0 0 Y 0 39 114 +uca1400_slovak_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_ci 253 0 0 Y 0 39 115 +uca1400_spanish2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_cs 253 0 0 Y 0 39 115 +uca1400_spanish2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_ci 253 0 0 Y 0 39 115 +uca1400_spanish2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_cs 253 0 0 Y 0 39 115 +uca1400_spanish2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_ci 253 0 0 Y 0 39 115 +uca1400_spanish2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_cs 253 0 0 Y 0 39 115 +uca1400_spanish2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_ci 253 0 0 Y 0 39 115 +uca1400_spanish2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_cs 253 0 0 Y 0 39 115 +uca1400_spanish2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_ci 253 0 0 Y 0 39 116 +uca1400_roman_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_cs 253 0 0 Y 0 39 116 +uca1400_roman_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_ci 253 0 0 Y 0 39 116 +uca1400_roman_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_cs 253 0 0 Y 0 39 116 +uca1400_roman_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_ci 253 0 0 Y 0 39 116 +uca1400_roman_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_cs 253 0 0 Y 0 39 116 +uca1400_roman_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_ci 253 0 0 Y 0 39 116 +uca1400_roman_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_cs 253 0 0 Y 0 39 116 +uca1400_roman_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_ci 253 0 0 Y 0 39 117 +uca1400_persian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_cs 253 0 0 Y 0 39 117 +uca1400_persian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_ci 253 0 0 Y 0 39 117 +uca1400_persian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_cs 253 0 0 Y 0 39 117 +uca1400_persian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_ci 253 0 0 Y 0 39 117 +uca1400_persian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_cs 253 0 0 Y 0 39 117 +uca1400_persian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_ci 253 0 0 Y 0 39 117 +uca1400_persian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_cs 253 0 0 Y 0 39 117 +uca1400_persian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_ci 253 0 0 Y 0 39 118 +uca1400_esperanto_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_cs 253 0 0 Y 0 39 118 +uca1400_esperanto_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_ci 253 0 0 Y 0 39 118 +uca1400_esperanto_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_cs 253 0 0 Y 0 39 118 +uca1400_esperanto_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_ci 253 0 0 Y 0 39 118 +uca1400_esperanto_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_cs 253 0 0 Y 0 39 118 +uca1400_esperanto_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_ci 253 0 0 Y 0 39 118 +uca1400_esperanto_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_cs 253 0 0 Y 0 39 118 +uca1400_esperanto_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_ci 253 0 0 Y 0 39 119 +uca1400_hungarian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_cs 253 0 0 Y 0 39 119 +uca1400_hungarian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_ci 253 0 0 Y 0 39 119 +uca1400_hungarian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_cs 253 0 0 Y 0 39 119 +uca1400_hungarian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_ci 253 0 0 Y 0 39 119 +uca1400_hungarian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_cs 253 0 0 Y 0 39 119 +uca1400_hungarian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_ci 253 0 0 Y 0 39 119 +uca1400_hungarian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_cs 253 0 0 Y 0 39 119 +uca1400_hungarian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_ci 253 0 0 Y 0 39 120 +uca1400_sinhala_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_cs 253 0 0 Y 0 39 120 +uca1400_sinhala_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_ci 253 0 0 Y 0 39 120 +uca1400_sinhala_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_cs 253 0 0 Y 0 39 120 +uca1400_sinhala_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_ci 253 0 0 Y 0 39 120 +uca1400_sinhala_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_cs 253 0 0 Y 0 39 120 +uca1400_sinhala_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_ci 253 0 0 Y 0 39 120 +uca1400_sinhala_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_cs 253 0 0 Y 0 39 120 +uca1400_sinhala_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_ci 253 0 0 Y 0 39 121 +uca1400_german2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_cs 253 0 0 Y 0 39 121 +uca1400_german2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_ci 253 0 0 Y 0 39 121 +uca1400_german2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_cs 253 0 0 Y 0 39 121 +uca1400_german2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_ci 253 0 0 Y 0 39 121 +uca1400_german2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_cs 253 0 0 Y 0 39 121 +uca1400_german2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_ci 253 0 0 Y 0 39 121 +uca1400_german2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_cs 253 0 0 Y 0 39 121 +uca1400_german2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_ci 253 0 0 Y 0 39 124 +uca1400_vietnamese_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_cs 253 0 0 Y 0 39 124 +uca1400_vietnamese_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_ci 253 0 0 Y 0 39 124 +uca1400_vietnamese_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_cs 253 0 0 Y 0 39 124 +uca1400_vietnamese_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_ci 253 0 0 Y 0 39 124 +uca1400_vietnamese_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_cs 253 0 0 Y 0 39 124 +uca1400_vietnamese_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_ci 253 0 0 Y 0 39 124 +uca1400_vietnamese_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_cs 253 0 0 Y 0 39 124 +uca1400_vietnamese_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_ci 253 0 0 Y 0 39 672 +uca1400_croatian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_cs 253 0 0 Y 0 39 672 +uca1400_croatian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_ci 253 0 0 Y 0 39 672 +uca1400_croatian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_cs 253 0 0 Y 0 39 672 +uca1400_croatian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_ci 253 0 0 Y 0 39 672 +uca1400_croatian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_cs 253 0 0 Y 0 39 672 +uca1400_croatian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_ci 253 0 0 Y 0 39 672 +uca1400_croatian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_cs 253 0 0 Y 0 39 672 +uca1400_croatian_nopad_as_cs +SET NAMES utf8; +# +# End of 10.9 tests +# diff --git a/mysql-test/main/ctype_utf16_uca.test b/mysql-test/main/ctype_utf16_uca.test index 9dff7b10c16..0a03c4fa57b 100644 --- a/mysql-test/main/ctype_utf16_uca.test +++ b/mysql-test/main/ctype_utf16_uca.test @@ -268,7 +268,26 @@ INSERT INTO t1 (c) VALUES (1); SELECT HEX(c) FROM t1; DROP TABLE t1; +SET NAMES utf8; + --enable_service_connection --echo # --echo # End of 10.2 tests --echo # + + +--echo # +--echo # Start of 10.9 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # Collation IDs in the protocol +--echo # + +SET @charset='utf16'; +--source include/ctype_uca1400_ids_using_convert.inc + +--echo # +--echo # End of 10.9 tests +--echo # diff --git a/mysql-test/main/ctype_utf32_uca.result b/mysql-test/main/ctype_utf32_uca.result index a960325afe9..5468beafd32 100644 --- a/mysql-test/main/ctype_utf32_uca.result +++ b/mysql-test/main/ctype_utf32_uca.result @@ -7973,6 +7973,585 @@ t1 CREATE TABLE `t1` ( `c2` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`c2`)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci DROP TABLE t1; +SET NAMES utf8; # # End of 10.4 tests # +# +# Start of 10.9 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# Collation IDs in the protocol +# +SET @charset='utf32'; +FOR rec IN (SELECT COLLATION_NAME +FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY +WHERE CHARACTER_SET_NAME=@charset +AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO +SET NAMES utf8mb4; +SET character_set_results=NULL; +EXECUTE IMMEDIATE CONCAT('SELECT CONVERT('''' USING ',@charset,')', +' COLLATE ', rec.COLLATION_NAME, +' AS ', rec.COLLATION_NAME, +' LIMIT 0'); +END FOR; +$$ +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_ci 253 0 0 Y 0 39 160 +uca1400_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_ai_cs 253 0 0 Y 0 39 160 +uca1400_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_ci 253 0 0 Y 0 39 160 +uca1400_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_as_cs 253 0 0 Y 0 39 160 +uca1400_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_ci 253 0 0 Y 0 39 160 +uca1400_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_ai_cs 253 0 0 Y 0 39 160 +uca1400_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_ci 253 0 0 Y 0 39 160 +uca1400_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_nopad_as_cs 253 0 0 Y 0 39 160 +uca1400_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_ci 253 0 0 Y 0 39 161 +uca1400_icelandic_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_ai_cs 253 0 0 Y 0 39 161 +uca1400_icelandic_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_ci 253 0 0 Y 0 39 161 +uca1400_icelandic_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_as_cs 253 0 0 Y 0 39 161 +uca1400_icelandic_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_ci 253 0 0 Y 0 39 161 +uca1400_icelandic_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_ai_cs 253 0 0 Y 0 39 161 +uca1400_icelandic_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_ci 253 0 0 Y 0 39 161 +uca1400_icelandic_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_icelandic_nopad_as_cs 253 0 0 Y 0 39 161 +uca1400_icelandic_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_ci 253 0 0 Y 0 39 162 +uca1400_latvian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_ai_cs 253 0 0 Y 0 39 162 +uca1400_latvian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_ci 253 0 0 Y 0 39 162 +uca1400_latvian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_as_cs 253 0 0 Y 0 39 162 +uca1400_latvian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_ci 253 0 0 Y 0 39 162 +uca1400_latvian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_ai_cs 253 0 0 Y 0 39 162 +uca1400_latvian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_ci 253 0 0 Y 0 39 162 +uca1400_latvian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_latvian_nopad_as_cs 253 0 0 Y 0 39 162 +uca1400_latvian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_ci 253 0 0 Y 0 39 163 +uca1400_romanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_ai_cs 253 0 0 Y 0 39 163 +uca1400_romanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_ci 253 0 0 Y 0 39 163 +uca1400_romanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_as_cs 253 0 0 Y 0 39 163 +uca1400_romanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_ci 253 0 0 Y 0 39 163 +uca1400_romanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_ai_cs 253 0 0 Y 0 39 163 +uca1400_romanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_ci 253 0 0 Y 0 39 163 +uca1400_romanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_romanian_nopad_as_cs 253 0 0 Y 0 39 163 +uca1400_romanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_ci 253 0 0 Y 0 39 164 +uca1400_slovenian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_ai_cs 253 0 0 Y 0 39 164 +uca1400_slovenian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_ci 253 0 0 Y 0 39 164 +uca1400_slovenian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_as_cs 253 0 0 Y 0 39 164 +uca1400_slovenian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_ci 253 0 0 Y 0 39 164 +uca1400_slovenian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_ai_cs 253 0 0 Y 0 39 164 +uca1400_slovenian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_ci 253 0 0 Y 0 39 164 +uca1400_slovenian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovenian_nopad_as_cs 253 0 0 Y 0 39 164 +uca1400_slovenian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_ci 253 0 0 Y 0 39 165 +uca1400_polish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_ai_cs 253 0 0 Y 0 39 165 +uca1400_polish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_ci 253 0 0 Y 0 39 165 +uca1400_polish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_as_cs 253 0 0 Y 0 39 165 +uca1400_polish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_ci 253 0 0 Y 0 39 165 +uca1400_polish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_ai_cs 253 0 0 Y 0 39 165 +uca1400_polish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_ci 253 0 0 Y 0 39 165 +uca1400_polish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_polish_nopad_as_cs 253 0 0 Y 0 39 165 +uca1400_polish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_ci 253 0 0 Y 0 39 166 +uca1400_estonian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_ai_cs 253 0 0 Y 0 39 166 +uca1400_estonian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_ci 253 0 0 Y 0 39 166 +uca1400_estonian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_as_cs 253 0 0 Y 0 39 166 +uca1400_estonian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_ci 253 0 0 Y 0 39 166 +uca1400_estonian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_ai_cs 253 0 0 Y 0 39 166 +uca1400_estonian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_ci 253 0 0 Y 0 39 166 +uca1400_estonian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_estonian_nopad_as_cs 253 0 0 Y 0 39 166 +uca1400_estonian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_ci 253 0 0 Y 0 39 167 +uca1400_spanish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_ai_cs 253 0 0 Y 0 39 167 +uca1400_spanish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_ci 253 0 0 Y 0 39 167 +uca1400_spanish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_as_cs 253 0 0 Y 0 39 167 +uca1400_spanish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_ci 253 0 0 Y 0 39 167 +uca1400_spanish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_ai_cs 253 0 0 Y 0 39 167 +uca1400_spanish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_ci 253 0 0 Y 0 39 167 +uca1400_spanish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish_nopad_as_cs 253 0 0 Y 0 39 167 +uca1400_spanish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_ci 253 0 0 Y 0 39 168 +uca1400_swedish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_ai_cs 253 0 0 Y 0 39 168 +uca1400_swedish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_ci 253 0 0 Y 0 39 168 +uca1400_swedish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_as_cs 253 0 0 Y 0 39 168 +uca1400_swedish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_ci 253 0 0 Y 0 39 168 +uca1400_swedish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_ai_cs 253 0 0 Y 0 39 168 +uca1400_swedish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_ci 253 0 0 Y 0 39 168 +uca1400_swedish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_swedish_nopad_as_cs 253 0 0 Y 0 39 168 +uca1400_swedish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_ci 253 0 0 Y 0 39 169 +uca1400_turkish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_ai_cs 253 0 0 Y 0 39 169 +uca1400_turkish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_ci 253 0 0 Y 0 39 169 +uca1400_turkish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_as_cs 253 0 0 Y 0 39 169 +uca1400_turkish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_ci 253 0 0 Y 0 39 169 +uca1400_turkish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_ai_cs 253 0 0 Y 0 39 169 +uca1400_turkish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_ci 253 0 0 Y 0 39 169 +uca1400_turkish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_turkish_nopad_as_cs 253 0 0 Y 0 39 169 +uca1400_turkish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_ci 253 0 0 Y 0 39 170 +uca1400_czech_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_ai_cs 253 0 0 Y 0 39 170 +uca1400_czech_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_ci 253 0 0 Y 0 39 170 +uca1400_czech_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_as_cs 253 0 0 Y 0 39 170 +uca1400_czech_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_ci 253 0 0 Y 0 39 170 +uca1400_czech_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_ai_cs 253 0 0 Y 0 39 170 +uca1400_czech_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_ci 253 0 0 Y 0 39 170 +uca1400_czech_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_czech_nopad_as_cs 253 0 0 Y 0 39 170 +uca1400_czech_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_ci 253 0 0 Y 0 39 171 +uca1400_danish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_ai_cs 253 0 0 Y 0 39 171 +uca1400_danish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_ci 253 0 0 Y 0 39 171 +uca1400_danish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_as_cs 253 0 0 Y 0 39 171 +uca1400_danish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_ci 253 0 0 Y 0 39 171 +uca1400_danish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_ai_cs 253 0 0 Y 0 39 171 +uca1400_danish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_ci 253 0 0 Y 0 39 171 +uca1400_danish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_danish_nopad_as_cs 253 0 0 Y 0 39 171 +uca1400_danish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_ci 253 0 0 Y 0 39 172 +uca1400_lithuanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_ai_cs 253 0 0 Y 0 39 172 +uca1400_lithuanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_ci 253 0 0 Y 0 39 172 +uca1400_lithuanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_as_cs 253 0 0 Y 0 39 172 +uca1400_lithuanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_ci 253 0 0 Y 0 39 172 +uca1400_lithuanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_ai_cs 253 0 0 Y 0 39 172 +uca1400_lithuanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_ci 253 0 0 Y 0 39 172 +uca1400_lithuanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_lithuanian_nopad_as_cs 253 0 0 Y 0 39 172 +uca1400_lithuanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_ci 253 0 0 Y 0 39 173 +uca1400_slovak_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_ai_cs 253 0 0 Y 0 39 173 +uca1400_slovak_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_ci 253 0 0 Y 0 39 173 +uca1400_slovak_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_as_cs 253 0 0 Y 0 39 173 +uca1400_slovak_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_ci 253 0 0 Y 0 39 173 +uca1400_slovak_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_ai_cs 253 0 0 Y 0 39 173 +uca1400_slovak_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_ci 253 0 0 Y 0 39 173 +uca1400_slovak_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_slovak_nopad_as_cs 253 0 0 Y 0 39 173 +uca1400_slovak_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_ci 253 0 0 Y 0 39 174 +uca1400_spanish2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_ai_cs 253 0 0 Y 0 39 174 +uca1400_spanish2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_ci 253 0 0 Y 0 39 174 +uca1400_spanish2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_as_cs 253 0 0 Y 0 39 174 +uca1400_spanish2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_ci 253 0 0 Y 0 39 174 +uca1400_spanish2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_ai_cs 253 0 0 Y 0 39 174 +uca1400_spanish2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_ci 253 0 0 Y 0 39 174 +uca1400_spanish2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_spanish2_nopad_as_cs 253 0 0 Y 0 39 174 +uca1400_spanish2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_ci 253 0 0 Y 0 39 175 +uca1400_roman_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_ai_cs 253 0 0 Y 0 39 175 +uca1400_roman_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_ci 253 0 0 Y 0 39 175 +uca1400_roman_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_as_cs 253 0 0 Y 0 39 175 +uca1400_roman_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_ci 253 0 0 Y 0 39 175 +uca1400_roman_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_ai_cs 253 0 0 Y 0 39 175 +uca1400_roman_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_ci 253 0 0 Y 0 39 175 +uca1400_roman_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_roman_nopad_as_cs 253 0 0 Y 0 39 175 +uca1400_roman_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_ci 253 0 0 Y 0 39 176 +uca1400_persian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_ai_cs 253 0 0 Y 0 39 176 +uca1400_persian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_ci 253 0 0 Y 0 39 176 +uca1400_persian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_as_cs 253 0 0 Y 0 39 176 +uca1400_persian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_ci 253 0 0 Y 0 39 176 +uca1400_persian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_ai_cs 253 0 0 Y 0 39 176 +uca1400_persian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_ci 253 0 0 Y 0 39 176 +uca1400_persian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_persian_nopad_as_cs 253 0 0 Y 0 39 176 +uca1400_persian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_ci 253 0 0 Y 0 39 177 +uca1400_esperanto_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_ai_cs 253 0 0 Y 0 39 177 +uca1400_esperanto_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_ci 253 0 0 Y 0 39 177 +uca1400_esperanto_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_as_cs 253 0 0 Y 0 39 177 +uca1400_esperanto_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_ci 253 0 0 Y 0 39 177 +uca1400_esperanto_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_ai_cs 253 0 0 Y 0 39 177 +uca1400_esperanto_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_ci 253 0 0 Y 0 39 177 +uca1400_esperanto_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_esperanto_nopad_as_cs 253 0 0 Y 0 39 177 +uca1400_esperanto_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_ci 253 0 0 Y 0 39 178 +uca1400_hungarian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_ai_cs 253 0 0 Y 0 39 178 +uca1400_hungarian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_ci 253 0 0 Y 0 39 178 +uca1400_hungarian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_as_cs 253 0 0 Y 0 39 178 +uca1400_hungarian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_ci 253 0 0 Y 0 39 178 +uca1400_hungarian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_ai_cs 253 0 0 Y 0 39 178 +uca1400_hungarian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_ci 253 0 0 Y 0 39 178 +uca1400_hungarian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_hungarian_nopad_as_cs 253 0 0 Y 0 39 178 +uca1400_hungarian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_ci 253 0 0 Y 0 39 179 +uca1400_sinhala_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_ai_cs 253 0 0 Y 0 39 179 +uca1400_sinhala_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_ci 253 0 0 Y 0 39 179 +uca1400_sinhala_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_as_cs 253 0 0 Y 0 39 179 +uca1400_sinhala_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_ci 253 0 0 Y 0 39 179 +uca1400_sinhala_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_ai_cs 253 0 0 Y 0 39 179 +uca1400_sinhala_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_ci 253 0 0 Y 0 39 179 +uca1400_sinhala_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_sinhala_nopad_as_cs 253 0 0 Y 0 39 179 +uca1400_sinhala_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_ci 253 0 0 Y 0 39 180 +uca1400_german2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_ai_cs 253 0 0 Y 0 39 180 +uca1400_german2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_ci 253 0 0 Y 0 39 180 +uca1400_german2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_as_cs 253 0 0 Y 0 39 180 +uca1400_german2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_ci 253 0 0 Y 0 39 180 +uca1400_german2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_ai_cs 253 0 0 Y 0 39 180 +uca1400_german2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_ci 253 0 0 Y 0 39 180 +uca1400_german2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_german2_nopad_as_cs 253 0 0 Y 0 39 180 +uca1400_german2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_ci 253 0 0 Y 0 39 183 +uca1400_vietnamese_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_ai_cs 253 0 0 Y 0 39 183 +uca1400_vietnamese_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_ci 253 0 0 Y 0 39 183 +uca1400_vietnamese_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_as_cs 253 0 0 Y 0 39 183 +uca1400_vietnamese_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_ci 253 0 0 Y 0 39 183 +uca1400_vietnamese_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_ai_cs 253 0 0 Y 0 39 183 +uca1400_vietnamese_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_ci 253 0 0 Y 0 39 183 +uca1400_vietnamese_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_vietnamese_nopad_as_cs 253 0 0 Y 0 39 183 +uca1400_vietnamese_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_ci 253 0 0 Y 0 39 736 +uca1400_croatian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_ai_cs 253 0 0 Y 0 39 736 +uca1400_croatian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_ci 253 0 0 Y 0 39 736 +uca1400_croatian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_as_cs 253 0 0 Y 0 39 736 +uca1400_croatian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_ci 253 0 0 Y 0 39 736 +uca1400_croatian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_ai_cs 253 0 0 Y 0 39 736 +uca1400_croatian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_ci 253 0 0 Y 0 39 736 +uca1400_croatian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def uca1400_croatian_nopad_as_cs 253 0 0 Y 0 39 736 +uca1400_croatian_nopad_as_cs +SET NAMES utf8; +# +# End of 10.9 tests +# diff --git a/mysql-test/main/ctype_utf32_uca.test b/mysql-test/main/ctype_utf32_uca.test index 658a03abacb..dd60feaf8e2 100644 --- a/mysql-test/main/ctype_utf32_uca.test +++ b/mysql-test/main/ctype_utf32_uca.test @@ -323,7 +323,25 @@ SET @@SESSION.collation_connection=utf32_estonian_ci; CREATE TABLE t1(c1 SET('a') COLLATE 'Binary',c2 JSON); SHOW CREATE TABLE t1; DROP TABLE t1; +SET NAMES utf8; --echo # --echo # End of 10.4 tests --echo # + + +--echo # +--echo # Start of 10.9 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # Collation IDs in the protocol +--echo # + +SET @charset='utf32'; +--source include/ctype_uca1400_ids_using_convert.inc + +--echo # +--echo # End of 10.9 tests +--echo # diff --git a/mysql-test/main/ctype_utf8.result b/mysql-test/main/ctype_utf8.result index 2d52f999698..5986ea3ac81 100644 --- a/mysql-test/main/ctype_utf8.result +++ b/mysql-test/main/ctype_utf8.result @@ -6130,7 +6130,7 @@ DROP TABLE t1, t2; # MDEV-8630 Datetime value dropped in "INSERT ... SELECT ... ON DUPLICATE KEY" # SET NAMES utf8; -CREATE TABLE t1 (id2 int, ts timestamp); +CREATE TABLE t1 (id2 int, ts timestamp not null); INSERT INTO t1 VALUES (1,'2012-06-11 15:17:34'),(2,'2012-06-11 15:18:24'); CREATE TABLE t2 AS SELECT COALESCE(ts, 0) AS c0, diff --git a/mysql-test/main/ctype_utf8.test b/mysql-test/main/ctype_utf8.test index d96abb3e43b..c27dc97a69f 100644 --- a/mysql-test/main/ctype_utf8.test +++ b/mysql-test/main/ctype_utf8.test @@ -1669,7 +1669,7 @@ DROP TABLE t1, t2; --echo # MDEV-8630 Datetime value dropped in "INSERT ... SELECT ... ON DUPLICATE KEY" --echo # SET NAMES utf8; -CREATE TABLE t1 (id2 int, ts timestamp); +CREATE TABLE t1 (id2 int, ts timestamp not null); INSERT INTO t1 VALUES (1,'2012-06-11 15:17:34'),(2,'2012-06-11 15:18:24'); CREATE TABLE t2 AS SELECT COALESCE(ts, 0) AS c0, diff --git a/mysql-test/main/ctype_utf8_uca.result b/mysql-test/main/ctype_utf8_uca.result index b1be3c23bda..700d4c40193 100644 --- a/mysql-test/main/ctype_utf8_uca.result +++ b/mysql-test/main/ctype_utf8_uca.result @@ -587,3 +587,775 @@ DROP TABLE t1; # # End of 10.2 tests # +# +# Start of 10.10 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# Collation IDs in the protocol +# +SET NAMES utf8mb3; +SET @charset=(SELECT @@character_set_client); +FOR rec IN (SELECT COLLATION_NAME +FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY +WHERE CHARACTER_SET_NAME=@charset +AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO +EXECUTE IMMEDIATE CONCAT('SET NAMES ',@charset,' COLLATE ', rec.COLLATION_NAME); +SELECT rec.COLLATION_NAME; +END FOR; +$$ +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 13 Y 0 0 192 +rec.COLLATION_NAME +uca1400_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 13 Y 0 0 192 +rec.COLLATION_NAME +uca1400_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 13 Y 0 0 192 +rec.COLLATION_NAME +uca1400_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 13 Y 0 0 192 +rec.COLLATION_NAME +uca1400_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 192 +rec.COLLATION_NAME +uca1400_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 192 +rec.COLLATION_NAME +uca1400_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 192 +rec.COLLATION_NAME +uca1400_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 192 +rec.COLLATION_NAME +uca1400_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 193 +rec.COLLATION_NAME +uca1400_icelandic_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 194 +rec.COLLATION_NAME +uca1400_latvian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 195 +rec.COLLATION_NAME +uca1400_romanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 196 +rec.COLLATION_NAME +uca1400_slovenian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 197 +rec.COLLATION_NAME +uca1400_polish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 198 +rec.COLLATION_NAME +uca1400_estonian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 199 +rec.COLLATION_NAME +uca1400_spanish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 200 +rec.COLLATION_NAME +uca1400_swedish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 201 +rec.COLLATION_NAME +uca1400_turkish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 202 +rec.COLLATION_NAME +uca1400_czech_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 203 +rec.COLLATION_NAME +uca1400_danish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 204 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 20 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 26 Y 0 0 205 +rec.COLLATION_NAME +uca1400_slovak_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 206 +rec.COLLATION_NAME +uca1400_spanish2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 19 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 25 Y 0 0 207 +rec.COLLATION_NAME +uca1400_roman_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 208 +rec.COLLATION_NAME +uca1400_persian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 209 +rec.COLLATION_NAME +uca1400_esperanto_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 23 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 29 Y 0 0 210 +rec.COLLATION_NAME +uca1400_hungarian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 211 +rec.COLLATION_NAME +uca1400_sinhala_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 21 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 27 Y 0 0 212 +rec.COLLATION_NAME +uca1400_german2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 24 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 30 Y 0 0 215 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 22 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 192 28 Y 0 0 576 +rec.COLLATION_NAME +uca1400_croatian_nopad_as_cs +# +# MDEV-29776 collation_connection and db_collation are too short in mysql.proc and mysql.event +# +SET NAMES 'utf8mb3' COLLATE 'utf8mb3_uca1400_swedish_nopad_ai_ci'; +CREATE FUNCTION f1() RETURNS INT RETURN 1; +SELECT length(collation_connection), collation_connection +FROM mysql.proc WHERE db='test' AND name='f1'; +length(collation_connection) collation_connection +35 utf8mb3_uca1400_swedish_nopad_ai_ci +SELECT f1(); +f1() +1 +DROP FUNCTION f1; +SET NAMES utf8mb3; +# +# End of 10.10 tests +# diff --git a/mysql-test/main/ctype_utf8_uca.test b/mysql-test/main/ctype_utf8_uca.test index 0879b4d2810..6ac5060a976 100644 --- a/mysql-test/main/ctype_utf8_uca.test +++ b/mysql-test/main/ctype_utf8_uca.test @@ -21,3 +21,33 @@ SET NAMES utf8 COLLATE utf8_unicode_nopad_ci; --echo # --echo # End of 10.2 tests --echo # + +--echo # +--echo # Start of 10.10 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # Collation IDs in the protocol +--echo # + +SET NAMES utf8mb3; +SET @charset=(SELECT @@character_set_client); +--source include/ctype_uca1400_ids_using_set_names.inc + +--echo # +--echo # MDEV-29776 collation_connection and db_collation are too short in mysql.proc and mysql.event +--echo # + +SET NAMES 'utf8mb3' COLLATE 'utf8mb3_uca1400_swedish_nopad_ai_ci'; +CREATE FUNCTION f1() RETURNS INT RETURN 1; +SELECT length(collation_connection), collation_connection +FROM mysql.proc WHERE db='test' AND name='f1'; +SELECT f1(); +DROP FUNCTION f1; +SET NAMES utf8mb3; + + +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/ctype_utf8mb4.test b/mysql-test/main/ctype_utf8mb4.test index 200a205bd96..46a9c14dec0 100644 --- a/mysql-test/main/ctype_utf8mb4.test +++ b/mysql-test/main/ctype_utf8mb4.test @@ -2112,4 +2112,3 @@ DROP TABLE t1; --echo # --echo # End of 10.6 tests --echo # - diff --git a/mysql-test/main/ctype_utf8mb4_uca.result b/mysql-test/main/ctype_utf8mb4_uca.result index 8b19412a69b..658e84fa644 100644 --- a/mysql-test/main/ctype_utf8mb4_uca.result +++ b/mysql-test/main/ctype_utf8mb4_uca.result @@ -6605,3 +6605,4608 @@ SET NAMES utf8mb4; # # End of 10.2 tests # +# +# End of 10.9 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# Collation IDs in the protocol +# +SET NAMES utf8mb4; +SET @charset=(SELECT @@character_set_client); +FOR rec IN (SELECT COLLATION_NAME +FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY +WHERE CHARACTER_SET_NAME=@charset +AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO +EXECUTE IMMEDIATE CONCAT('SET NAMES ',@charset,' COLLATE ', rec.COLLATION_NAME); +SELECT rec.COLLATION_NAME; +END FOR; +$$ +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 13 Y 0 0 224 +rec.COLLATION_NAME +uca1400_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 13 Y 0 0 224 +rec.COLLATION_NAME +uca1400_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 13 Y 0 0 224 +rec.COLLATION_NAME +uca1400_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 13 Y 0 0 224 +rec.COLLATION_NAME +uca1400_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 224 +rec.COLLATION_NAME +uca1400_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 224 +rec.COLLATION_NAME +uca1400_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 224 +rec.COLLATION_NAME +uca1400_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 224 +rec.COLLATION_NAME +uca1400_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 225 +rec.COLLATION_NAME +uca1400_icelandic_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 226 +rec.COLLATION_NAME +uca1400_latvian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 227 +rec.COLLATION_NAME +uca1400_romanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 228 +rec.COLLATION_NAME +uca1400_slovenian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 229 +rec.COLLATION_NAME +uca1400_polish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 230 +rec.COLLATION_NAME +uca1400_estonian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 231 +rec.COLLATION_NAME +uca1400_spanish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 232 +rec.COLLATION_NAME +uca1400_swedish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 233 +rec.COLLATION_NAME +uca1400_turkish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 234 +rec.COLLATION_NAME +uca1400_czech_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 235 +rec.COLLATION_NAME +uca1400_danish_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 236 +rec.COLLATION_NAME +uca1400_lithuanian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 20 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 26 Y 0 0 237 +rec.COLLATION_NAME +uca1400_slovak_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 238 +rec.COLLATION_NAME +uca1400_spanish2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 19 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 25 Y 0 0 239 +rec.COLLATION_NAME +uca1400_roman_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 240 +rec.COLLATION_NAME +uca1400_persian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 241 +rec.COLLATION_NAME +uca1400_esperanto_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 23 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 29 Y 0 0 242 +rec.COLLATION_NAME +uca1400_hungarian_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 243 +rec.COLLATION_NAME +uca1400_sinhala_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 21 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 27 Y 0 0 244 +rec.COLLATION_NAME +uca1400_german2_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 24 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 30 Y 0 0 247 +rec.COLLATION_NAME +uca1400_vietnamese_nopad_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 22 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_as_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_nopad_ai_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_nopad_ai_cs +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_nopad_as_ci +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def COLLATION_NAME rec.COLLATION_NAME 253 256 28 Y 0 0 608 +rec.COLLATION_NAME +uca1400_croatian_nopad_as_cs +# +# MDEV-27009 Add UCA-14.0.0 collations +# SET NAMES CHARACTER SET cs [COLLATE cl] +# +CREATE VIEW vars AS +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE variable_name IN +('character_set_client','character_set_connection','character_set_results', +'collation_connection') ORDER BY variable_name; +--- +SET NAMES DEFAULT COLLATE DEFAULT; +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT latin1 +CHARACTER_SET_CONNECTION latin1 +CHARACTER_SET_RESULTS latin1 +COLLATION_CONNECTION latin1_swedish_ci +--- +SET NAMES DEFAULT COLLATE `binary`; +ERROR 42000: COLLATION 'binary' is not valid for CHARACTER SET 'latin1' +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT latin1 +CHARACTER_SET_CONNECTION latin1 +CHARACTER_SET_RESULTS latin1 +COLLATION_CONNECTION latin1_swedish_ci +--- +SET NAMES DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +ERROR 42000: COLLATION 'utf8mb4_uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT latin1 +CHARACTER_SET_CONNECTION latin1 +CHARACTER_SET_RESULTS latin1 +COLLATION_CONNECTION latin1_swedish_ci +--- +SET NAMES DEFAULT COLLATE uca1400_ai_ci; +ERROR 42000: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT latin1 +CHARACTER_SET_CONNECTION latin1 +CHARACTER_SET_RESULTS latin1 +COLLATION_CONNECTION latin1_swedish_ci +--- +SET NAMES utf8mb4; +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT utf8mb4 +CHARACTER_SET_CONNECTION utf8mb4 +CHARACTER_SET_RESULTS utf8mb4 +COLLATION_CONNECTION utf8mb4_general_ci +--- +SET NAMES utf8mb4 COLLATE `binary`; +ERROR 42000: COLLATION 'binary' is not valid for CHARACTER SET 'utf8mb4' +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT utf8mb4 +CHARACTER_SET_CONNECTION utf8mb4 +CHARACTER_SET_RESULTS utf8mb4 +COLLATION_CONNECTION utf8mb4_general_ci +--- +SET NAMES utf8mb4 COLLATE DEFAULT; +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT utf8mb4 +CHARACTER_SET_CONNECTION utf8mb4 +CHARACTER_SET_RESULTS utf8mb4 +COLLATION_CONNECTION utf8mb4_general_ci +--- +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT utf8mb4 +CHARACTER_SET_CONNECTION utf8mb4 +CHARACTER_SET_RESULTS utf8mb4 +COLLATION_CONNECTION utf8mb4_uca1400_ai_ci +--- +SET NAMES utf8mb4 COLLATE uca1400_ai_ci; +SELECT * FROM vars; +VARIABLE_NAME VARIABLE_VALUE +CHARACTER_SET_CLIENT utf8mb4 +CHARACTER_SET_CONNECTION utf8mb4 +CHARACTER_SET_RESULTS utf8mb4 +COLLATION_CONNECTION utf8mb4_uca1400_ai_ci +DROP VIEW vars; +# +# MDEV-27009 Add UCA-14.0.0 collations +# ALTER TABLE t1 CONVERT TO CHARACTER SET cs [COLLATE cl] +# +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +USE db1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE latin1_bin; +ERROR 42000: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE DEFAULT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE latin1_bin; +ERROR 42000: COLLATION 'latin1_bin' is not valid for CHARACTER SET 'utf8mb4' +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` varchar(10) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE t1; +DROP DATABASE db1; +USE test; +# +# MDEV-27743 Remove Lex::charset +# MDEV-27009 Add UCA-14.0.0 collations +# +CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8mb4); +INSERT INTO t1 VALUES ('A'),('a'),('Ã'),('á'); +SELECT * FROM t1 ORDER BY c1 COLLATE DEFAULT; +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 'DEFAULT' at line 1 +SELECT * FROM t1 ORDER BY c1 COLLATE `binary`; +ERROR 42000: COLLATION 'binary' is not valid for CHARACTER SET 'utf8mb4' +SELECT * FROM t1 ORDER BY c1 COLLATE utf8mb4_uca1400_as_cs; +c1 +a +A +á +à +EXPLAIN EXTENDED SELECT * FROM t1 ORDER BY c1 COLLATE utf8mb4_uca1400_as_cs; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 4 100.00 Using filesort +Warnings: +Note 1003 select `test`.`t1`.`c1` AS `c1` from `test`.`t1` order by `test`.`t1`.`c1` collate utf8mb4_uca1400_as_cs +SELECT * FROM t1 ORDER BY c1 COLLATE uca1400_as_cs; +c1 +a +A +á +à +EXPLAIN EXTENDED SELECT * FROM t1 ORDER BY c1 COLLATE uca1400_as_cs; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 4 100.00 Using filesort +Warnings: +Note 1003 select `test`.`t1`.`c1` AS `c1` from `test`.`t1` order by `test`.`t1`.`c1` collate uca1400_as_cs +DROP TABLE t1; +# +# MDEV-27009 Add UCA-14.0.0 collations +# CREATE DATABASE +# +SET @@collation_server=utf8mb4_bin; +CREATE DATABASE db1; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */ +DROP DATABASE db1; +CREATE DATABASE db1 COLLATE DEFAULT; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 CHARACTER SET DEFAULT; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */ +DROP DATABASE db1; +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */ +DROP DATABASE db1; +SET @@collation_server=DEFAULT; +SET @@collation_server=latin1_bin; +CREATE DATABASE db1 COLLATE uca1400_ai_ci; +ERROR 42000: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +ERROR 42000: COLLATION 'uca1400_ai_ci' is not valid for CHARACTER SET 'latin1' +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +Database Create Database +db1 CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci */ +DROP DATABASE db1; +SET @@collation_server=DEFAULT; +# +# MDEV-27009 Add UCA-14.0.0 collations +# CREATE TABLE - table level character set and collation +# +SELECT @@collation_database; +@@collation_database +latin1_swedish_ci +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +CREATE TABLE db1.t1 (a CHAR(1)); +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE DEFAULT; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE db1.t1; +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(1) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci +DROP TABLE db1.t1; +DROP DATABASE db1; +# +# MDEV-27009 Add UCA-14.0.0 collations +# +SET NAMES utf8mb4; +CREATE PROCEDURE exec_verbose(query TEXT CHARACTER SET utf8mb4) +BEGIN +SELECT query AS ``; +EXECUTE IMMEDIATE query; +END; +$$ +CREATE PROCEDURE test_styles(clname VARCHAR(64) CHARACTER SET utf8mb4, +where_clause TEXT CHARACTER SET utf8mb4) +BEGIN +DECLARE query TEXT CHARACTER SET utf8mb4 DEFAULT +'SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),'','') ' + 'FROM t1 <WHERE> GROUP BY a COLLATE <CL>'; +SET query=REPLACE(query, '<WHERE>', where_clause); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_as_cs'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_as_cs'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_as_ci'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_as_ci'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_ai_cs'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_ai_cs'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_ai_ci'))); +CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_ai_ci'))); +END; +$$ +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4); +insert into t1 values ('A'),('a'); +insert into t1 values ('B'),('b'); +insert into t1 values ('C'),('c'); +insert into t1 values ('D'),('d'); +insert into t1 values ('E'),('e'); +insert into t1 values ('F'),('f'); +insert into t1 values ('G'),('g'); +insert into t1 values ('H'),('h'); +insert into t1 values ('I'),('i'); +insert into t1 values ('J'),('j'); +insert into t1 values ('K'),('k'); +insert into t1 values ('L'),('l'); +insert into t1 values ('M'),('m'); +insert into t1 values ('N'),('n'); +insert into t1 values ('O'),('o'); +insert into t1 values ('P'),('p'); +insert into t1 values ('Q'),('q'); +insert into t1 values ('R'),('r'); +insert into t1 values ('S'),('s'); +insert into t1 values ('T'),('t'); +insert into t1 values ('U'),('u'); +insert into t1 values ('V'),('v'); +insert into t1 values ('W'),('w'); +insert into t1 values ('X'),('x'); +insert into t1 values ('Y'),('y'); +insert into t1 values ('Z'),('z'); +insert into t1 values (_ucs2 0x00e0),(_ucs2 0x00c0); +insert into t1 values (_ucs2 0x00e1),(_ucs2 0x00c1); +insert into t1 values (_ucs2 0x00e2),(_ucs2 0x00c2); +insert into t1 values (_ucs2 0x00e3),(_ucs2 0x00c3); +insert into t1 values (_ucs2 0x00e4),(_ucs2 0x00c4); +insert into t1 values (_ucs2 0x00e5),(_ucs2 0x00c5); +insert into t1 values (_ucs2 0x00e6),(_ucs2 0x00c6); +insert into t1 values (_ucs2 0x00e7),(_ucs2 0x00c7); +insert into t1 values (_ucs2 0x00e8),(_ucs2 0x00c8); +insert into t1 values (_ucs2 0x00e9),(_ucs2 0x00c9); +insert into t1 values (_ucs2 0x00ea),(_ucs2 0x00ca); +insert into t1 values (_ucs2 0x00eb),(_ucs2 0x00cb); +insert into t1 values (_ucs2 0x00ec),(_ucs2 0x00cc); +insert into t1 values (_ucs2 0x00ed),(_ucs2 0x00cd); +insert into t1 values (_ucs2 0x00ee),(_ucs2 0x00ce); +insert into t1 values (_ucs2 0x00ef),(_ucs2 0x00cf); +insert into t1 values (_ucs2 0x00f0),(_ucs2 0x00d0); +insert into t1 values (_ucs2 0x00f1),(_ucs2 0x00d1); +insert into t1 values (_ucs2 0x00f2),(_ucs2 0x00d2); +insert into t1 values (_ucs2 0x00f3),(_ucs2 0x00d3); +insert into t1 values (_ucs2 0x00f4),(_ucs2 0x00d4); +insert into t1 values (_ucs2 0x00f5),(_ucs2 0x00d5); +insert into t1 values (_ucs2 0x00f6),(_ucs2 0x00d6); +insert into t1 values (_ucs2 0x00f7),(_ucs2 0x00d7); +insert into t1 values (_ucs2 0x00f8),(_ucs2 0x00d8); +insert into t1 values (_ucs2 0x00f9),(_ucs2 0x00d9); +insert into t1 values (_ucs2 0x00fa),(_ucs2 0x00da); +insert into t1 values (_ucs2 0x00fb),(_ucs2 0x00db); +insert into t1 values (_ucs2 0x00fc),(_ucs2 0x00dc); +insert into t1 values (_ucs2 0x00fd),(_ucs2 0x00dd); +insert into t1 values (_ucs2 0x00fe),(_ucs2 0x00de); +insert into t1 values (_ucs2 0x00ff),(_ucs2 0x00df); +insert into t1 values (_ucs2 0x0100),(_ucs2 0x0101),(_ucs2 0x0102),(_ucs2 0x0103); +insert into t1 values (_ucs2 0x0104),(_ucs2 0x0105),(_ucs2 0x0106),(_ucs2 0x0107); +insert into t1 values (_ucs2 0x0108),(_ucs2 0x0109),(_ucs2 0x010a),(_ucs2 0x010b); +insert into t1 values (_ucs2 0x010c),(_ucs2 0x010d),(_ucs2 0x010e),(_ucs2 0x010f); +insert into t1 values (_ucs2 0x0110),(_ucs2 0x0111),(_ucs2 0x0112),(_ucs2 0x0113); +insert into t1 values (_ucs2 0x0114),(_ucs2 0x0115),(_ucs2 0x0116),(_ucs2 0x0117); +insert into t1 values (_ucs2 0x0118),(_ucs2 0x0119),(_ucs2 0x011a),(_ucs2 0x011b); +insert into t1 values (_ucs2 0x011c),(_ucs2 0x011d),(_ucs2 0x011e),(_ucs2 0x011f); +insert into t1 values (_ucs2 0x0120),(_ucs2 0x0121),(_ucs2 0x0122),(_ucs2 0x0123); +insert into t1 values (_ucs2 0x0124),(_ucs2 0x0125),(_ucs2 0x0126),(_ucs2 0x0127); +insert into t1 values (_ucs2 0x0128),(_ucs2 0x0129),(_ucs2 0x012a),(_ucs2 0x012b); +insert into t1 values (_ucs2 0x012c),(_ucs2 0x012d),(_ucs2 0x012e),(_ucs2 0x012f); +insert into t1 values (_ucs2 0x0130),(_ucs2 0x0131),(_ucs2 0x0132),(_ucs2 0x0133); +insert into t1 values (_ucs2 0x0134),(_ucs2 0x0135),(_ucs2 0x0136),(_ucs2 0x0137); +insert into t1 values (_ucs2 0x0138),(_ucs2 0x0139),(_ucs2 0x013a),(_ucs2 0x013b); +insert into t1 values (_ucs2 0x013c),(_ucs2 0x013d),(_ucs2 0x013e),(_ucs2 0x013f); +insert into t1 values (_ucs2 0x0140),(_ucs2 0x0141),(_ucs2 0x0142),(_ucs2 0x0143); +insert into t1 values (_ucs2 0x0144),(_ucs2 0x0145),(_ucs2 0x0146),(_ucs2 0x0147); +insert into t1 values (_ucs2 0x0148),(_ucs2 0x0149),(_ucs2 0x014a),(_ucs2 0x014b); +insert into t1 values (_ucs2 0x014c),(_ucs2 0x014d),(_ucs2 0x014e),(_ucs2 0x014f); +insert into t1 values (_ucs2 0x0150),(_ucs2 0x0151),(_ucs2 0x0152),(_ucs2 0x0153); +insert into t1 values (_ucs2 0x0154),(_ucs2 0x0155),(_ucs2 0x0156),(_ucs2 0x0157); +insert into t1 values (_ucs2 0x0158),(_ucs2 0x0159),(_ucs2 0x015a),(_ucs2 0x015b); +insert into t1 values (_ucs2 0x015c),(_ucs2 0x015d),(_ucs2 0x015e),(_ucs2 0x015f); +insert into t1 values (_ucs2 0x0160),(_ucs2 0x0161),(_ucs2 0x0162),(_ucs2 0x0163); +insert into t1 values (_ucs2 0x0164),(_ucs2 0x0165),(_ucs2 0x0166),(_ucs2 0x0167); +insert into t1 values (_ucs2 0x0168),(_ucs2 0x0169),(_ucs2 0x016a),(_ucs2 0x016b); +insert into t1 values (_ucs2 0x016c),(_ucs2 0x016d),(_ucs2 0x016e),(_ucs2 0x016f); +insert into t1 values (_ucs2 0x0170),(_ucs2 0x0171),(_ucs2 0x0172),(_ucs2 0x0173); +insert into t1 values (_ucs2 0x0174),(_ucs2 0x0175),(_ucs2 0x0176),(_ucs2 0x0177); +insert into t1 values (_ucs2 0x0178),(_ucs2 0x0179),(_ucs2 0x017a),(_ucs2 0x017b); +insert into t1 values (_ucs2 0x017c),(_ucs2 0x017d),(_ucs2 0x017e),(_ucs2 0x017f); +insert into t1 values (_ucs2 0x0180),(_ucs2 0x0181),(_ucs2 0x0182),(_ucs2 0x0183); +insert into t1 values (_ucs2 0x0184),(_ucs2 0x0185),(_ucs2 0x0186),(_ucs2 0x0187); +insert into t1 values (_ucs2 0x0188),(_ucs2 0x0189),(_ucs2 0x018a),(_ucs2 0x018b); +insert into t1 values (_ucs2 0x018c),(_ucs2 0x018d),(_ucs2 0x018e),(_ucs2 0x018f); +insert into t1 values (_ucs2 0x0190),(_ucs2 0x0191),(_ucs2 0x0192),(_ucs2 0x0193); +insert into t1 values (_ucs2 0x0194),(_ucs2 0x0195),(_ucs2 0x0196),(_ucs2 0x0197); +insert into t1 values (_ucs2 0x0198),(_ucs2 0x0199),(_ucs2 0x019a),(_ucs2 0x019b); +insert into t1 values (_ucs2 0x019c),(_ucs2 0x019d),(_ucs2 0x019e),(_ucs2 0x019f); +insert into t1 values (_ucs2 0x01a0),(_ucs2 0x01a1),(_ucs2 0x01a2),(_ucs2 0x01a3); +insert into t1 values (_ucs2 0x01a4),(_ucs2 0x01a5),(_ucs2 0x01a6),(_ucs2 0x01a7); +insert into t1 values (_ucs2 0x01a8),(_ucs2 0x01a9),(_ucs2 0x01aa),(_ucs2 0x01ab); +insert into t1 values (_ucs2 0x01ac),(_ucs2 0x01ad),(_ucs2 0x01ae),(_ucs2 0x01af); +insert into t1 values (_ucs2 0x01b0),(_ucs2 0x01b1),(_ucs2 0x01b2),(_ucs2 0x01b3); +insert into t1 values (_ucs2 0x01b4),(_ucs2 0x01b5),(_ucs2 0x01b6),(_ucs2 0x01b7); +insert into t1 values (_ucs2 0x01b8),(_ucs2 0x01b9),(_ucs2 0x01ba),(_ucs2 0x01bb); +insert into t1 values (_ucs2 0x01bc),(_ucs2 0x01bd),(_ucs2 0x01be),(_ucs2 0x01bf); +insert into t1 values (_ucs2 0x01c0),(_ucs2 0x01c1),(_ucs2 0x01c2),(_ucs2 0x01c3); +insert into t1 values (_ucs2 0x01c4),(_ucs2 0x01c5),(_ucs2 0x01c6),(_ucs2 0x01c7); +insert into t1 values (_ucs2 0x01c8),(_ucs2 0x01c9),(_ucs2 0x01ca),(_ucs2 0x01cb); +insert into t1 values (_ucs2 0x01cc),(_ucs2 0x01cd),(_ucs2 0x01ce),(_ucs2 0x01cf); +insert into t1 values (_ucs2 0x01d0),(_ucs2 0x01d1),(_ucs2 0x01d2),(_ucs2 0x01d3); +insert into t1 values (_ucs2 0x01d4),(_ucs2 0x01d5),(_ucs2 0x01d6),(_ucs2 0x01d7); +insert into t1 values (_ucs2 0x01d8),(_ucs2 0x01d9),(_ucs2 0x01da),(_ucs2 0x01db); +insert into t1 values (_ucs2 0x01dc),(_ucs2 0x01dd),(_ucs2 0x01de),(_ucs2 0x01df); +insert into t1 values (_ucs2 0x01e0),(_ucs2 0x01e1),(_ucs2 0x01e2),(_ucs2 0x01e3); +insert into t1 values (_ucs2 0x01e4),(_ucs2 0x01e5),(_ucs2 0x01e6),(_ucs2 0x01e7); +insert into t1 values (_ucs2 0x01e8),(_ucs2 0x01e9),(_ucs2 0x01ea),(_ucs2 0x01eb); +insert into t1 values (_ucs2 0x01ec),(_ucs2 0x01ed),(_ucs2 0x01ee),(_ucs2 0x01ef); +insert into t1 values (_ucs2 0x01f0),(_ucs2 0x01f1),(_ucs2 0x01f2),(_ucs2 0x01f3); +insert into t1 values (_ucs2 0x01f4),(_ucs2 0x01f5),(_ucs2 0x01f6),(_ucs2 0x01f7); +insert into t1 values (_ucs2 0x01f8),(_ucs2 0x01f9),(_ucs2 0x01fa),(_ucs2 0x01fb); +insert into t1 values (_ucs2 0x01fc),(_ucs2 0x01fd),(_ucs2 0x01fe),(_ucs2 0x01ff); +INSERT INTO t1 VALUES (_ucs2 0x1EA0),(_ucs2 0x1EA1),(_ucs2 0x1EA2),(_ucs2 0x1EA3); +INSERT INTO t1 VALUES (_ucs2 0x1EA4),(_ucs2 0x1EA5),(_ucs2 0x1EA6),(_ucs2 0x1EA7); +INSERT INTO t1 VALUES (_ucs2 0x1EA8),(_ucs2 0x1EA9),(_ucs2 0x1EAA),(_ucs2 0x1EAB); +INSERT INTO t1 VALUES (_ucs2 0x1EAC),(_ucs2 0x1EAD),(_ucs2 0x1EAE),(_ucs2 0x1EAF); +INSERT INTO t1 VALUES (_ucs2 0x1EB0),(_ucs2 0x1EB1),(_ucs2 0x1EB2),(_ucs2 0x1EB3); +INSERT INTO t1 VALUES (_ucs2 0x1EB4),(_ucs2 0x1EB5),(_ucs2 0x1EB6),(_ucs2 0x1EB7); +INSERT INTO t1 VALUES (_ucs2 0x1EB8),(_ucs2 0x1EB9),(_ucs2 0x1EBA),(_ucs2 0x1EBB); +INSERT INTO t1 VALUES (_ucs2 0x1EBC),(_ucs2 0x1EBD),(_ucs2 0x1EBE),(_ucs2 0x1EBF); +INSERT INTO t1 VALUES (_ucs2 0x1EC0),(_ucs2 0x1EC1),(_ucs2 0x1EC2),(_ucs2 0x1EC3); +INSERT INTO t1 VALUES (_ucs2 0x1EC4),(_ucs2 0x1EC5),(_ucs2 0x1EC6),(_ucs2 0x1EC7); +INSERT INTO t1 VALUES (_ucs2 0x1EC8),(_ucs2 0x1EC9),(_ucs2 0x1ECA),(_ucs2 0x1ECB); +INSERT INTO t1 VALUES (_ucs2 0x1ECC),(_ucs2 0x1ECD),(_ucs2 0x1ECE),(_ucs2 0x1ECF); +INSERT INTO t1 VALUES (_ucs2 0x1ED0),(_ucs2 0x1ED1),(_ucs2 0x1ED2),(_ucs2 0x1ED3); +INSERT INTO t1 VALUES (_ucs2 0x1ED4),(_ucs2 0x1ED5),(_ucs2 0x1ED6),(_ucs2 0x1ED7); +INSERT INTO t1 VALUES (_ucs2 0x1ED8),(_ucs2 0x1ED9),(_ucs2 0x1EDA),(_ucs2 0x1EDB); +INSERT INTO t1 VALUES (_ucs2 0x1EDC),(_ucs2 0x1EDD),(_ucs2 0x1EDE),(_ucs2 0x1EDF); +INSERT INTO t1 VALUES (_ucs2 0x1EE0),(_ucs2 0x1EE1),(_ucs2 0x1EE2),(_ucs2 0x1EE3); +INSERT INTO t1 VALUES (_ucs2 0x1EE4),(_ucs2 0x1EE5),(_ucs2 0x1EE6),(_ucs2 0x1EE7); +INSERT INTO t1 VALUES (_ucs2 0x1EE8),(_ucs2 0x1EE9),(_ucs2 0x1EEA),(_ucs2 0x1EEB); +INSERT INTO t1 VALUES (_ucs2 0x1EEC),(_ucs2 0x1EED),(_ucs2 0x1EEE),(_ucs2 0x1EEF); +INSERT INTO t1 VALUES (_ucs2 0x1EF0),(_ucs2 0x1EF1); +insert into t1 values ('AA'),('Aa'),('aa'),('aA'); +insert into t1 values ('AE'),('Ae'),('ae'),('aE'); +insert into t1 values ('CH'),('Ch'),('ch'),('cH'); +insert into t1 values ('DZ'),('Dz'),('dz'),('dZ'); +insert into t1 values ('DŽ'),('Dž'),('dž'),('dŽ'); +insert into t1 values ('IJ'),('Ij'),('ij'),('iJ'); +insert into t1 values ('LJ'),('Lj'),('lj'),('lJ'); +insert into t1 values ('LL'),('Ll'),('ll'),('lL'); +insert into t1 values ('NJ'),('Nj'),('nj'),('nJ'); +insert into t1 values ('OE'),('Oe'),('oe'),('oE'); +insert into t1 values ('SS'),('Ss'),('ss'),('sS'); +insert into t1 values ('RR'),('Rr'),('rr'),('rR'); +INSERT INTO t1 VALUES('ẞ'); +INSERT INTO t1 SELECT CONCAT(a,' ') FROM t1; +CALL test_styles('uca1400', ''); + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_nopad_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷, +÷ , +×, +× , +a, +A, +á, +Ã, +à , +À, +ă, +Ä‚, +ắ, +Ắ, +ằ, +Ằ, +ẵ, +Ẵ, +ẳ, +Ẳ, +â, +Â, +ấ, +Ấ, +ầ, +Ầ, +ẫ, +Ẫ, +ẩ, +Ẩ, +ÇŽ, +Ç, +Ã¥, +Ã…, +Ç», +Ǻ, +ä, +Ä, +ÇŸ, +Çž, +ã, +Ã, +Ç¡, +Ç , +Ä…, +Ä„, +Ä, +Ä€, +ả, +Ả, +ạ, +Ạ, +ặ, +Ặ, +áº, +Ậ, +a , +A , +á , +à , +à , +À , +ă , +Ä‚ , +ắ , +Ắ , +ằ , +Ằ , +ẵ , +Ẵ , +ẳ , +Ẳ , +â , + , +ấ , +Ấ , +ầ , +Ầ , +ẫ , +Ẫ , +ẩ , +Ẩ , +ÇŽ , +Ç , +Ã¥ , +Ã… , +Ç» , +Ǻ , +ä , +Ä , +ÇŸ , +Çž , +ã , +à , +Ç¡ , +Ç , +Ä… , +Ä„ , +Ä , +Ä€ , +ả , +Ả , +ạ , +Ạ, +ặ , +Ặ , +Ạ, +Ậ , +aa, +aA, +Aa, +AA, +aa , +aA , +Aa , +AA , +ae, +aE, +Ae, +AE, +æ, +Æ, +ǽ, +Ǽ, +Ç£, +Ç¢, +ae , +aE , +Ae , +AE , +æ , +Æ , +ǽ , +Ǽ , +Ç£ , +Ç¢ , +b, +B, +b , +B , +Æ€, +Æ€ , +Æ, +Æ , +ƃ, +Æ‚, +ƃ , +Æ‚ , +c, +C, +ć, +Ć, +ĉ, +Ĉ, +Ä, +ÄŒ, +Ä‹, +ÄŠ, +ç, +Ç, +c , +C , +ć , +Ć , +ĉ , +Ĉ , +Ä , +ÄŒ , +Ä‹ , +ÄŠ , +ç , +Ç , +ch, +cH, +Ch, +CH, +ch , +cH , +Ch , +CH , +ƈ, +Ƈ, +ƈ , +Ƈ , +d, +D, +Ä, +ÄŽ, +Ä‘, +Ä, +ð, +Ã, +d , +D , +Ä , +ÄŽ , +Ä‘ , +Ä , +ð , +à , +dz, +dZ, +dz, +Dz, +DZ, +Dz, +DZ, +dž, +dŽ, +dž, +Dž, +DŽ, +Ç…, +Ç„, +dz , +dZ , +dz , +Dz , +DZ , +Dz , +DZ , +dž , +dŽ , +dž , +Dž , +DŽ , +Ç… , +Ç„ , +Ɖ, +Ɖ , +ÆŠ, +ÆŠ , +ÆŒ, +Æ‹, +ÆŒ , +Æ‹ , +e, +E, +é, +É, +è, +È, +Ä•, +Ä”, +ê, +Ê, +ế, +Ế, +á», +Ề, +á»…, +Ễ, +ể, +Ể, +Ä›, +Äš, +ë, +Ë, +ẽ, +Ẽ, +Ä—, +Ä–, +Ä™, +Ę, +Ä“, +Ä’, +ẻ, +Ẻ, +ẹ, +Ẹ, +ệ, +Ệ, +e , +E , +é , +É , +è , +È , +Ä• , +Ä” , +ê , +Ê , +ế , +Ế , +á» , +Ề , +á»… , +Ễ , +ể , +Ể , +Ä› , +Äš , +ë , +Ë , +ẽ , +Ẽ , +Ä— , +Ä– , +Ä™ , +Ę , +Ä“ , +Ä’ , +ẻ , +Ẻ , +ẹ , +Ẹ , +ệ , +Ệ , +Ç, +ÆŽ, +Ç , +ÆŽ , +Æ, +Æ , +Æ, +Æ , +f, +F, +f , +F , +Æ’, +Æ‘, +Æ’ , +Æ‘ , +g, +G, +ǵ, +Ç´, +ÄŸ, +Äž, +Ä, +Äœ, +ǧ, +Ǧ, +Ä¡, +Ä , +Ä£, +Ä¢, +g , +G , +ǵ , +Ç´ , +ÄŸ , +Äž , +Ä , +Äœ , +ǧ , +Ǧ , +Ä¡ , +Ä , +Ä£ , +Ä¢ , +Ç¥, +Ǥ, +Ç¥ , +Ǥ , +Æ“, +Æ“ , +Æ”, +Æ” , +Æ£, +Æ¢, +Æ£ , +Æ¢ , +h, +H, +Ä¥, +Ĥ, +ħ, +Ħ, +h , +H , +Ä¥ , +Ĥ , +ħ , +Ħ , +Æ•, +Ƕ, +Æ• , +Ƕ , +i, +I, +Ã, +Ã, +ì, +ÃŒ, +Ä, +Ĭ, +î, +ÃŽ, +Ç, +Ç, +ï, +Ã, +Ä©, +Ĩ, +İ, +į, +Ä®, +Ä«, +Ī, +ỉ, +Ỉ, +ị, +Ị, +i , +I , +à , +à , +ì , +ÃŒ , +Ä , +Ĭ , +î , +ÃŽ , +Ç , +Ç , +ï , +à , +Ä© , +Ĩ , +İ , +į , +Ä® , +Ä« , +Ī , +ỉ , +Ỉ , +ị , +Ị , +ij, +iJ, +ij, +Ij, +IJ, +IJ, +ij , +iJ , +ij , +Ij , +IJ , +IJ , +ı, +ı , +Æ—, +Æ— , +Æ–, +Æ– , +j, +J, +ĵ, +Ä´, +ǰ, +j , +J , +ĵ , +Ä´ , +ǰ , +k, +K, +Ç©, +Ǩ, +Ä·, +Ķ, +k , +K , +Ç© , +Ǩ , +Ä· , +Ķ , +Æ™, +Ƙ, +Æ™ , +Ƙ , +l, +L, +ĺ, +Ĺ, +ľ, +Ľ, +ļ, +Ä», +Å‚, +Å, +Å€, +Ä¿, +l , +L , +ĺ , +Ĺ , +ľ , +Ľ , +ļ , +Ä» , +Å‚ , +Å , +Å€ , +Ä¿ , +lj, +lJ, +lj, +Lj, +LJ, +Lj, +LJ, +lj , +lJ , +lj , +Lj , +LJ , +Lj , +LJ , +ll, +lL, +Ll, +LL, +ll , +lL , +Ll , +LL , +Æš, +Æš , +Æ›, +Æ› , +m, +M, +m , +M , +n, +N, +Å„, +Ń, +ǹ, +Ǹ, +ň, +Ň, +ñ, +Ñ, +ņ, +Å…, +n , +N , +Å„ , +Ń , +ǹ , +Ǹ , +ň , +Ň , +ñ , +Ñ , +ņ , +Å… , +nj, +nJ, +ÇŒ, +Nj, +NJ, +Ç‹, +ÇŠ, +nj , +nJ , +ÇŒ , +Nj , +NJ , +Ç‹ , +ÇŠ , +Æ, +Æ , +Æž, +Æž , +Å‹, +ÅŠ, +Å‹ , +ÅŠ , +o, +O, +ó, +Ó, +ò, +Ã’, +Å, +ÅŽ, +ô, +Ô, +ố, +á», +ồ, +á»’, +á»—, +á»–, +ổ, +á»”, +Ç’, +Ç‘, +ö, +Ö, +Å‘, +Å, +õ, +Õ, +ø, +Ø, +Ç¿, +Ǿ, +Ç«, +Ǫ, +Ç, +Ǭ, +Å, +ÅŒ, +á», +Ỏ, +Æ¡, +Æ , +á»›, +Ớ, +á», +Ờ, +ỡ, +á» , +ở, +Ở, +ợ, +Ợ, +á», +Ọ, +á»™, +Ộ, +o , +O , +ó , +Ó , +ò , +Ã’ , +Å , +ÅŽ , +ô , +Ô , +ố , +á» , +ồ , +á»’ , +á»— , +á»– , +ổ , +á»” , +Ç’ , +Ç‘ , +ö , +Ö , +Å‘ , +Å , +õ , +Õ , +ø , +Ø , +Ç¿ , +Ǿ , +Ç« , +Ǫ , +Ç , +Ǭ , +Å , +ÅŒ , +á» , +Ỏ , +Æ¡ , +Æ , +á»› , +Ớ , +á» , +Ờ , +ỡ , +á» , +ở , +Ở , +ợ , +Ợ , +á» , +Ọ , +á»™ , +Ộ , +oe, +oE, +Oe, +OE, +Å“, +Å’, +oe , +oE , +Oe , +OE , +Å“ , +Å’ , +Ɔ, +Ɔ , +ÆŸ, +ÆŸ , +p, +P, +p , +P , +Æ¥, +Ƥ, +Æ¥ , +Ƥ , +q, +Q, +q , +Q , +ĸ, +ĸ , +r, +R, +Å•, +Å”, +Å™, +Ř, +Å—, +Å–, +r , +R , +Å• , +Å” , +Å™ , +Ř , +Å— , +Å– , +rr, +rR, +Rr, +RR, +rr , +rR , +Rr , +RR , +Ʀ, +Ʀ , +s, +S, +Å›, +Åš, +Å, +Åœ, +Å¡, +Å , +ÅŸ, +Åž, +Å¿, +s , +S , +Å› , +Åš , +Å , +Åœ , +Å¡ , +Å , +ÅŸ , +Åž , +Å¿ , +ss, +sS, +Ss, +SS, +ß, +ẞ, +ss , +sS , +Ss , +SS , +ß , +ẞ , +Æ©, +Æ© , +ƪ, +ƪ , +t, +T, +Å¥, +Ť, +Å£, +Å¢, +t , +T , +Å¥ , +Ť , +Å£ , +Å¢ , +ƾ, +ƾ , +ŧ, +Ŧ, +ŧ , +Ŧ , +Æ«, +Æ« , +Æ, +Ƭ, +Æ , +Ƭ , +Æ®, +Æ® , +u, +U, +ú, +Ú, +ù, +Ù, +Å, +Ŭ, +û, +Û, +Ç”, +Ç“, +ů, +Å®, +ü, +Ü, +ǘ, +Ç—, +Çœ, +Ç›, +Çš, +Ç™, +Ç–, +Ç•, +ű, +Ű, +Å©, +Ũ, +ų, +Ų, +Å«, +Ū, +á»§, +Ủ, +ư, +Ư, +ứ, +Ứ, +ừ, +Ừ, +ữ, +á»®, +á», +Ử, +á»±, +á»°, +ụ, +Ụ, +u , +U , +ú , +Ú , +ù , +Ù , +Å , +Ŭ , +û , +Û , +Ç” , +Ç“ , +ů , +Å® , +ü , +Ü , +ǘ , +Ç— , +Çœ , +Ç› , +Çš , +Ç™ , +Ç– , +Ç• , +ű , +Ű , +Å© , +Ũ , +ų , +Ų , +Å« , +Ū , +á»§ , +Ủ , +ư , +Ư , +ứ , +Ứ , +ừ , +Ừ , +ữ , +á»® , +á» , +Ử , +á»± , +á»° , +ụ , +Ụ , +Æœ, +Æœ , +Ʊ, +Ʊ , +v, +V, +v , +V , +Ʋ, +Ʋ , +w, +W, +ŵ, +Å´, +w , +W , +ŵ , +Å´ , +x, +X, +x , +X , +y, +Y, +ý, +Ã, +Å·, +Ŷ, +ÿ, +Ÿ, +y , +Y , +ý , +à , +Å· , +Ŷ , +ÿ , +Ÿ , +Æ´, +Ƴ, +Æ´ , +Ƴ , +z, +Z, +ź, +Ź, +ž, +Ž, +ż, +Å», +z , +Z , +ź , +Ź , +ž , +Ž , +ż , +Å» , +Æ, +Æ , +ƶ, +Ƶ, +ƶ , +Ƶ , +Æ·, +ǯ, +Ç®, +Æ· , +ǯ , +Ç® , +ƹ, +Ƹ, +ƹ , +Ƹ , +ƺ, +ƺ , +þ, +Þ, +þ , +Þ , +Æ¿, +Ç·, +Æ¿ , +Ç· , +Æ», +Æ» , +ƨ, +Ƨ, +ƨ , +Ƨ , +ƽ, +Ƽ, +ƽ , +Ƽ , +Æ…, +Æ„, +Æ… , +Æ„ , +ʼn, +ʼn , +Ç€, +Ç€ , +Ç, +Ç , +Ç‚, +Ç‚ , +ǃ, +ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷,÷ , +×,× , +a,a , +A,A , +á,á , +Ã,à , +à ,à , +À,À , +ă,ă , +Ä‚,Ä‚ , +ắ,ắ , +Ắ,Ắ , +ằ,ằ , +Ằ,Ằ , +ẵ,ẵ , +Ẵ,Ẵ , +ẳ,ẳ , +Ẳ,Ẳ , +â,â , +Â, , +ấ,ấ , +Ấ,Ấ , +ầ,ầ , +Ầ,Ầ , +ẫ,ẫ , +Ẫ,Ẫ , +ẩ,ẩ , +Ẩ,Ẩ , +ÇŽ,ÇŽ , +Ç,Ç , +Ã¥,Ã¥ , +Ã…,Ã… , +Ç»,Ç» , +Ǻ,Ǻ , +ä,ä , +Ä,Ä , +ÇŸ,ÇŸ , +Çž,Çž , +ã,ã , +Ã,à , +Ç¡,Ç¡ , +Ç ,Ç , +Ä…,Ä… , +Ä„,Ä„ , +Ä,Ä , +Ä€,Ä€ , +ả,ả , +Ả,Ả , +ạ,ạ , +Ạ,Ạ, +ặ,ặ , +Ặ,Ặ , +áº,Ạ, +Ậ,Ậ , +aa,aa , +aA,aA , +Aa,Aa , +AA,AA , +ae,ae , +aE,aE , +Ae,Ae , +AE,AE , +æ,æ , +Æ,Æ , +ǽ,ǽ , +Ǽ,Ǽ , +Ç£,Ç£ , +Ç¢,Ç¢ , +b,b , +B,B , +Æ€,Æ€ , +Æ,Æ , +ƃ,ƃ , +Æ‚,Æ‚ , +c,c , +C,C , +ć,ć , +Ć,Ć , +ĉ,ĉ , +Ĉ,Ĉ , +Ä,Ä , +ÄŒ,ÄŒ , +Ä‹,Ä‹ , +ÄŠ,ÄŠ , +ç,ç , +Ç,Ç , +ch,ch , +cH,cH , +Ch,Ch , +CH,CH , +ƈ,ƈ , +Ƈ,Ƈ , +d,d , +D,D , +Ä,Ä , +ÄŽ,ÄŽ , +Ä‘,Ä‘ , +Ä,Ä , +ð,ð , +Ã,à , +dz,dz , +dZ,dZ , +dz,dz , +Dz,Dz , +DZ,DZ , +Dz,Dz , +DZ,DZ , +dž,dž , +dŽ,dŽ , +dž,dž , +Dž,Dž , +DŽ,DŽ , +Ç…,Ç… , +Ç„,Ç„ , +Ɖ,Ɖ , +ÆŠ,ÆŠ , +ÆŒ,ÆŒ , +Æ‹,Æ‹ , +e,e , +E,E , +é,é , +É,É , +è,è , +È,È , +Ä•,Ä• , +Ä”,Ä” , +ê,ê , +Ê,Ê , +ế,ế , +Ế,Ế , +á»,á» , +Ề,Ề , +á»…,á»… , +Ễ,Ễ , +ể,ể , +Ể,Ể , +Ä›,Ä› , +Äš,Äš , +ë,ë , +Ë,Ë , +ẽ,ẽ , +Ẽ,Ẽ , +Ä—,Ä— , +Ä–,Ä– , +Ä™,Ä™ , +Ę,Ę , +Ä“,Ä“ , +Ä’,Ä’ , +ẻ,ẻ , +Ẻ,Ẻ , +ẹ,ẹ , +Ẹ,Ẹ , +ệ,ệ , +Ệ,Ệ , +Ç,Ç , +ÆŽ,ÆŽ , +Æ,Æ , +Æ,Æ , +f,f , +F,F , +Æ’,Æ’ , +Æ‘,Æ‘ , +g,g , +G,G , +ǵ,ǵ , +Ç´,Ç´ , +ÄŸ,ÄŸ , +Äž,Äž , +Ä,Ä , +Äœ,Äœ , +ǧ,ǧ , +Ǧ,Ǧ , +Ä¡,Ä¡ , +Ä ,Ä , +Ä£,Ä£ , +Ä¢,Ä¢ , +Ç¥,Ç¥ , +Ǥ,Ǥ , +Æ“,Æ“ , +Æ”,Æ” , +Æ£,Æ£ , +Æ¢,Æ¢ , +h,h , +H,H , +Ä¥,Ä¥ , +Ĥ,Ĥ , +ħ,ħ , +Ħ,Ħ , +Æ•,Æ• , +Ƕ,Ƕ , +i,i , +I,I , +Ã,à , +Ã,à , +ì,ì , +ÃŒ,ÃŒ , +Ä,Ä , +Ĭ,Ĭ , +î,î , +ÃŽ,ÃŽ , +Ç,Ç , +Ç,Ç , +ï,ï , +Ã,à , +Ä©,Ä© , +Ĩ,Ĩ , +İ,İ , +į,į , +Ä®,Ä® , +Ä«,Ä« , +Ī,Ī , +ỉ,ỉ , +Ỉ,Ỉ , +ị,ị , +Ị,Ị , +ij,ij , +iJ,iJ , +ij,ij , +Ij,Ij , +IJ,IJ , +IJ,IJ , +ı,ı , +Æ—,Æ— , +Æ–,Æ– , +j,j , +J,J , +ĵ,ĵ , +Ä´,Ä´ , +ǰ,ǰ , +k,k , +K,K , +Ç©,Ç© , +Ǩ,Ǩ , +Ä·,Ä· , +Ķ,Ķ , +Æ™,Æ™ , +Ƙ,Ƙ , +l,l , +L,L , +ĺ,ĺ , +Ĺ,Ĺ , +ľ,ľ , +Ľ,Ľ , +ļ,ļ , +Ä»,Ä» , +Å‚,Å‚ , +Å,Å , +Å€,Å€ , +Ä¿,Ä¿ , +lj,lj , +lJ,lJ , +lj,lj , +Lj,Lj , +LJ,LJ , +Lj,Lj , +LJ,LJ , +ll,ll , +lL,lL , +Ll,Ll , +LL,LL , +Æš,Æš , +Æ›,Æ› , +m,m , +M,M , +n,n , +N,N , +Å„,Å„ , +Ń,Ń , +ǹ,ǹ , +Ǹ,Ǹ , +ň,ň , +Ň,Ň , +ñ,ñ , +Ñ,Ñ , +ņ,ņ , +Å…,Å… , +nj,nj , +nJ,nJ , +ÇŒ,ÇŒ , +Nj,Nj , +NJ,NJ , +Ç‹,Ç‹ , +ÇŠ,ÇŠ , +Æ,Æ , +Æž,Æž , +Å‹,Å‹ , +ÅŠ,ÅŠ , +o,o , +O,O , +ó,ó , +Ó,Ó , +ò,ò , +Ã’,Ã’ , +Å,Å , +ÅŽ,ÅŽ , +ô,ô , +Ô,Ô , +ố,ố , +á»,á» , +ồ,ồ , +á»’,á»’ , +á»—,á»— , +á»–,á»– , +ổ,ổ , +á»”,á»” , +Ç’,Ç’ , +Ç‘,Ç‘ , +ö,ö , +Ö,Ö , +Å‘,Å‘ , +Å,Å , +õ,õ , +Õ,Õ , +ø,ø , +Ø,Ø , +Ç¿,Ç¿ , +Ǿ,Ǿ , +Ç«,Ç« , +Ǫ,Ǫ , +Ç,Ç , +Ǭ,Ǭ , +Å,Å , +ÅŒ,ÅŒ , +á»,á» , +Ỏ,Ỏ , +Æ¡,Æ¡ , +Æ ,Æ , +á»›,á»› , +Ớ,Ớ , +á»,á» , +Ờ,Ờ , +ỡ,ỡ , +á» ,á» , +ở,ở , +Ở,Ở , +ợ,ợ , +Ợ,Ợ , +á»,á» , +Ọ,Ọ , +á»™,á»™ , +Ộ,Ộ , +oe,oe , +oE,oE , +Oe,Oe , +OE,OE , +Å“,Å“ , +Å’,Å’ , +Ɔ,Ɔ , +ÆŸ,ÆŸ , +p,p , +P,P , +Æ¥,Æ¥ , +Ƥ,Ƥ , +q,q , +Q,Q , +ĸ,ĸ , +r,r , +R,R , +Å•,Å• , +Å”,Å” , +Å™,Å™ , +Ř,Ř , +Å—,Å— , +Å–,Å– , +rr,rr , +rR,rR , +Rr,Rr , +RR,RR , +Ʀ,Ʀ , +s,s , +S,S , +Å›,Å› , +Åš,Åš , +Å,Å , +Åœ,Åœ , +Å¡,Å¡ , +Å ,Å , +ÅŸ,ÅŸ , +Åž,Åž , +Å¿,Å¿ , +ss,ss , +sS,sS , +Ss,Ss , +SS,SS , +ß,ß , +ẞ,ẞ , +Æ©,Æ© , +ƪ,ƪ , +t,t , +T,T , +Å¥,Å¥ , +Ť,Ť , +Å£,Å£ , +Å¢,Å¢ , +ƾ,ƾ , +ŧ,ŧ , +Ŧ,Ŧ , +Æ«,Æ« , +Æ,Æ , +Ƭ,Ƭ , +Æ®,Æ® , +u,u , +U,U , +ú,ú , +Ú,Ú , +ù,ù , +Ù,Ù , +Å,Å , +Ŭ,Ŭ , +û,û , +Û,Û , +Ç”,Ç” , +Ç“,Ç“ , +ů,ů , +Å®,Å® , +ü,ü , +Ü,Ü , +ǘ,ǘ , +Ç—,Ç— , +Çœ,Çœ , +Ç›,Ç› , +Çš,Çš , +Ç™,Ç™ , +Ç–,Ç– , +Ç•,Ç• , +ű,ű , +Ű,Ű , +Å©,Å© , +Ũ,Ũ , +ų,ų , +Ų,Ų , +Å«,Å« , +Ū,Ū , +á»§,á»§ , +Ủ,Ủ , +ư,ư , +Ư,Ư , +ứ,ứ , +Ứ,Ứ , +ừ,ừ , +Ừ,Ừ , +ữ,ữ , +á»®,á»® , +á»,á» , +Ử,Ử , +á»±,á»± , +á»°,á»° , +ụ,ụ , +Ụ,Ụ , +Æœ,Æœ , +Ʊ,Ʊ , +v,v , +V,V , +Ʋ,Ʋ , +w,w , +W,W , +ŵ,ŵ , +Å´,Å´ , +x,x , +X,X , +y,y , +Y,Y , +ý,ý , +Ã,à , +Å·,Å· , +Ŷ,Ŷ , +ÿ,ÿ , +Ÿ,Ÿ , +Æ´,Æ´ , +Ƴ,Ƴ , +z,z , +Z,Z , +ź,ź , +Ź,Ź , +ž,ž , +Ž,Ž , +ż,ż , +Å»,Å» , +Æ,Æ , +ƶ,ƶ , +Ƶ,Ƶ , +Æ·,Æ· , +ǯ,ǯ , +Ç®,Ç® , +ƹ,ƹ , +Ƹ,Ƹ , +ƺ,ƺ , +þ,þ , +Þ,Þ , +Æ¿,Æ¿ , +Ç·,Ç· , +Æ»,Æ» , +ƨ,ƨ , +Ƨ,Ƨ , +ƽ,ƽ , +Ƽ,Ƽ , +Æ…,Æ… , +Æ„,Æ„ , +ʼn,ʼn , +Ç€,Ç€ , +Ç,Ç , +Ç‚,Ç‚ , +ǃ,ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_nopad_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷, +÷ , +×, +× , +A,a, +Ã,á, +À,à , +Ä‚,ă, +Ắ,ắ, +Ằ,ằ, +Ẵ,ẵ, +Ẳ,ẳ, +Â,â, +Ấ,ấ, +Ầ,ầ, +Ẫ,ẫ, +Ẩ,ẩ, +Ç,ÇŽ, +Ã…,Ã¥, +Ǻ,Ç», +Ä,ä, +Çž,ÇŸ, +Ã,ã, +Ç ,Ç¡, +Ä„,Ä…, +Ä€,Ä, +Ả,ả, +Ạ,ạ, +Ặ,ặ, +Ậ,áº, +A ,a , +à ,á , +À ,à , +Ä‚ ,ă , +Ắ ,ắ , +Ằ ,ằ , +Ẵ ,ẵ , +Ẳ ,ẳ , + ,â , +Ấ ,ấ , +Ầ ,ầ , +Ẫ ,ẫ , +Ẩ ,ẩ , +Ç ,ÇŽ , +Ã… ,Ã¥ , +Ǻ ,Ç» , +Ä ,ä , +Çž ,ÇŸ , +à ,ã , +Ç ,Ç¡ , +Ä„ ,Ä… , +Ä€ ,Ä , +Ả ,ả , +Ạ,ạ , +Ặ ,ặ , +Ậ ,Ạ, +AA,Aa,aA,aa, +AA ,Aa ,aA ,aa , +AE,Ae,aE,ae, +Æ,æ, +Ǽ,ǽ, +Ç¢,Ç£, +AE ,Ae ,aE ,ae , +Æ ,æ , +Ǽ ,ǽ , +Ç¢ ,Ç£ , +B,b, +B ,b , +Æ€, +Æ€ , +Æ, +Æ , +Æ‚,ƃ, +Æ‚ ,ƃ , +C,c, +Ć,ć, +Ĉ,ĉ, +ÄŒ,Ä, +ÄŠ,Ä‹, +Ç,ç, +C ,c , +Ć ,ć , +Ĉ ,ĉ , +ÄŒ ,Ä , +ÄŠ ,Ä‹ , +Ç ,ç , +CH,Ch,cH,ch, +CH ,Ch ,cH ,ch , +Ƈ,ƈ, +Ƈ ,ƈ , +D,d, +ÄŽ,Ä, +Ä,Ä‘, +Ã,ð, +D ,d , +ÄŽ ,Ä , +Ä ,Ä‘ , +à ,ð , +DZ,Dz,dZ,dz,DZ,Dz,dz, +DŽ,Dž,dŽ,dž,Ç„,Ç…,dž, +DZ ,Dz ,dZ ,dz ,DZ ,Dz ,dz , +DŽ ,Dž ,dŽ ,dž ,Ç„ ,Ç… ,dž , +Ɖ, +Ɖ , +ÆŠ, +ÆŠ , +Æ‹,ÆŒ, +Æ‹ ,ÆŒ , +E,e, +É,é, +È,è, +Ä”,Ä•, +Ê,ê, +Ế,ế, +Ề,á», +Ễ,á»…, +Ể,ể, +Äš,Ä›, +Ë,ë, +Ẽ,ẽ, +Ä–,Ä—, +Ę,Ä™, +Ä’,Ä“, +Ẻ,ẻ, +Ẹ,ẹ, +Ệ,ệ, +E ,e , +É ,é , +È ,è , +Ä” ,Ä• , +Ê ,ê , +Ế ,ế , +Ề ,á» , +Ễ ,á»… , +Ể ,ể , +Äš ,Ä› , +Ë ,ë , +Ẽ ,ẽ , +Ä– ,Ä— , +Ę ,Ä™ , +Ä’ ,Ä“ , +Ẻ ,ẻ , +Ẹ ,ẹ , +Ệ ,ệ , +ÆŽ,Ç, +ÆŽ ,Ç , +Æ, +Æ , +Æ, +Æ , +F,f, +F ,f , +Æ‘,Æ’, +Æ‘ ,Æ’ , +G,g, +Ç´,ǵ, +Äž,ÄŸ, +Äœ,Ä, +Ǧ,ǧ, +Ä ,Ä¡, +Ä¢,Ä£, +G ,g , +Ç´ ,ǵ , +Äž ,ÄŸ , +Äœ ,Ä , +Ǧ ,ǧ , +Ä ,Ä¡ , +Ä¢ ,Ä£ , +Ǥ,Ç¥, +Ǥ ,Ç¥ , +Æ“, +Æ“ , +Æ”, +Æ” , +Æ¢,Æ£, +Æ¢ ,Æ£ , +H,h, +Ĥ,Ä¥, +Ħ,ħ, +H ,h , +Ĥ ,Ä¥ , +Ħ ,ħ , +Æ•,Ƕ, +Æ• ,Ƕ , +I,i, +Ã,Ã, +ÃŒ,ì, +Ĭ,Ä, +ÃŽ,î, +Ç,Ç, +Ã,ï, +Ĩ,Ä©, +İ, +Ä®,į, +Ī,Ä«, +Ỉ,ỉ, +Ị,ị, +I ,i , +à ,à , +ÃŒ ,ì , +Ĭ ,Ä , +ÃŽ ,î , +Ç ,Ç , +à ,ï , +Ĩ ,Ä© , +İ , +Ä® ,į , +Ī ,Ä« , +Ỉ ,ỉ , +Ị ,ị , +IJ,Ij,iJ,ij,IJ,ij, +IJ ,Ij ,iJ ,ij ,IJ ,ij , +ı, +ı , +Æ—, +Æ— , +Æ–, +Æ– , +J,j, +Ä´,ĵ, +ǰ, +J ,j , +Ä´ ,ĵ , +ǰ , +K,k, +Ǩ,Ç©, +Ķ,Ä·, +K ,k , +Ǩ ,Ç© , +Ķ ,Ä· , +Ƙ,Æ™, +Ƙ ,Æ™ , +L,l, +Ĺ,ĺ, +Ľ,ľ, +Ä»,ļ, +Å,Å‚, +Ä¿,Å€, +L ,l , +Ĺ ,ĺ , +Ľ ,ľ , +Ä» ,ļ , +Å ,Å‚ , +Ä¿ ,Å€ , +LJ,Lj,lJ,lj,LJ,Lj,lj, +LJ ,Lj ,lJ ,lj ,LJ ,Lj ,lj , +LL,Ll,lL,ll, +LL ,Ll ,lL ,ll , +Æš, +Æš , +Æ›, +Æ› , +M,m, +M ,m , +N,n, +Ń,Å„, +Ǹ,ǹ, +Ň,ň, +Ñ,ñ, +Å…,ņ, +N ,n , +Ń ,Å„ , +Ǹ ,ǹ , +Ň ,ň , +Ñ ,ñ , +Å… ,ņ , +NJ,Nj,nJ,nj,ÇŠ,Ç‹,ÇŒ, +NJ ,Nj ,nJ ,nj ,ÇŠ ,Ç‹ ,ÇŒ , +Æ, +Æ , +Æž, +Æž , +ÅŠ,Å‹, +ÅŠ ,Å‹ , +O,o, +Ó,ó, +Ã’,ò, +ÅŽ,Å, +Ô,ô, +á»,ố, +á»’,ồ, +á»–,á»—, +á»”,ổ, +Ç‘,Ç’, +Ö,ö, +Å,Å‘, +Õ,õ, +Ø,ø, +Ǿ,Ç¿, +Ǫ,Ç«, +Ǭ,Ç, +ÅŒ,Å, +Ỏ,á», +Æ ,Æ¡, +Ớ,á»›, +Ờ,á», +á» ,ỡ, +Ở,ở, +Ợ,ợ, +Ọ,á», +Ộ,á»™, +O ,o , +Ó ,ó , +Ã’ ,ò , +ÅŽ ,Å , +Ô ,ô , +á» ,ố , +á»’ ,ồ , +á»– ,á»— , +á»” ,ổ , +Ç‘ ,Ç’ , +Ö ,ö , +Å ,Å‘ , +Õ ,õ , +Ø ,ø , +Ǿ ,Ç¿ , +Ǫ ,Ç« , +Ǭ ,Ç , +ÅŒ ,Å , +Ỏ ,á» , +Æ ,Æ¡ , +Ớ ,á»› , +Ờ ,á» , +á» ,ỡ , +Ở ,ở , +Ợ ,ợ , +Ọ ,á» , +Ộ ,á»™ , +OE,Oe,oE,oe, +Å’,Å“, +OE ,Oe ,oE ,oe , +Å’ ,Å“ , +Ɔ, +Ɔ , +ÆŸ, +ÆŸ , +P,p, +P ,p , +Ƥ,Æ¥, +Ƥ ,Æ¥ , +Q,q, +Q ,q , +ĸ, +ĸ , +R,r, +Å”,Å•, +Ř,Å™, +Å–,Å—, +R ,r , +Å” ,Å• , +Ř ,Å™ , +Å– ,Å— , +RR,Rr,rR,rr, +RR ,Rr ,rR ,rr , +Ʀ, +Ʀ , +S,s, +Åš,Å›, +Åœ,Å, +Å ,Å¡, +Åž,ÅŸ, +Å¿, +S ,s , +Åš ,Å› , +Åœ ,Å , +Å ,Å¡ , +Åž ,ÅŸ , +Å¿ , +SS,Ss,sS,ss, +ß,ẞ, +SS ,Ss ,sS ,ss , +ß ,ẞ , +Æ©, +Æ© , +ƪ, +ƪ , +T,t, +Ť,Å¥, +Å¢,Å£, +T ,t , +Ť ,Å¥ , +Å¢ ,Å£ , +ƾ, +ƾ , +Ŧ,ŧ, +Ŧ ,ŧ , +Æ«, +Æ« , +Ƭ,Æ, +Ƭ ,Æ , +Æ®, +Æ® , +U,u, +Ú,ú, +Ù,ù, +Ŭ,Å, +Û,û, +Ç“,Ç”, +Å®,ů, +Ü,ü, +Ç—,ǘ, +Ç›,Çœ, +Ç™,Çš, +Ç•,Ç–, +Ű,ű, +Ũ,Å©, +Ų,ų, +Ū,Å«, +Ủ,á»§, +Ư,ư, +Ứ,ứ, +Ừ,ừ, +á»®,ữ, +Ử,á», +á»°,á»±, +Ụ,ụ, +U ,u , +Ú ,ú , +Ù ,ù , +Ŭ ,Å , +Û ,û , +Ç“ ,Ç” , +Å® ,ů , +Ü ,ü , +Ç— ,ǘ , +Ç› ,Çœ , +Ç™ ,Çš , +Ç• ,Ç– , +Ű ,ű , +Ũ ,Å© , +Ų ,ų , +Ū ,Å« , +Ủ ,á»§ , +Ư ,ư , +Ứ ,ứ , +Ừ ,ừ , +á»® ,ữ , +Ử ,á» , +á»° ,á»± , +Ụ ,ụ , +Æœ, +Æœ , +Ʊ, +Ʊ , +V,v, +V ,v , +Ʋ, +Ʋ , +W,w, +Å´,ŵ, +W ,w , +Å´ ,ŵ , +X,x, +X ,x , +Y,y, +Ã,ý, +Ŷ,Å·, +ÿ,Ÿ, +Y ,y , +à ,ý , +Ŷ ,Å· , +ÿ ,Ÿ , +Ƴ,Æ´, +Ƴ ,Æ´ , +Z,z, +Ź,ź, +Ž,ž, +Å»,ż, +Z ,z , +Ź ,ź , +Ž ,ž , +Å» ,ż , +Æ, +Æ , +Ƶ,ƶ, +Ƶ ,ƶ , +Æ·, +Ç®,ǯ, +Æ· , +Ç® ,ǯ , +Ƹ,ƹ, +Ƹ ,ƹ , +ƺ, +ƺ , +Þ,þ, +Þ ,þ , +Æ¿,Ç·, +Æ¿ ,Ç· , +Æ», +Æ» , +Ƨ,ƨ, +Ƨ ,ƨ , +Ƽ,ƽ, +Ƽ ,ƽ , +Æ„,Æ…, +Æ„ ,Æ… , +ʼn, +ʼn , +Ç€, +Ç€ , +Ç, +Ç , +Ç‚, +Ç‚ , +ǃ, +ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷,÷ , +×,× , +A,A ,a,a , +Ã,à ,á,á , +À,À ,à ,à , +Ä‚,Ä‚ ,ă,ă , +Ắ,Ắ ,ắ,ắ , +Ằ,Ằ ,ằ,ằ , +Ẵ,Ẵ ,ẵ,ẵ , +Ẳ,Ẳ ,ẳ,ẳ , +Â, ,â,â , +Ấ,Ấ ,ấ,ấ , +Ầ,Ầ ,ầ,ầ , +Ẫ,Ẫ ,ẫ,ẫ , +Ẩ,Ẩ ,ẩ,ẩ , +Ç,Ç ,ÇŽ,ÇŽ , +Ã…,Ã… ,Ã¥,Ã¥ , +Ǻ,Ǻ ,Ç»,Ç» , +Ä,Ä ,ä,ä , +Çž,Çž ,ÇŸ,ÇŸ , +Ã,à ,ã,ã , +Ç ,Ç ,Ç¡,Ç¡ , +Ä„,Ä„ ,Ä…,Ä… , +Ä€,Ä€ ,Ä,Ä , +Ả,Ả ,ả,ả , +Ạ,Ạ,ạ,ạ , +Ặ,Ặ ,ặ,ặ , +Ậ,Ậ ,áº,Ạ, +AA,AA ,Aa,Aa ,aA,aA ,aa,aa , +AE,AE ,Ae,Ae ,aE,aE ,ae,ae , +Æ,Æ ,æ,æ , +Ǽ,Ǽ ,ǽ,ǽ , +Ç¢,Ç¢ ,Ç£,Ç£ , +B,B ,b,b , +Æ€,Æ€ , +Æ,Æ , +Æ‚,Æ‚ ,ƃ,ƃ , +C,C ,c,c , +Ć,Ć ,ć,ć , +Ĉ,Ĉ ,ĉ,ĉ , +ÄŒ,ÄŒ ,Ä,Ä , +ÄŠ,ÄŠ ,Ä‹,Ä‹ , +Ç,Ç ,ç,ç , +CH,CH ,Ch,Ch ,cH,cH ,ch,ch , +Ƈ,Ƈ ,ƈ,ƈ , +D,D ,d,d , +ÄŽ,ÄŽ ,Ä,Ä , +Ä,Ä ,Ä‘,Ä‘ , +Ã,à ,ð,ð , +DZ,DZ ,Dz,Dz ,dZ,dZ ,dz,dz ,DZ,DZ ,Dz,Dz ,dz,dz , +DŽ,DŽ ,Dž,Dž ,dŽ,dŽ ,dž,dž ,Ç„,Ç„ ,Ç…,Ç… ,dž,dž , +Ɖ,Ɖ , +ÆŠ,ÆŠ , +Æ‹,Æ‹ ,ÆŒ,ÆŒ , +E,E ,e,e , +É,É ,é,é , +È,È ,è,è , +Ä”,Ä” ,Ä•,Ä• , +Ê,Ê ,ê,ê , +Ế,Ế ,ế,ế , +Ề,Ề ,á»,á» , +Ễ,Ễ ,á»…,á»… , +Ể,Ể ,ể,ể , +Äš,Äš ,Ä›,Ä› , +Ë,Ë ,ë,ë , +Ẽ,Ẽ ,ẽ,ẽ , +Ä–,Ä– ,Ä—,Ä— , +Ę,Ę ,Ä™,Ä™ , +Ä’,Ä’ ,Ä“,Ä“ , +Ẻ,Ẻ ,ẻ,ẻ , +Ẹ,Ẹ ,ẹ,ẹ , +Ệ,Ệ ,ệ,ệ , +ÆŽ,ÆŽ ,Ç,Ç , +Æ,Æ , +Æ,Æ , +F,F ,f,f , +Æ‘,Æ‘ ,Æ’,Æ’ , +G,G ,g,g , +Ç´,Ç´ ,ǵ,ǵ , +Äž,Äž ,ÄŸ,ÄŸ , +Äœ,Äœ ,Ä,Ä , +Ǧ,Ǧ ,ǧ,ǧ , +Ä ,Ä ,Ä¡,Ä¡ , +Ä¢,Ä¢ ,Ä£,Ä£ , +Ǥ,Ǥ ,Ç¥,Ç¥ , +Æ“,Æ“ , +Æ”,Æ” , +Æ¢,Æ¢ ,Æ£,Æ£ , +H,H ,h,h , +Ĥ,Ĥ ,Ä¥,Ä¥ , +Ħ,Ħ ,ħ,ħ , +Æ•,Æ• ,Ƕ,Ƕ , +I,I ,i,i , +Ã,à ,Ã,à , +ÃŒ,ÃŒ ,ì,ì , +Ĭ,Ĭ ,Ä,Ä , +ÃŽ,ÃŽ ,î,î , +Ç,Ç ,Ç,Ç , +Ã,à ,ï,ï , +Ĩ,Ĩ ,Ä©,Ä© , +İ,İ , +Ä®,Ä® ,į,į , +Ī,Ī ,Ä«,Ä« , +Ỉ,Ỉ ,ỉ,ỉ , +Ị,Ị ,ị,ị , +IJ,IJ ,Ij,Ij ,iJ,iJ ,ij,ij ,IJ,IJ ,ij,ij , +ı,ı , +Æ—,Æ— , +Æ–,Æ– , +J,J ,j,j , +Ä´,Ä´ ,ĵ,ĵ , +ǰ,ǰ , +K,K ,k,k , +Ǩ,Ǩ ,Ç©,Ç© , +Ķ,Ķ ,Ä·,Ä· , +Ƙ,Ƙ ,Æ™,Æ™ , +L,L ,l,l , +Ĺ,Ĺ ,ĺ,ĺ , +Ľ,Ľ ,ľ,ľ , +Ä»,Ä» ,ļ,ļ , +Å,Å ,Å‚,Å‚ , +Ä¿,Ä¿ ,Å€,Å€ , +LJ,LJ ,Lj,Lj ,lJ,lJ ,lj,lj ,LJ,LJ ,Lj,Lj ,lj,lj , +LL,LL ,Ll,Ll ,lL,lL ,ll,ll , +Æš,Æš , +Æ›,Æ› , +M,M ,m,m , +N,N ,n,n , +Ń,Ń ,Å„,Å„ , +Ǹ,Ǹ ,ǹ,ǹ , +Ň,Ň ,ň,ň , +Ñ,Ñ ,ñ,ñ , +Å…,Å… ,ņ,ņ , +NJ,NJ ,Nj,Nj ,nJ,nJ ,nj,nj ,ÇŠ,ÇŠ ,Ç‹,Ç‹ ,ÇŒ,ÇŒ , +Æ,Æ , +Æž,Æž , +ÅŠ,ÅŠ ,Å‹,Å‹ , +O,O ,o,o , +Ó,Ó ,ó,ó , +Ã’,Ã’ ,ò,ò , +ÅŽ,ÅŽ ,Å,Å , +Ô,Ô ,ô,ô , +á»,á» ,ố,ố , +á»’,á»’ ,ồ,ồ , +á»–,á»– ,á»—,á»— , +á»”,á»” ,ổ,ổ , +Ç‘,Ç‘ ,Ç’,Ç’ , +Ö,Ö ,ö,ö , +Å,Å ,Å‘,Å‘ , +Õ,Õ ,õ,õ , +Ø,Ø ,ø,ø , +Ǿ,Ǿ ,Ç¿,Ç¿ , +Ǫ,Ǫ ,Ç«,Ç« , +Ǭ,Ǭ ,Ç,Ç , +ÅŒ,ÅŒ ,Å,Å , +Ỏ,Ỏ ,á»,á» , +Æ ,Æ ,Æ¡,Æ¡ , +Ớ,Ớ ,á»›,á»› , +Ờ,Ờ ,á»,á» , +á» ,á» ,ỡ,ỡ , +Ở,Ở ,ở,ở , +Ợ,Ợ ,ợ,ợ , +Ọ,Ọ ,á»,á» , +Ộ,Ộ ,á»™,á»™ , +OE,OE ,Oe,Oe ,oE,oE ,oe,oe , +Å’,Å’ ,Å“,Å“ , +Ɔ,Ɔ , +ÆŸ,ÆŸ , +P,P ,p,p , +Ƥ,Ƥ ,Æ¥,Æ¥ , +Q,Q ,q,q , +ĸ,ĸ , +R,R ,r,r , +Å”,Å” ,Å•,Å• , +Ř,Ř ,Å™,Å™ , +Å–,Å– ,Å—,Å— , +RR,RR ,Rr,Rr ,rR,rR ,rr,rr , +Ʀ,Ʀ , +S,S ,s,s , +Åš,Åš ,Å›,Å› , +Åœ,Åœ ,Å,Å , +Å ,Å ,Å¡,Å¡ , +Åž,Åž ,ÅŸ,ÅŸ , +Å¿,Å¿ , +SS,SS ,Ss,Ss ,sS,sS ,ss,ss , +ß,ß ,ẞ,ẞ , +Æ©,Æ© , +ƪ,ƪ , +T,T ,t,t , +Ť,Ť ,Å¥,Å¥ , +Å¢,Å¢ ,Å£,Å£ , +ƾ,ƾ , +Ŧ,Ŧ ,ŧ,ŧ , +Æ«,Æ« , +Ƭ,Ƭ ,Æ,Æ , +Æ®,Æ® , +U,U ,u,u , +Ú,Ú ,ú,ú , +Ù,Ù ,ù,ù , +Ŭ,Ŭ ,Å,Å , +Û,Û ,û,û , +Ç“,Ç“ ,Ç”,Ç” , +Å®,Å® ,ů,ů , +Ü,Ü ,ü,ü , +Ç—,Ç— ,ǘ,ǘ , +Ç›,Ç› ,Çœ,Çœ , +Ç™,Ç™ ,Çš,Çš , +Ç•,Ç• ,Ç–,Ç– , +Ű,Ű ,ű,ű , +Ũ,Ũ ,Å©,Å© , +Ų,Ų ,ų,ų , +Ū,Ū ,Å«,Å« , +Ủ,Ủ ,á»§,á»§ , +Ư,Ư ,ư,ư , +Ứ,Ứ ,ứ,ứ , +Ừ,Ừ ,ừ,ừ , +á»®,á»® ,ữ,ữ , +Ử,Ử ,á»,á» , +á»°,á»° ,á»±,á»± , +Ụ,Ụ ,ụ,ụ , +Æœ,Æœ , +Ʊ,Ʊ , +V,V ,v,v , +Ʋ,Ʋ , +W,W ,w,w , +Å´,Å´ ,ŵ,ŵ , +X,X ,x,x , +Y,Y ,y,y , +Ã,à ,ý,ý , +Ŷ,Ŷ ,Å·,Å· , +ÿ,ÿ ,Ÿ,Ÿ , +Ƴ,Ƴ ,Æ´,Æ´ , +Z,Z ,z,z , +Ź,Ź ,ź,ź , +Ž,Ž ,ž,ž , +Å»,Å» ,ż,ż , +Æ,Æ , +Ƶ,Ƶ ,ƶ,ƶ , +Æ·,Æ· , +Ç®,Ç® ,ǯ,ǯ , +Ƹ,Ƹ ,ƹ,ƹ , +ƺ,ƺ , +Þ,Þ ,þ,þ , +Æ¿,Æ¿ ,Ç·,Ç· , +Æ»,Æ» , +Ƨ,Ƨ ,ƨ,ƨ , +Ƽ,Ƽ ,ƽ,ƽ , +Æ„,Æ„ ,Æ…,Æ… , +ʼn,ʼn , +Ç€,Ç€ , +Ç,Ç , +Ç‚,Ç‚ , +ǃ,ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_nopad_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷, +÷ , +×, +× , +a,à ,á,â,ã,ä,Ã¥,Ä,ă,Ä…,ÇŽ,ÇŸ,Ç¡,Ç»,ạ,ả,ấ,ầ,ẩ,ẫ,áº,ắ,ằ,ẳ,ẵ,ặ, +A,À,Ã,Â,Ã,Ä,Ã…,Ä€,Ä‚,Ä„,Ç,Çž,Ç ,Ǻ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ, +a ,à ,á ,â ,ã ,ä ,Ã¥ ,Ä ,ă ,Ä… ,ÇŽ ,ÇŸ ,Ç¡ ,Ç» ,ạ ,ả ,ấ ,ầ ,ẩ ,ẫ ,Ạ,ắ ,ằ ,ẳ ,ẵ ,ặ , +A ,À ,à , ,à ,Ä ,Ã… ,Ä€ ,Ä‚ ,Ä„ ,Ç ,Çž ,Ç ,Ǻ ,Ạ,Ả ,Ấ ,Ầ ,Ẩ ,Ẫ ,Ậ ,Ắ ,Ằ ,Ẳ ,Ẵ ,Ặ , +aa, +aA, +Aa, +AA, +aa , +aA , +Aa , +AA , +ae, +aE, +æ,Ç£,ǽ, +Ae, +AE, +Æ,Ç¢,Ǽ, +ae , +aE , +æ ,Ç£ ,ǽ , +Ae , +AE , +Æ ,Ç¢ ,Ǽ , +b, +B, +b , +B , +Æ€, +Æ€ , +Æ, +Æ , +ƃ, +Æ‚, +ƃ , +Æ‚ , +c,ç,ć,ĉ,Ä‹,Ä, +C,Ç,Ć,Ĉ,ÄŠ,ÄŒ, +c ,ç ,ć ,ĉ ,Ä‹ ,Ä , +C ,Ç ,Ć ,Ĉ ,ÄŠ ,ÄŒ , +ch, +cH, +Ch, +CH, +ch , +cH , +Ch , +CH , +ƈ, +Ƈ, +ƈ , +Ƈ , +d,Ä,Ä‘, +ð, +D,ÄŽ,Ä, +Ã, +d ,Ä ,Ä‘ , +ð , +D ,ÄŽ ,Ä , +à , +dz,dž, +dZ,dŽ, +dz, +dž, +Dz,Dž, +DZ,DŽ, +Dz, +Ç…, +DZ, +Ç„, +dz ,dž , +dZ ,dŽ , +dz , +dž , +Dz ,Dž , +DZ ,DŽ , +Dz , +Ç… , +DZ , +Ç„ , +Ɖ, +Ɖ , +ÆŠ, +ÆŠ , +ÆŒ, +Æ‹, +ÆŒ , +Æ‹ , +e,è,é,ê,ë,Ä“,Ä•,Ä—,Ä™,Ä›,ẹ,ẻ,ẽ,ế,á»,ể,á»…,ệ, +E,È,É,Ê,Ë,Ä’,Ä”,Ä–,Ę,Äš,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ, +e ,è ,é ,ê ,ë ,Ä“ ,Ä• ,Ä— ,Ä™ ,Ä› ,ẹ ,ẻ ,ẽ ,ế ,á» ,ể ,á»… ,ệ , +E ,È ,É ,Ê ,Ë ,Ä’ ,Ä” ,Ä– ,Ę ,Äš ,Ẹ ,Ẻ ,Ẽ ,Ế ,Ề ,Ể ,Ễ ,Ệ , +Ç, +ÆŽ, +Ç , +ÆŽ , +Æ, +Æ , +Æ, +Æ , +f, +F, +f , +F , +Æ’, +Æ‘, +Æ’ , +Æ‘ , +g,Ä,ÄŸ,Ä¡,Ä£,ǧ,ǵ, +G,Äœ,Äž,Ä ,Ä¢,Ǧ,Ç´, +g ,Ä ,ÄŸ ,Ä¡ ,Ä£ ,ǧ ,ǵ , +G ,Äœ ,Äž ,Ä ,Ä¢ ,Ǧ ,Ç´ , +Ç¥, +Ǥ, +Ç¥ , +Ǥ , +Æ“, +Æ“ , +Æ”, +Æ” , +Æ£, +Æ¢, +Æ£ , +Æ¢ , +h,Ä¥,ħ, +H,Ĥ,Ħ, +h ,Ä¥ ,ħ , +H ,Ĥ ,Ħ , +Æ•, +Ƕ, +Æ• , +Ƕ , +i,ì,Ã,î,ï,Ä©,Ä«,Ä,į,Ç,ỉ,ị, +I,ÃŒ,Ã,ÃŽ,Ã,Ĩ,Ī,Ĭ,Ä®,İ,Ç,Ỉ,Ị, +i ,ì ,à ,î ,ï ,Ä© ,Ä« ,Ä ,į ,Ç ,ỉ ,ị , +I ,ÃŒ ,à ,ÃŽ ,à ,Ĩ ,Ī ,Ĭ ,Ä® ,İ ,Ç ,Ỉ ,Ị , +ij, +iJ, +ij, +Ij, +IJ, +IJ, +ij , +iJ , +ij , +Ij , +IJ , +IJ , +ı, +ı , +Æ—, +Æ— , +Æ–, +Æ– , +j,ĵ,ǰ, +J,Ä´, +j ,ĵ ,ǰ , +J ,Ä´ , +k,Ä·,Ç©, +K,Ķ,Ǩ, +k ,Ä· ,Ç© , +K ,Ķ ,Ǩ , +Æ™, +Ƙ, +Æ™ , +Ƙ , +l,ĺ,ļ,ľ,Å€,Å‚, +L,Ĺ,Ä»,Ľ,Ä¿,Å, +l ,ĺ ,ļ ,ľ ,Å€ ,Å‚ , +L ,Ĺ ,Ä» ,Ľ ,Ä¿ ,Å , +lj, +lJ, +lj, +Lj, +LJ, +Lj, +LJ, +lj , +lJ , +lj , +Lj , +LJ , +Lj , +LJ , +ll, +lL, +Ll, +LL, +ll , +lL , +Ll , +LL , +Æš, +Æš , +Æ›, +Æ› , +m, +M, +m , +M , +n,ñ,Å„,ņ,ň,ǹ, +N,Ñ,Ń,Å…,Ň,Ǹ, +n ,ñ ,Å„ ,ņ ,ň ,ǹ , +N ,Ñ ,Ń ,Å… ,Ň ,Ǹ , +nj, +nJ, +ÇŒ, +Nj, +NJ, +Ç‹, +ÇŠ, +nj , +nJ , +ÇŒ , +Nj , +NJ , +Ç‹ , +ÇŠ , +Æ, +Æ , +Æž, +Æž , +Å‹, +ÅŠ, +Å‹ , +ÅŠ , +o,ò,ó,ô,õ,ö,ø,Å,Å,Å‘,Æ¡,Ç’,Ç«,Ç,Ç¿,á»,á»,ố,ồ,ổ,á»—,á»™,á»›,á»,ở,ỡ,ợ, +O,Ã’,Ó,Ô,Õ,Ö,Ø,ÅŒ,ÅŽ,Å,Æ ,Ç‘,Ǫ,Ǭ,Ǿ,Ọ,Ỏ,á»,á»’,á»”,á»–,Ộ,Ớ,Ờ,Ở,á» ,Ợ, +o ,ò ,ó ,ô ,õ ,ö ,ø ,Å ,Å ,Å‘ ,Æ¡ ,Ç’ ,Ç« ,Ç ,Ç¿ ,á» ,á» ,ố ,ồ ,ổ ,á»— ,á»™ ,á»› ,á» ,ở ,ỡ ,ợ , +O ,Ã’ ,Ó ,Ô ,Õ ,Ö ,Ø ,ÅŒ ,ÅŽ ,Å ,Æ ,Ç‘ ,Ǫ ,Ǭ ,Ǿ ,Ọ ,Ỏ ,á» ,á»’ ,á»” ,á»– ,Ộ ,Ớ ,Ờ ,Ở ,á» ,Ợ , +oe, +oE, +Å“, +Oe, +OE, +Å’, +oe , +oE , +Å“ , +Oe , +OE , +Å’ , +Ɔ, +Ɔ , +ÆŸ, +ÆŸ , +p, +P, +p , +P , +Æ¥, +Ƥ, +Æ¥ , +Ƥ , +q, +Q, +q , +Q , +ĸ, +ĸ , +r,Å•,Å—,Å™, +R,Å”,Å–,Ř, +r ,Å• ,Å— ,Å™ , +R ,Å” ,Å– ,Ř , +rr, +rR, +Rr, +RR, +rr , +rR , +Rr , +RR , +Ʀ, +Ʀ , +s,Å›,Å,ÅŸ,Å¡, +Å¿, +S,Åš,Åœ,Åž,Å , +s ,Å› ,Å ,ÅŸ ,Å¡ , +Å¿ , +S ,Åš ,Åœ ,Åž ,Å , +ss, +sS, +ß, +Ss, +SS, +ẞ, +ss , +sS , +ß , +Ss , +SS , +ẞ , +Æ©, +Æ© , +ƪ, +ƪ , +t,Å£,Å¥, +T,Å¢,Ť, +t ,Å£ ,Å¥ , +T ,Å¢ ,Ť , +ƾ, +ƾ , +ŧ, +Ŧ, +ŧ , +Ŧ , +Æ«, +Æ« , +Æ, +Ƭ, +Æ , +Ƭ , +Æ®, +Æ® , +u,ù,ú,û,ü,Å©,Å«,Å,ů,ű,ų,ư,Ç”,Ç–,ǘ,Çš,Çœ,ụ,á»§,ứ,ừ,á»,ữ,á»±, +U,Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Å®,Ű,Ų,Ư,Ç“,Ç•,Ç—,Ç™,Ç›,Ụ,Ủ,Ứ,Ừ,Ử,á»®,á»°, +u ,ù ,ú ,û ,ü ,Å© ,Å« ,Å ,ů ,ű ,ų ,ư ,Ç” ,Ç– ,ǘ ,Çš ,Çœ ,ụ ,á»§ ,ứ ,ừ ,á» ,ữ ,á»± , +U ,Ù ,Ú ,Û ,Ü ,Ũ ,Ū ,Ŭ ,Å® ,Ű ,Ų ,Ư ,Ç“ ,Ç• ,Ç— ,Ç™ ,Ç› ,Ụ ,Ủ ,Ứ ,Ừ ,Ử ,á»® ,á»° , +Æœ, +Æœ , +Ʊ, +Ʊ , +v, +V, +v , +V , +Ʋ, +Ʋ , +w,ŵ, +W,Å´, +w ,ŵ , +W ,Å´ , +x, +X, +x , +X , +y,ý,ÿ,Å·, +Y,Ã,Ŷ,Ÿ, +y ,ý ,ÿ ,Å· , +Y ,à ,Ŷ ,Ÿ , +Æ´, +Ƴ, +Æ´ , +Ƴ , +z,ź,ż,ž, +Z,Ź,Å»,Ž, +z ,ź ,ż ,ž , +Z ,Ź ,Å» ,Ž , +Æ, +Æ , +ƶ, +Ƶ, +ƶ , +Ƶ , +ǯ, +Æ·,Ç®, +ǯ , +Æ· ,Ç® , +ƹ, +Ƹ, +ƹ , +Ƹ , +ƺ, +ƺ , +þ, +Þ, +þ , +Þ , +Æ¿, +Ç·, +Æ¿ , +Ç· , +Æ», +Æ» , +ƨ, +Ƨ, +ƨ , +Ƨ , +ƽ, +Ƽ, +ƽ , +Ƽ , +Æ…, +Æ„, +Æ… , +Æ„ , +ʼn, +ʼn , +Ç€, +Ç€ , +Ç, +Ç , +Ç‚, +Ç‚ , +ǃ, +ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷,÷ , +×,× , +a,a ,à ,à ,á,á ,â,â ,ã,ã ,ä,ä ,Ã¥,Ã¥ ,Ä,Ä ,ă,ă ,Ä…,Ä… ,ÇŽ,ÇŽ ,ÇŸ,ÇŸ ,Ç¡,Ç¡ ,Ç»,Ç» ,ạ,ạ ,ả,ả ,ấ,ấ ,ầ,ầ ,ẩ,ẩ ,ẫ,ẫ ,áº,Ạ,ắ,ắ ,ằ,ằ ,ẳ,ẳ ,ẵ,ẵ ,ặ,ặ , +A,A ,À,À ,Ã,à ,Â, ,Ã,à ,Ä,Ä ,Ã…,Ã… ,Ä€,Ä€ ,Ä‚,Ä‚ ,Ä„,Ä„ ,Ç,Ç ,Çž,Çž ,Ç ,Ç ,Ǻ,Ǻ ,Ạ,Ạ,Ả,Ả ,Ấ,Ấ ,Ầ,Ầ ,Ẩ,Ẩ ,Ẫ,Ẫ ,Ậ,Ậ ,Ắ,Ắ ,Ằ,Ằ ,Ẳ,Ẳ ,Ẵ,Ẵ ,Ặ,Ặ , +aa,aa , +aA,aA , +Aa,Aa , +AA,AA , +ae,ae , +aE,aE , +æ,æ ,Ç£,Ç£ ,ǽ,ǽ , +Ae,Ae , +AE,AE , +Æ,Æ ,Ç¢,Ç¢ ,Ǽ,Ǽ , +b,b , +B,B , +Æ€,Æ€ , +Æ,Æ , +ƃ,ƃ , +Æ‚,Æ‚ , +c,c ,ç,ç ,ć,ć ,ĉ,ĉ ,Ä‹,Ä‹ ,Ä,Ä , +C,C ,Ç,Ç ,Ć,Ć ,Ĉ,Ĉ ,ÄŠ,ÄŠ ,ÄŒ,ÄŒ , +ch,ch , +cH,cH , +Ch,Ch , +CH,CH , +ƈ,ƈ , +Ƈ,Ƈ , +d,d ,Ä,Ä ,Ä‘,Ä‘ , +ð,ð , +D,D ,ÄŽ,ÄŽ ,Ä,Ä , +Ã,à , +dz,dz ,dž,dž , +dZ,dZ ,dŽ,dŽ , +dz,dz , +dž,dž , +Dz,Dz ,Dž,Dž , +DZ,DZ ,DŽ,DŽ , +Dz,Dz , +Ç…,Ç… , +DZ,DZ , +Ç„,Ç„ , +Ɖ,Ɖ , +ÆŠ,ÆŠ , +ÆŒ,ÆŒ , +Æ‹,Æ‹ , +e,e ,è,è ,é,é ,ê,ê ,ë,ë ,Ä“,Ä“ ,Ä•,Ä• ,Ä—,Ä— ,Ä™,Ä™ ,Ä›,Ä› ,ẹ,ẹ ,ẻ,ẻ ,ẽ,ẽ ,ế,ế ,á»,á» ,ể,ể ,á»…,á»… ,ệ,ệ , +E,E ,È,È ,É,É ,Ê,Ê ,Ë,Ë ,Ä’,Ä’ ,Ä”,Ä” ,Ä–,Ä– ,Ę,Ę ,Äš,Äš ,Ẹ,Ẹ ,Ẻ,Ẻ ,Ẽ,Ẽ ,Ế,Ế ,Ề,Ề ,Ể,Ể ,Ễ,Ễ ,Ệ,Ệ , +Ç,Ç , +ÆŽ,ÆŽ , +Æ,Æ , +Æ,Æ , +f,f , +F,F , +Æ’,Æ’ , +Æ‘,Æ‘ , +g,g ,Ä,Ä ,ÄŸ,ÄŸ ,Ä¡,Ä¡ ,Ä£,Ä£ ,ǧ,ǧ ,ǵ,ǵ , +G,G ,Äœ,Äœ ,Äž,Äž ,Ä ,Ä ,Ä¢,Ä¢ ,Ǧ,Ǧ ,Ç´,Ç´ , +Ç¥,Ç¥ , +Ǥ,Ǥ , +Æ“,Æ“ , +Æ”,Æ” , +Æ£,Æ£ , +Æ¢,Æ¢ , +h,h ,Ä¥,Ä¥ ,ħ,ħ , +H,H ,Ĥ,Ĥ ,Ħ,Ħ , +Æ•,Æ• , +Ƕ,Ƕ , +i,i ,ì,ì ,Ã,à ,î,î ,ï,ï ,Ä©,Ä© ,Ä«,Ä« ,Ä,Ä ,į,į ,Ç,Ç ,ỉ,ỉ ,ị,ị , +I,I ,ÃŒ,ÃŒ ,Ã,à ,ÃŽ,ÃŽ ,Ã,à ,Ĩ,Ĩ ,Ī,Ī ,Ĭ,Ĭ ,Ä®,Ä® ,İ,İ ,Ç,Ç ,Ỉ,Ỉ ,Ị,Ị , +ij,ij , +iJ,iJ , +ij,ij , +Ij,Ij , +IJ,IJ , +IJ,IJ , +ı,ı , +Æ—,Æ— , +Æ–,Æ– , +j,j ,ĵ,ĵ ,ǰ,ǰ , +J,J ,Ä´,Ä´ , +k,k ,Ä·,Ä· ,Ç©,Ç© , +K,K ,Ķ,Ķ ,Ǩ,Ǩ , +Æ™,Æ™ , +Ƙ,Ƙ , +l,l ,ĺ,ĺ ,ļ,ļ ,ľ,ľ ,Å€,Å€ ,Å‚,Å‚ , +L,L ,Ĺ,Ĺ ,Ä»,Ä» ,Ľ,Ľ ,Ä¿,Ä¿ ,Å,Å , +lj,lj , +lJ,lJ , +lj,lj , +Lj,Lj , +LJ,LJ , +Lj,Lj , +LJ,LJ , +ll,ll , +lL,lL , +Ll,Ll , +LL,LL , +Æš,Æš , +Æ›,Æ› , +m,m , +M,M , +n,n ,ñ,ñ ,Å„,Å„ ,ņ,ņ ,ň,ň ,ǹ,ǹ , +N,N ,Ñ,Ñ ,Ń,Ń ,Å…,Å… ,Ň,Ň ,Ǹ,Ǹ , +nj,nj , +nJ,nJ , +ÇŒ,ÇŒ , +Nj,Nj , +NJ,NJ , +Ç‹,Ç‹ , +ÇŠ,ÇŠ , +Æ,Æ , +Æž,Æž , +Å‹,Å‹ , +ÅŠ,ÅŠ , +o,o ,ò,ò ,ó,ó ,ô,ô ,õ,õ ,ö,ö ,ø,ø ,Å,Å ,Å,Å ,Å‘,Å‘ ,Æ¡,Æ¡ ,Ç’,Ç’ ,Ç«,Ç« ,Ç,Ç ,Ç¿,Ç¿ ,á»,á» ,á»,á» ,ố,ố ,ồ,ồ ,ổ,ổ ,á»—,á»— ,á»™,á»™ ,á»›,á»› ,á»,á» ,ở,ở ,ỡ,ỡ ,ợ,ợ , +O,O ,Ã’,Ã’ ,Ó,Ó ,Ô,Ô ,Õ,Õ ,Ö,Ö ,Ø,Ø ,ÅŒ,ÅŒ ,ÅŽ,ÅŽ ,Å,Å ,Æ ,Æ ,Ç‘,Ç‘ ,Ǫ,Ǫ ,Ǭ,Ǭ ,Ǿ,Ǿ ,Ọ,Ọ ,Ỏ,Ỏ ,á»,á» ,á»’,á»’ ,á»”,á»” ,á»–,á»– ,Ộ,Ộ ,Ớ,Ớ ,Ờ,Ờ ,Ở,Ở ,á» ,á» ,Ợ,Ợ , +oe,oe , +oE,oE , +Å“,Å“ , +Oe,Oe , +OE,OE , +Å’,Å’ , +Ɔ,Ɔ , +ÆŸ,ÆŸ , +p,p , +P,P , +Æ¥,Æ¥ , +Ƥ,Ƥ , +q,q , +Q,Q , +ĸ,ĸ , +r,r ,Å•,Å• ,Å—,Å— ,Å™,Å™ , +R,R ,Å”,Å” ,Å–,Å– ,Ř,Ř , +rr,rr , +rR,rR , +Rr,Rr , +RR,RR , +Ʀ,Ʀ , +s,s ,Å›,Å› ,Å,Å ,ÅŸ,ÅŸ ,Å¡,Å¡ , +Å¿,Å¿ , +S,S ,Åš,Åš ,Åœ,Åœ ,Åž,Åž ,Å ,Å , +ss,ss , +sS,sS , +ß,ß , +Ss,Ss , +SS,SS , +ẞ,ẞ , +Æ©,Æ© , +ƪ,ƪ , +t,t ,Å£,Å£ ,Å¥,Å¥ , +T,T ,Å¢,Å¢ ,Ť,Ť , +ƾ,ƾ , +ŧ,ŧ , +Ŧ,Ŧ , +Æ«,Æ« , +Æ,Æ , +Ƭ,Ƭ , +Æ®,Æ® , +u,u ,ù,ù ,ú,ú ,û,û ,ü,ü ,Å©,Å© ,Å«,Å« ,Å,Å ,ů,ů ,ű,ű ,ų,ų ,ư,ư ,Ç”,Ç” ,Ç–,Ç– ,ǘ,ǘ ,Çš,Çš ,Çœ,Çœ ,ụ,ụ ,á»§,á»§ ,ứ,ứ ,ừ,ừ ,á»,á» ,ữ,ữ ,á»±,á»± , +U,U ,Ù,Ù ,Ú,Ú ,Û,Û ,Ü,Ü ,Ũ,Ũ ,Ū,Ū ,Ŭ,Ŭ ,Å®,Å® ,Ű,Ű ,Ų,Ų ,Ư,Ư ,Ç“,Ç“ ,Ç•,Ç• ,Ç—,Ç— ,Ç™,Ç™ ,Ç›,Ç› ,Ụ,Ụ ,Ủ,Ủ ,Ứ,Ứ ,Ừ,Ừ ,Ử,Ử ,á»®,á»® ,á»°,á»° , +Æœ,Æœ , +Ʊ,Ʊ , +v,v , +V,V , +Ʋ,Ʋ , +w,w ,ŵ,ŵ , +W,W ,Å´,Å´ , +x,x , +X,X , +y,y ,ý,ý ,ÿ,ÿ ,Å·,Å· , +Y,Y ,Ã,à ,Ŷ,Ŷ ,Ÿ,Ÿ , +Æ´,Æ´ , +Ƴ,Ƴ , +z,z ,ź,ź ,ż,ż ,ž,ž , +Z,Z ,Ź,Ź ,Å»,Å» ,Ž,Ž , +Æ,Æ , +ƶ,ƶ , +Ƶ,Ƶ , +ǯ,ǯ , +Æ·,Æ· ,Ç®,Ç® , +ƹ,ƹ , +Ƹ,Ƹ , +ƺ,ƺ , +þ,þ , +Þ,Þ , +Æ¿,Æ¿ , +Ç·,Ç· , +Æ»,Æ» , +ƨ,ƨ , +Ƨ,Ƨ , +ƽ,ƽ , +Ƽ,Ƽ , +Æ…,Æ… , +Æ„,Æ„ , +ʼn,ʼn , +Ç€,Ç€ , +Ç,Ç , +Ç‚,Ç‚ , +ǃ,ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_nopad_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷, +÷ , +×, +× , +A,a,À,Ã,Â,Ã,Ä,Ã…,à ,á,â,ã,ä,Ã¥,Ä€,Ä,Ä‚,ă,Ä„,Ä…,Ç,ÇŽ,Çž,ÇŸ,Ç ,Ç¡,Ǻ,Ç»,Ạ,ạ,Ả,ả,Ấ,ấ,Ầ,ầ,Ẩ,ẩ,Ẫ,ẫ,Ậ,áº,Ắ,ắ,Ằ,ằ,Ẳ,ẳ,Ẵ,ẵ,Ặ,ặ, +A ,a ,À ,à , ,à ,Ä ,Ã… ,à ,á ,â ,ã ,ä ,Ã¥ ,Ä€ ,Ä ,Ä‚ ,ă ,Ä„ ,Ä… ,Ç ,ÇŽ ,Çž ,ÇŸ ,Ç ,Ç¡ ,Ǻ ,Ç» ,Ạ,ạ ,Ả ,ả ,Ấ ,ấ ,Ầ ,ầ ,Ẩ ,ẩ ,Ẫ ,ẫ ,Ậ ,Ạ,Ắ ,ắ ,Ằ ,ằ ,Ẳ ,ẳ ,Ẵ ,ẵ ,Ặ ,ặ , +AA,Aa,aA,aa, +AA ,Aa ,aA ,aa , +AE,Ae,aE,ae,Æ,æ,Ç¢,Ç£,Ǽ,ǽ, +AE ,Ae ,aE ,ae ,Æ ,æ ,Ç¢ ,Ç£ ,Ǽ ,ǽ , +B,b, +B ,b , +Æ€, +Æ€ , +Æ, +Æ , +Æ‚,ƃ, +Æ‚ ,ƃ , +C,c,Ç,ç,Ć,ć,Ĉ,ĉ,ÄŠ,Ä‹,ÄŒ,Ä, +C ,c ,Ç ,ç ,Ć ,ć ,Ĉ ,ĉ ,ÄŠ ,Ä‹ ,ÄŒ ,Ä , +CH,Ch,cH,ch, +CH ,Ch ,cH ,ch , +Ƈ,ƈ, +Ƈ ,ƈ , +D,d,Ã,ð,ÄŽ,Ä,Ä,Ä‘, +D ,d ,à ,ð ,ÄŽ ,Ä ,Ä ,Ä‘ , +DZ,Dz,DŽ,Dž,dZ,dz,dŽ,dž,Ç„,Ç…,dž,DZ,Dz,dz, +DZ ,Dz ,DŽ ,Dž ,dZ ,dz ,dŽ ,dž ,Ç„ ,Ç… ,dž ,DZ ,Dz ,dz , +Ɖ, +Ɖ , +ÆŠ, +ÆŠ , +Æ‹,ÆŒ, +Æ‹ ,ÆŒ , +E,e,È,É,Ê,Ë,è,é,ê,ë,Ä’,Ä“,Ä”,Ä•,Ä–,Ä—,Ę,Ä™,Äš,Ä›,Ẹ,ẹ,Ẻ,ẻ,Ẽ,ẽ,Ế,ế,Ề,á»,Ể,ể,Ễ,á»…,Ệ,ệ, +E ,e ,È ,É ,Ê ,Ë ,è ,é ,ê ,ë ,Ä’ ,Ä“ ,Ä” ,Ä• ,Ä– ,Ä— ,Ę ,Ä™ ,Äš ,Ä› ,Ẹ ,ẹ ,Ẻ ,ẻ ,Ẽ ,ẽ ,Ế ,ế ,Ề ,á» ,Ể ,ể ,Ễ ,á»… ,Ệ ,ệ , +ÆŽ,Ç, +ÆŽ ,Ç , +Æ, +Æ , +Æ, +Æ , +F,f, +F ,f , +Æ‘,Æ’, +Æ‘ ,Æ’ , +G,g,Äœ,Ä,Äž,ÄŸ,Ä ,Ä¡,Ä¢,Ä£,Ǧ,ǧ,Ç´,ǵ, +G ,g ,Äœ ,Ä ,Äž ,ÄŸ ,Ä ,Ä¡ ,Ä¢ ,Ä£ ,Ǧ ,ǧ ,Ç´ ,ǵ , +Ǥ,Ç¥, +Ǥ ,Ç¥ , +Æ“, +Æ“ , +Æ”, +Æ” , +Æ¢,Æ£, +Æ¢ ,Æ£ , +H,h,Ĥ,Ä¥,Ħ,ħ, +H ,h ,Ĥ ,Ä¥ ,Ħ ,ħ , +Æ•,Ƕ, +Æ• ,Ƕ , +I,i,ÃŒ,Ã,ÃŽ,Ã,ì,Ã,î,ï,Ĩ,Ä©,Ī,Ä«,Ĭ,Ä,Ä®,į,İ,Ç,Ç,Ỉ,ỉ,Ị,ị, +I ,i ,ÃŒ ,à ,ÃŽ ,à ,ì ,à ,î ,ï ,Ĩ ,Ä© ,Ī ,Ä« ,Ĭ ,Ä ,Ä® ,į ,İ ,Ç ,Ç ,Ỉ ,ỉ ,Ị ,ị , +IJ,Ij,iJ,ij,IJ,ij, +IJ ,Ij ,iJ ,ij ,IJ ,ij , +ı, +ı , +Æ—, +Æ— , +Æ–, +Æ– , +J,j,Ä´,ĵ,ǰ, +J ,j ,Ä´ ,ĵ ,ǰ , +K,k,Ķ,Ä·,Ǩ,Ç©, +K ,k ,Ķ ,Ä· ,Ǩ ,Ç© , +Ƙ,Æ™, +Ƙ ,Æ™ , +L,l,Ĺ,ĺ,Ä»,ļ,Ľ,ľ,Ä¿,Å€,Å,Å‚, +L ,l ,Ĺ ,ĺ ,Ä» ,ļ ,Ľ ,ľ ,Ä¿ ,Å€ ,Å ,Å‚ , +LJ,Lj,lJ,lj,LJ,Lj,lj, +LJ ,Lj ,lJ ,lj ,LJ ,Lj ,lj , +LL,Ll,lL,ll, +LL ,Ll ,lL ,ll , +Æš, +Æš , +Æ›, +Æ› , +M,m, +M ,m , +N,n,Ñ,ñ,Ń,Å„,Å…,ņ,Ň,ň,Ǹ,ǹ, +N ,n ,Ñ ,ñ ,Ń ,Å„ ,Å… ,ņ ,Ň ,ň ,Ǹ ,ǹ , +NJ,Nj,nJ,nj,ÇŠ,Ç‹,ÇŒ, +NJ ,Nj ,nJ ,nj ,ÇŠ ,Ç‹ ,ÇŒ , +Æ, +Æ , +Æž, +Æž , +ÅŠ,Å‹, +ÅŠ ,Å‹ , +O,o,Ã’,Ó,Ô,Õ,Ö,Ø,ò,ó,ô,õ,ö,ø,ÅŒ,Å,ÅŽ,Å,Å,Å‘,Æ ,Æ¡,Ç‘,Ç’,Ǫ,Ç«,Ǭ,Ç,Ǿ,Ç¿,Ọ,á»,Ỏ,á»,á»,ố,á»’,ồ,á»”,ổ,á»–,á»—,Ộ,á»™,Ớ,á»›,Ờ,á»,Ở,ở,á» ,ỡ,Ợ,ợ, +O ,o ,Ã’ ,Ó ,Ô ,Õ ,Ö ,Ø ,ò ,ó ,ô ,õ ,ö ,ø ,ÅŒ ,Å ,ÅŽ ,Å ,Å ,Å‘ ,Æ ,Æ¡ ,Ç‘ ,Ç’ ,Ǫ ,Ç« ,Ǭ ,Ç ,Ǿ ,Ç¿ ,Ọ ,á» ,Ỏ ,á» ,á» ,ố ,á»’ ,ồ ,á»” ,ổ ,á»– ,á»— ,Ộ ,á»™ ,Ớ ,á»› ,Ờ ,á» ,Ở ,ở ,á» ,ỡ ,Ợ ,ợ , +OE,Oe,oE,oe,Å’,Å“, +OE ,Oe ,oE ,oe ,Å’ ,Å“ , +Ɔ, +Ɔ , +ÆŸ, +ÆŸ , +P,p, +P ,p , +Ƥ,Æ¥, +Ƥ ,Æ¥ , +Q,q, +Q ,q , +ĸ, +ĸ , +R,r,Å”,Å•,Å–,Å—,Ř,Å™, +R ,r ,Å” ,Å• ,Å– ,Å— ,Ř ,Å™ , +RR,Rr,rR,rr, +RR ,Rr ,rR ,rr , +Ʀ, +Ʀ , +S,s,Åš,Å›,Åœ,Å,Åž,ÅŸ,Å ,Å¡,Å¿, +S ,s ,Åš ,Å› ,Åœ ,Å ,Åž ,ÅŸ ,Å ,Å¡ ,Å¿ , +SS,Ss,sS,ss,ß,ẞ, +SS ,Ss ,sS ,ss ,ß ,ẞ , +Æ©, +Æ© , +ƪ, +ƪ , +T,t,Å¢,Å£,Ť,Å¥, +T ,t ,Å¢ ,Å£ ,Ť ,Å¥ , +ƾ, +ƾ , +Ŧ,ŧ, +Ŧ ,ŧ , +Æ«, +Æ« , +Ƭ,Æ, +Ƭ ,Æ , +Æ®, +Æ® , +U,u,Ù,Ú,Û,Ü,ù,ú,û,ü,Ũ,Å©,Ū,Å«,Ŭ,Å,Å®,ů,Ű,ű,Ų,ų,Ư,ư,Ç“,Ç”,Ç•,Ç–,Ç—,ǘ,Ç™,Çš,Ç›,Çœ,Ụ,ụ,Ủ,á»§,Ứ,ứ,Ừ,ừ,Ử,á»,á»®,ữ,á»°,á»±, +U ,u ,Ù ,Ú ,Û ,Ü ,ù ,ú ,û ,ü ,Ũ ,Å© ,Ū ,Å« ,Ŭ ,Å ,Å® ,ů ,Ű ,ű ,Ų ,ų ,Ư ,ư ,Ç“ ,Ç” ,Ç• ,Ç– ,Ç— ,ǘ ,Ç™ ,Çš ,Ç› ,Çœ ,Ụ ,ụ ,Ủ ,á»§ ,Ứ ,ứ ,Ừ ,ừ ,Ử ,á» ,á»® ,ữ ,á»° ,á»± , +Æœ, +Æœ , +Ʊ, +Ʊ , +V,v, +V ,v , +Ʋ, +Ʋ , +W,w,Å´,ŵ, +W ,w ,Å´ ,ŵ , +X,x, +X ,x , +Y,y,Ã,ý,ÿ,Ŷ,Å·,Ÿ, +Y ,y ,à ,ý ,ÿ ,Ŷ ,Å· ,Ÿ , +Ƴ,Æ´, +Ƴ ,Æ´ , +Z,z,Ź,ź,Å»,ż,Ž,ž, +Z ,z ,Ź ,ź ,Å» ,ż ,Ž ,ž , +Æ, +Æ , +Ƶ,ƶ, +Ƶ ,ƶ , +Æ·,Ç®,ǯ, +Æ· ,Ç® ,ǯ , +Ƹ,ƹ, +Ƹ ,ƹ , +ƺ, +ƺ , +Þ,þ, +Þ ,þ , +Æ¿,Ç·, +Æ¿ ,Ç· , +Æ», +Æ» , +Ƨ,ƨ, +Ƨ ,ƨ , +Ƽ,ƽ, +Ƽ ,ƽ , +Æ„,Æ…, +Æ„ ,Æ… , +ʼn, +ʼn , +Ç€, +Ç€ , +Ç, +Ç , +Ç‚, +Ç‚ , +ǃ, +ǃ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 GROUP BY a COLLATE uca1400_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +÷,÷ , +×,× , +A,A ,a,a ,À,À ,Ã,à ,Â, ,Ã,à ,Ä,Ä ,Ã…,Ã… ,à ,à ,á,á ,â,â ,ã,ã ,ä,ä ,Ã¥,Ã¥ ,Ä€,Ä€ ,Ä,Ä ,Ä‚,Ä‚ ,ă,ă ,Ä„,Ä„ ,Ä…,Ä… ,Ç,Ç ,ÇŽ,ÇŽ ,Çž,Çž ,ÇŸ,ÇŸ ,Ç ,Ç ,Ç¡,Ç¡ ,Ǻ,Ǻ ,Ç»,Ç» ,Ạ,Ạ,ạ,ạ ,Ả,Ả ,ả,ả ,Ấ,Ấ ,ấ,ấ ,Ầ,Ầ ,ầ,ầ ,Ẩ,Ẩ ,ẩ,ẩ ,Ẫ,Ẫ ,ẫ,ẫ ,Ậ,Ậ ,áº,Ạ,Ắ,Ắ ,ắ,ắ ,Ằ,Ằ ,ằ,ằ ,Ẳ,Ẳ ,ẳ,ẳ ,Ẵ,Ẵ ,ẵ,ẵ ,Ặ,Ặ ,ặ,ặ , +AA,AA ,Aa,Aa ,aA,aA ,aa,aa , +AE,AE ,Ae,Ae ,aE,aE ,ae,ae ,Æ,Æ ,æ,æ ,Ç¢,Ç¢ ,Ç£,Ç£ ,Ǽ,Ǽ ,ǽ,ǽ , +B,B ,b,b , +Æ€,Æ€ , +Æ,Æ , +Æ‚,Æ‚ ,ƃ,ƃ , +C,C ,c,c ,Ç,Ç ,ç,ç ,Ć,Ć ,ć,ć ,Ĉ,Ĉ ,ĉ,ĉ ,ÄŠ,ÄŠ ,Ä‹,Ä‹ ,ÄŒ,ÄŒ ,Ä,Ä , +CH,CH ,Ch,Ch ,cH,cH ,ch,ch , +Ƈ,Ƈ ,ƈ,ƈ , +D,D ,d,d ,Ã,à ,ð,ð ,ÄŽ,ÄŽ ,Ä,Ä ,Ä,Ä ,Ä‘,Ä‘ , +DZ,DZ ,Dz,Dz ,DŽ,DŽ ,Dž,Dž ,dZ,dZ ,dz,dz ,dŽ,dŽ ,dž,dž ,Ç„,Ç„ ,Ç…,Ç… ,dž,dž ,DZ,DZ ,Dz,Dz ,dz,dz , +Ɖ,Ɖ , +ÆŠ,ÆŠ , +Æ‹,Æ‹ ,ÆŒ,ÆŒ , +E,E ,e,e ,È,È ,É,É ,Ê,Ê ,Ë,Ë ,è,è ,é,é ,ê,ê ,ë,ë ,Ä’,Ä’ ,Ä“,Ä“ ,Ä”,Ä” ,Ä•,Ä• ,Ä–,Ä– ,Ä—,Ä— ,Ę,Ę ,Ä™,Ä™ ,Äš,Äš ,Ä›,Ä› ,Ẹ,Ẹ ,ẹ,ẹ ,Ẻ,Ẻ ,ẻ,ẻ ,Ẽ,Ẽ ,ẽ,ẽ ,Ế,Ế ,ế,ế ,Ề,Ề ,á»,á» ,Ể,Ể ,ể,ể ,Ễ,Ễ ,á»…,á»… ,Ệ,Ệ ,ệ,ệ , +ÆŽ,ÆŽ ,Ç,Ç , +Æ,Æ , +Æ,Æ , +F,F ,f,f , +Æ‘,Æ‘ ,Æ’,Æ’ , +G,G ,g,g ,Äœ,Äœ ,Ä,Ä ,Äž,Äž ,ÄŸ,ÄŸ ,Ä ,Ä ,Ä¡,Ä¡ ,Ä¢,Ä¢ ,Ä£,Ä£ ,Ǧ,Ǧ ,ǧ,ǧ ,Ç´,Ç´ ,ǵ,ǵ , +Ǥ,Ǥ ,Ç¥,Ç¥ , +Æ“,Æ“ , +Æ”,Æ” , +Æ¢,Æ¢ ,Æ£,Æ£ , +H,H ,h,h ,Ĥ,Ĥ ,Ä¥,Ä¥ ,Ħ,Ħ ,ħ,ħ , +Æ•,Æ• ,Ƕ,Ƕ , +I,I ,i,i ,ÃŒ,ÃŒ ,Ã,à ,ÃŽ,ÃŽ ,Ã,à ,ì,ì ,Ã,à ,î,î ,ï,ï ,Ĩ,Ĩ ,Ä©,Ä© ,Ī,Ī ,Ä«,Ä« ,Ĭ,Ĭ ,Ä,Ä ,Ä®,Ä® ,į,į ,İ,İ ,Ç,Ç ,Ç,Ç ,Ỉ,Ỉ ,ỉ,ỉ ,Ị,Ị ,ị,ị , +IJ,IJ ,Ij,Ij ,iJ,iJ ,ij,ij ,IJ,IJ ,ij,ij , +ı,ı , +Æ—,Æ— , +Æ–,Æ– , +J,J ,j,j ,Ä´,Ä´ ,ĵ,ĵ ,ǰ,ǰ , +K,K ,k,k ,Ķ,Ķ ,Ä·,Ä· ,Ǩ,Ǩ ,Ç©,Ç© , +Ƙ,Ƙ ,Æ™,Æ™ , +L,L ,l,l ,Ĺ,Ĺ ,ĺ,ĺ ,Ä»,Ä» ,ļ,ļ ,Ľ,Ľ ,ľ,ľ ,Ä¿,Ä¿ ,Å€,Å€ ,Å,Å ,Å‚,Å‚ , +LJ,LJ ,Lj,Lj ,lJ,lJ ,lj,lj ,LJ,LJ ,Lj,Lj ,lj,lj , +LL,LL ,Ll,Ll ,lL,lL ,ll,ll , +Æš,Æš , +Æ›,Æ› , +M,M ,m,m , +N,N ,n,n ,Ñ,Ñ ,ñ,ñ ,Ń,Ń ,Å„,Å„ ,Å…,Å… ,ņ,ņ ,Ň,Ň ,ň,ň ,Ǹ,Ǹ ,ǹ,ǹ , +NJ,NJ ,Nj,Nj ,nJ,nJ ,nj,nj ,ÇŠ,ÇŠ ,Ç‹,Ç‹ ,ÇŒ,ÇŒ , +Æ,Æ , +Æž,Æž , +ÅŠ,ÅŠ ,Å‹,Å‹ , +O,O ,o,o ,Ã’,Ã’ ,Ó,Ó ,Ô,Ô ,Õ,Õ ,Ö,Ö ,Ø,Ø ,ò,ò ,ó,ó ,ô,ô ,õ,õ ,ö,ö ,ø,ø ,ÅŒ,ÅŒ ,Å,Å ,ÅŽ,ÅŽ ,Å,Å ,Å,Å ,Å‘,Å‘ ,Æ ,Æ ,Æ¡,Æ¡ ,Ç‘,Ç‘ ,Ç’,Ç’ ,Ǫ,Ǫ ,Ç«,Ç« ,Ǭ,Ǭ ,Ç,Ç ,Ǿ,Ǿ ,Ç¿,Ç¿ ,Ọ,Ọ ,á»,á» ,Ỏ,Ỏ ,á»,á» ,á»,á» ,ố,ố ,á»’,á»’ ,ồ,ồ ,á»”,á»” ,ổ,ổ ,á»–,á»– ,á»—,á»— ,Ộ,Ộ ,á»™,á»™ ,Ớ,Ớ ,á»›,á»› ,Ờ,Ờ ,á»,á» ,Ở,Ở ,ở,ở ,á» ,á» ,ỡ,ỡ ,Ợ,Ợ ,ợ,ợ , +OE,OE ,Oe,Oe ,oE,oE ,oe,oe ,Å’,Å’ ,Å“,Å“ , +Ɔ,Ɔ , +ÆŸ,ÆŸ , +P,P ,p,p , +Ƥ,Ƥ ,Æ¥,Æ¥ , +Q,Q ,q,q , +ĸ,ĸ , +R,R ,r,r ,Å”,Å” ,Å•,Å• ,Å–,Å– ,Å—,Å— ,Ř,Ř ,Å™,Å™ , +RR,RR ,Rr,Rr ,rR,rR ,rr,rr , +Ʀ,Ʀ , +S,S ,s,s ,Åš,Åš ,Å›,Å› ,Åœ,Åœ ,Å,Å ,Åž,Åž ,ÅŸ,ÅŸ ,Å ,Å ,Å¡,Å¡ ,Å¿,Å¿ , +SS,SS ,Ss,Ss ,sS,sS ,ss,ss ,ß,ß ,ẞ,ẞ , +Æ©,Æ© , +ƪ,ƪ , +T,T ,t,t ,Å¢,Å¢ ,Å£,Å£ ,Ť,Ť ,Å¥,Å¥ , +ƾ,ƾ , +Ŧ,Ŧ ,ŧ,ŧ , +Æ«,Æ« , +Ƭ,Ƭ ,Æ,Æ , +Æ®,Æ® , +U,U ,u,u ,Ù,Ù ,Ú,Ú ,Û,Û ,Ü,Ü ,ù,ù ,ú,ú ,û,û ,ü,ü ,Ũ,Ũ ,Å©,Å© ,Ū,Ū ,Å«,Å« ,Ŭ,Ŭ ,Å,Å ,Å®,Å® ,ů,ů ,Ű,Ű ,ű,ű ,Ų,Ų ,ų,ų ,Ư,Ư ,ư,ư ,Ç“,Ç“ ,Ç”,Ç” ,Ç•,Ç• ,Ç–,Ç– ,Ç—,Ç— ,ǘ,ǘ ,Ç™,Ç™ ,Çš,Çš ,Ç›,Ç› ,Çœ,Çœ ,Ụ,Ụ ,ụ,ụ ,Ủ,Ủ ,á»§,á»§ ,Ứ,Ứ ,ứ,ứ ,Ừ,Ừ ,ừ,ừ ,Ử,Ử ,á»,á» ,á»®,á»® ,ữ,ữ ,á»°,á»° ,á»±,á»± , +Æœ,Æœ , +Ʊ,Ʊ , +V,V ,v,v , +Ʋ,Ʋ , +W,W ,w,w ,Å´,Å´ ,ŵ,ŵ , +X,X ,x,x , +Y,Y ,y,y ,Ã,à ,ý,ý ,ÿ,ÿ ,Ŷ,Ŷ ,Å·,Å· ,Ÿ,Ÿ , +Ƴ,Ƴ ,Æ´,Æ´ , +Z,Z ,z,z ,Ź,Ź ,ź,ź ,Å»,Å» ,ż,ż ,Ž,Ž ,ž,ž , +Æ,Æ , +Ƶ,Ƶ ,ƶ,ƶ , +Æ·,Æ· ,Ç®,Ç® ,ǯ,ǯ , +Ƹ,Ƹ ,ƹ,ƹ , +ƺ,ƺ , +Þ,Þ ,þ,þ , +Æ¿,Æ¿ ,Ç·,Ç· , +Æ»,Æ» , +Ƨ,Ƨ ,ƨ,ƨ , +Ƽ,Ƽ ,ƽ,ƽ , +Æ„,Æ„ ,Æ…,Æ… , +ʼn,ʼn , +Ç€,Ç€ , +Ç,Ç , +Ç‚,Ç‚ , +ǃ,ǃ , +CALL test_styles('uca1400', _utf8mb4"WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ')"); + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_nopad_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +s, +S, +s , +S , +ss, +sS, +Ss, +SS, +ß, +ẞ, +ss , +sS , +Ss , +SS , +ß , +ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +s,s , +S,S , +ss,ss , +sS,sS , +Ss,Ss , +SS,SS , +ß,ß , +ẞ,ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_nopad_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +S,s, +S ,s , +SS,Ss,sS,ss, +ß,ẞ, +SS ,Ss ,sS ,ss , +ß ,ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +S,S ,s,s , +SS,SS ,Ss,Ss ,sS,sS ,ss,ss , +ß,ß ,ẞ,ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_nopad_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +s, +S, +s , +S , +ss, +sS, +ß, +Ss, +SS, +ẞ, +ss , +sS , +ß , +Ss , +SS , +ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +s,s , +S,S , +ss,ss , +sS,sS , +ß,ß , +Ss,Ss , +SS,SS , +ẞ,ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_nopad_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +S,s, +S ,s , +SS,Ss,sS,ss,ß,ẞ, +SS ,Ss ,sS ,ss ,ß ,ẞ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ') GROUP BY a COLLATE uca1400_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +S,S ,s,s , +SS,SS ,Ss,Ss ,sS,sS ,ss,ss ,ß,ß ,ẞ,ẞ , +CALL test_styles('uca1400_danish', _utf8mb4"WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥')"); + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_nopad_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA, +aA , +Ã¥, +Ã…, +aa, +Aa, +AA, +Ã¥ , +Ã… , +aa , +Aa , +AA , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_as_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA,aA , +Ã¥,Ã¥ , +Ã…,Ã… , +aa,aa , +Aa,Aa , +AA,AA , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_nopad_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA, +aA , +Ã…,Ã¥, +AA,Aa,aa, +Ã… ,Ã¥ , +AA ,Aa ,aa , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_as_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA,aA , +Ã…,Ã… ,Ã¥,Ã¥ , +AA,AA ,Aa,Aa ,aa,aa , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_nopad_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA, +aA , +aa,Ã¥, +Aa,Ã…, +AA, +aa ,Ã¥ , +Aa ,Ã… , +AA , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_ai_cs +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA,aA , +aa,aa ,Ã¥,Ã¥ , +Aa,Aa ,Ã…,Ã… , +AA,AA , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_nopad_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA, +aA , +AA,Aa,aa,Ã…,Ã¥, +AA ,Aa ,aa ,Ã… ,Ã¥ , + +SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') FROM t1 WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥') GROUP BY a COLLATE uca1400_danish_ai_ci +CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),',') +aA,aA , +AA,AA ,Aa,Aa ,aa,aa ,Ã…,Ã… ,Ã¥,Ã¥ , +DROP TABLE t1; +DROP PROCEDURE exec_verbose; +DROP PROCEDURE test_styles; +# +# End of 10.9 tests +# diff --git a/mysql-test/main/ctype_utf8mb4_uca.test b/mysql-test/main/ctype_utf8mb4_uca.test index 7a95da8468c..9ef001fd378 100644 --- a/mysql-test/main/ctype_utf8mb4_uca.test +++ b/mysql-test/main/ctype_utf8mb4_uca.test @@ -108,3 +108,299 @@ SET NAMES utf8mb4; --echo # --echo # End of 10.2 tests --echo # + +--echo # +--echo # End of 10.9 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # Collation IDs in the protocol +--echo # + +SET NAMES utf8mb4; +SET @charset=(SELECT @@character_set_client); +--source include/ctype_uca1400_ids_using_set_names.inc + + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # SET NAMES CHARACTER SET cs [COLLATE cl] +--echo # + +#enable after fix MDEV-29554 +--disable_view_protocol + +CREATE VIEW vars AS +SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE variable_name IN +('character_set_client','character_set_connection','character_set_results', + 'collation_connection') ORDER BY variable_name; + +--echo --- +SET NAMES DEFAULT COLLATE DEFAULT; +SELECT * FROM vars; + +--echo --- +--error ER_COLLATION_CHARSET_MISMATCH +SET NAMES DEFAULT COLLATE `binary`; +SELECT * FROM vars; + +--echo --- +--error ER_COLLATION_CHARSET_MISMATCH +SET NAMES DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SELECT * FROM vars; + +--echo --- +--error ER_COLLATION_CHARSET_MISMATCH +SET NAMES DEFAULT COLLATE uca1400_ai_ci; +SELECT * FROM vars; + +--echo --- +SET NAMES utf8mb4; +SELECT * FROM vars; + +--echo --- +--error ER_COLLATION_CHARSET_MISMATCH +SET NAMES utf8mb4 COLLATE `binary`; +SELECT * FROM vars; + +--echo --- +SET NAMES utf8mb4 COLLATE DEFAULT; +SELECT * FROM vars; + +--echo --- +SET NAMES utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +SELECT * FROM vars; + +--echo --- +SET NAMES utf8mb4 COLLATE uca1400_ai_ci; +SELECT * FROM vars; + +DROP VIEW vars; + +--enable_view_protocol + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # ALTER TABLE t1 CONVERT TO CHARACTER SET cs [COLLATE cl] +--echo # + +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +USE db1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +--error ER_COLLATION_CHARSET_MISMATCH +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE latin1_bin; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE DEFAULT; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +--error ER_COLLATION_CHARSET_MISMATCH +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE latin1_bin; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +DROP DATABASE db1; +USE test; + + +--echo # +--echo # MDEV-27743 Remove Lex::charset +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # + +CREATE TABLE t1 (c1 VARCHAR(10) CHARACTER SET utf8mb4); +INSERT INTO t1 VALUES ('A'),('a'),('Ã'),('á'); +--error ER_PARSE_ERROR +SELECT * FROM t1 ORDER BY c1 COLLATE DEFAULT; +--error ER_COLLATION_CHARSET_MISMATCH +SELECT * FROM t1 ORDER BY c1 COLLATE `binary`; +SELECT * FROM t1 ORDER BY c1 COLLATE utf8mb4_uca1400_as_cs; +EXPLAIN EXTENDED SELECT * FROM t1 ORDER BY c1 COLLATE utf8mb4_uca1400_as_cs; +SELECT * FROM t1 ORDER BY c1 COLLATE uca1400_as_cs; +EXPLAIN EXTENDED SELECT * FROM t1 ORDER BY c1 COLLATE uca1400_as_cs; +DROP TABLE t1; + + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # CREATE DATABASE +--echo # + +SET @@collation_server=utf8mb4_bin; + +CREATE DATABASE db1; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 COLLATE DEFAULT; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 CHARACTER SET DEFAULT; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; + +SET @@collation_server=DEFAULT; + +SET @@collation_server=latin1_bin; +--error ER_COLLATION_CHARSET_MISMATCH +CREATE DATABASE db1 COLLATE uca1400_ai_ci; +--error ER_COLLATION_CHARSET_MISMATCH +CREATE DATABASE db1 CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE uca1400_ai_ci; +SHOW CREATE DATABASE db1; +DROP DATABASE db1; +SET @@collation_server=DEFAULT; + + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # CREATE TABLE - table level character set and collation +--echo # + +SELECT @@collation_database; +CREATE DATABASE db1 CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; + +CREATE TABLE db1.t1 (a CHAR(1)); +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE DEFAULT; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE DEFAULT; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +CREATE TABLE db1.t1 (a CHAR(1)) CHARACTER SET DEFAULT COLLATE utf8mb4_uca1400_ai_ci; +SHOW CREATE TABLE db1.t1; +DROP TABLE db1.t1; + +DROP DATABASE db1; + + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # + +SET NAMES utf8mb4; +DELIMITER $$; +CREATE PROCEDURE exec_verbose(query TEXT CHARACTER SET utf8mb4) +BEGIN + SELECT query AS ``; + EXECUTE IMMEDIATE query; +END; +$$ + +CREATE PROCEDURE test_styles(clname VARCHAR(64) CHARACTER SET utf8mb4, + where_clause TEXT CHARACTER SET utf8mb4) +BEGIN + DECLARE query TEXT CHARACTER SET utf8mb4 DEFAULT + 'SELECT CONCAT(GROUP_CONCAT(a ORDER BY BINARY(a)),'','') ' + 'FROM t1 <WHERE> GROUP BY a COLLATE <CL>'; + SET query=REPLACE(query, '<WHERE>', where_clause); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_as_cs'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_as_cs'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_as_ci'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_as_ci'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_ai_cs'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_ai_cs'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_nopad_ai_ci'))); + CALL exec_verbose(REPLACE(query, '<CL>', CONCAT(clname,'_ai_ci'))); +END; +$$ +DELIMITER ;$$ + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4); +--source include/ctype_unicode_latin.inc +INSERT INTO t1 VALUES('ẞ'); +INSERT INTO t1 SELECT CONCAT(a,' ') FROM t1; + +CALL test_styles('uca1400', ''); +CALL test_styles('uca1400', _utf8mb4"WHERE BINARY(LOWER(TRIM(a))) IN ('ss','s','ß','ẞ')"); +CALL test_styles('uca1400_danish', _utf8mb4"WHERE BINARY(LOWER(TRIM(a))) IN ('aa','Ã¥')"); + +DROP TABLE t1; + +DROP PROCEDURE exec_verbose; +DROP PROCEDURE test_styles; + +--echo # +--echo # End of 10.9 tests +--echo # diff --git a/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.result b/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.result new file mode 100644 index 00000000000..a3dd7a4d7b8 --- /dev/null +++ b/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.result @@ -0,0 +1,120 @@ +# +# Start of 10.8 tests +# +# +# MDEV-27009 Add UCA-14.0.0 collations +# +SET NAMES utf8mb4 COLLATE utf8mb4_bin; +CREATE TABLE allchars AS SELECT 1 AS code, ' ' AS str LIMIT 0; +SHOW CREATE TABLE allchars; +Table Create Table +allchars CREATE TABLE `allchars` ( + `code` int(1) NOT NULL, + `str` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +CREATE TABLE t1tmp (a INT NOT NULL); +FOR i IN 0..0xFFF +DO +INSERT INTO t1tmp VALUES (i); +END FOR; +$$ +INSERT INTO allchars SELECT +t1.a*0x1000+t2.a, +CHAR(t1.a*0x1000+t2.a USING utf32) +FROM t1tmp t1, t1tmp t2 +WHERE t1.a BETWEEN 0 AND 0x10F; +DROP TABLE t1tmp; +SELECT COUNT(*) FROM allchars; +COUNT(*) +1114112 +# +# Load allkeys.txt from Unicode-14.0.0 +# +CREATE TABLE allkeys_txt (a TEXT, b TEXT, c TEXT) ENGINE=MyISAM; +LOAD DATA INFILE '../../std_data/unicode/allkeys1400.txt' +INTO TABLE allkeys_txt FIELDS TERMINATED BY ';' (@a,@b,@qq) +SET a=TRIM(@a), b=TRIM(REGEXP_SUBSTR(@b,'^[^#]*')), c=TRIM(REGEXP_SUBSTR(@b, '#.*$')); +CREATE TABLE allkeys AS +SELECT +a, +CONVERT(CAST(UNHEX(regexp_replace(regexp_replace(regexp_replace(a,'(\\b[0-9A-Z]{4}\\b)','-0000\\1-'),'(\\b[0-9A-Z]{5}\\b)','-000\\1-'),'[ -]','')) AS CHAR CHARACTER SET utf32) USING utf8mb4) COLLATE utf8mb4_bin AS str, +HEX(WEIGHT_STRING(CONVERT(CAST(UNHEX(regexp_replace(regexp_replace(regexp_replace(a,'(\\b[0-9A-Z]{4}\\b)','-0000\\1-'),'(\\b[0-9A-Z]{5}\\b)','-000\\1-'),'[ -]','')) AS CHAR CHARACTER SET utf32) USING utf8mb4) COLLATE utf8mb4_uca1400_ai_ci)) as ws, +REPLACE(REPLACE(REGEXP_REPLACE(b,'[[][.*](....)[.]....[.]....]','-\\1-'),'-0000-',''),'-','') AS wd, +c +FROM allkeys_txt +WHERE a RLIKE '^[0-9A-Z]'; +ALTER TABLE allkeys ADD KEY(str(3)); +# +# Test explicit weights for individual characters +# U+FDFA is the only character that has a different weight than allkeys.txt +# +SELECT COUNT(*), SUM(ws<>wd) FROM allkeys WHERE a NOT LIKE '% %'; +COUNT(*) SUM(ws<>wd) +32958 1 +SELECT a, ws, wd FROM allkeys WHERE ws<>wd AND a NOT LIKE '% %'; +a ws wd +FDFA 27C22802282D02092762280228022819 27C22802282D02092762280228022819020927CE2802282E28190209281F27B72802280A +# +# Test explicit weights for built-in contractions +# +SELECT COUNT(*), SUM(ws<>wd) FROM allkeys WHERE a LIKE '% %'; +COUNT(*) SUM(ws<>wd) +939 0 +SELECT a, ws, wd FROM allkeys WHERE ws<>wd AND a LIKE '% %'; +a ws wd +# +# Test implicit weights. +# +SELECT +HEX(code), +HEX(WEIGHT_STRING(str COLLATE utf8mb4_uca1400_ai_ci)) AS ws, +CASE +/* Core Han Unified Ideograms */ +WHEN (code >= 0x4E00 AND code <= 0x9FFF) OR +(code >= 0xFA0E AND code <= 0xFA0F) OR +(code = 0xFA11) OR +(code >= 0xFA13 AND code <= 0xFA14) OR +(code = 0xFA1F) OR +(code = 0xFA21) OR +(code >= 0xFA23 AND code <= 0xFA24) OR +(code >= 0xFA27 AND code <= 0xFA29) THEN +CONCAT(LPAD(HEX(0xFB40 + (code >> 15)),4,'0'), +LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) +/* All other Han Unified Ideographs */ +WHEN (code >= 0x3400 AND code <= 0x4DBF) OR +(code >= 0x20000 AND code <= 0x2A6DF) OR +(code >= 0x2A700 AND code <= 0x2B738) OR +(code >= 0x2B740 AND code <= 0x2B81D) OR +(code >= 0x2B820 AND code <= 0x2CEA1) OR +(code >= 0x2CEB0 AND code <= 0x2EBE0) OR +(code >= 0x30000 AND code <= 0x3134A) THEN +CONCAT(LPAD(HEX(0xFB80 + (code >> 15)),4,'0'), +LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) +/* Siniform: Tangut */ +WHEN (code >= 0x17000 AND code <= 0x187FF) OR +(code >= 0x18800 AND code <= 0x18AFF) OR +(code >= 0x18D00 AND code <= 0x18D7F) THEN +CONCAT('FB00', LPAD(HEX(0x8000 | (code - 0x17000)),4,'0')) +/* Siniform: Nushu */ +WHEN (code >= 0x1B170 AND code <= 0x1B2FF) THEN +CONCAT('FB01', LPAD(HEX(0x8000 | (code - 0x1B170)),4,'0')) +/* Siniform: Khitan */ +WHEN (code >= 0x18B00 AND code <= 0x18CFF) THEN +CONCAT('FB02', LPAD(HEX(0x8000 | (code - 0x18B00)),4,'0')) +/* Unassigned: Any other code point */ +ELSE +CONCAT(LPAD(HEX(0xFBC0 + (code >> 15)),4,'0'), +LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) +END AS wd +FROM allchars +LEFT OUTER JOIN allkeys USING (str) +WHERE allkeys.str IS NULL +HAVING ws<>wd +ORDER BY HEX(str); +HEX(code) ws wd +DROP TABLE allkeys_txt; +DROP TABLE allkeys; +DROP TABLE allchars; +# +# End of 10.8 tests +# diff --git a/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.test b/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.test new file mode 100644 index 00000000000..074925aef6c --- /dev/null +++ b/mysql-test/main/ctype_utf8mb4_uca_allkeys1400.test @@ -0,0 +1,128 @@ +--source include/have_utf32.inc +--source include/have_utf8mb4.inc + +--echo # +--echo # Start of 10.8 tests +--echo # + +--echo # +--echo # MDEV-27009 Add UCA-14.0.0 collations +--echo # + + +SET NAMES utf8mb4 COLLATE utf8mb4_bin; +--source include/ctype_unicode_allchars.inc + +--echo # +--echo # Load allkeys.txt from Unicode-14.0.0 +--echo # + +# The 14.0.0 file has three weight levels. +# Unlike 5.2.0, there are no optional extra fields after the character +# name like "; QQK". But lets still use the "@qq" variable for symmetry. +#00A0 ; [*0209.0020.001B] # NO-BREAK SPACE +# + +CREATE TABLE allkeys_txt (a TEXT, b TEXT, c TEXT) ENGINE=MyISAM; +LOAD DATA INFILE '../../std_data/unicode/allkeys1400.txt' +INTO TABLE allkeys_txt FIELDS TERMINATED BY ';' (@a,@b,@qq) +SET a=TRIM(@a), b=TRIM(REGEXP_SUBSTR(@b,'^[^#]*')), c=TRIM(REGEXP_SUBSTR(@b, '#.*$')); +CREATE TABLE allkeys AS +SELECT + a, + CONVERT(CAST(UNHEX(regexp_replace(regexp_replace(regexp_replace(a,'(\\b[0-9A-Z]{4}\\b)','-0000\\1-'),'(\\b[0-9A-Z]{5}\\b)','-000\\1-'),'[ -]','')) AS CHAR CHARACTER SET utf32) USING utf8mb4) COLLATE utf8mb4_bin AS str, + HEX(WEIGHT_STRING(CONVERT(CAST(UNHEX(regexp_replace(regexp_replace(regexp_replace(a,'(\\b[0-9A-Z]{4}\\b)','-0000\\1-'),'(\\b[0-9A-Z]{5}\\b)','-000\\1-'),'[ -]','')) AS CHAR CHARACTER SET utf32) USING utf8mb4) COLLATE utf8mb4_uca1400_ai_ci)) as ws, + REPLACE(REPLACE(REGEXP_REPLACE(b,'[[][.*](....)[.]....[.]....]','-\\1-'),'-0000-',''),'-','') AS wd, + c +FROM allkeys_txt +WHERE a RLIKE '^[0-9A-Z]'; +ALTER TABLE allkeys ADD KEY(str(3)); + +--echo # +--echo # Test explicit weights for individual characters +--echo # U+FDFA is the only character that has a different weight than allkeys.txt +--echo # + +# The (NOT LIKE '% %') part of the condition filters out contractions. + +SELECT COUNT(*), SUM(ws<>wd) FROM allkeys WHERE a NOT LIKE '% %'; +SELECT a, ws, wd FROM allkeys WHERE ws<>wd AND a NOT LIKE '% %'; + +--echo # +--echo # Test explicit weights for built-in contractions +--echo # + +SELECT COUNT(*), SUM(ws<>wd) FROM allkeys WHERE a LIKE '% %'; +SELECT a, ws, wd FROM allkeys WHERE ws<>wd AND a LIKE '% %'; + + +--echo # +--echo # Test implicit weights. +--echo # + +# The below CASE resembles the implicit weight formula according to +# https://unicode.org/reports/tr10/#Implicit_Weights +# as of Unicode-14.0.0 + + +SELECT + HEX(code), + HEX(WEIGHT_STRING(str COLLATE utf8mb4_uca1400_ai_ci)) AS ws, + CASE + + /* Core Han Unified Ideograms */ + WHEN (code >= 0x4E00 AND code <= 0x9FFF) OR + (code >= 0xFA0E AND code <= 0xFA0F) OR + (code = 0xFA11) OR + (code >= 0xFA13 AND code <= 0xFA14) OR + (code = 0xFA1F) OR + (code = 0xFA21) OR + (code >= 0xFA23 AND code <= 0xFA24) OR + (code >= 0xFA27 AND code <= 0xFA29) THEN + CONCAT(LPAD(HEX(0xFB40 + (code >> 15)),4,'0'), + LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) + + /* All other Han Unified Ideographs */ + WHEN (code >= 0x3400 AND code <= 0x4DBF) OR + (code >= 0x20000 AND code <= 0x2A6DF) OR + (code >= 0x2A700 AND code <= 0x2B738) OR + (code >= 0x2B740 AND code <= 0x2B81D) OR + (code >= 0x2B820 AND code <= 0x2CEA1) OR + (code >= 0x2CEB0 AND code <= 0x2EBE0) OR + (code >= 0x30000 AND code <= 0x3134A) THEN + CONCAT(LPAD(HEX(0xFB80 + (code >> 15)),4,'0'), + LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) + + /* Siniform: Tangut */ + WHEN (code >= 0x17000 AND code <= 0x187FF) OR + (code >= 0x18800 AND code <= 0x18AFF) OR + (code >= 0x18D00 AND code <= 0x18D7F) THEN + CONCAT('FB00', LPAD(HEX(0x8000 | (code - 0x17000)),4,'0')) + + /* Siniform: Nushu */ + WHEN (code >= 0x1B170 AND code <= 0x1B2FF) THEN + CONCAT('FB01', LPAD(HEX(0x8000 | (code - 0x1B170)),4,'0')) + + /* Siniform: Khitan */ + WHEN (code >= 0x18B00 AND code <= 0x18CFF) THEN + CONCAT('FB02', LPAD(HEX(0x8000 | (code - 0x18B00)),4,'0')) + + /* Unassigned: Any other code point */ + ELSE + CONCAT(LPAD(HEX(0xFBC0 + (code >> 15)),4,'0'), + LPAD(HEX(0x8000 | (code & 0x7FFF)),4,'0')) + + END AS wd +FROM allchars +LEFT OUTER JOIN allkeys USING (str) +WHERE allkeys.str IS NULL +HAVING ws<>wd +ORDER BY HEX(str); + +DROP TABLE allkeys_txt; +DROP TABLE allkeys; +DROP TABLE allchars; + +--echo # +--echo # End of 10.8 tests +--echo # diff --git a/mysql-test/main/default.result b/mysql-test/main/default.result index 9a29cf7ddb0..abcf3b27c9c 100644 --- a/mysql-test/main/default.result +++ b/mysql-test/main/default.result @@ -371,7 +371,7 @@ create or replace table t1 (param_list blob DEFAULT "" NOT NULL); drop table t1; create table t1 (a int); insert into t1 values(-1); -alter table t1 add b int default 1, add c int default -1, add d int default (1+1), add e timestamp; +alter table t1 add b int default 1, add c int default -1, add d int default (1+1), add e timestamp not null default now(); select a,b,c,d,e from t1; a b c d e -1 1 -1 2 2001-01-01 10:20:30 @@ -388,7 +388,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT 1, `c` int(11) DEFAULT -1, `d` int(11) DEFAULT (1 + 1), - `e` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `e` timestamp NOT NULL DEFAULT current_timestamp(), `f` int(11) DEFAULT (1 + 1 + 1), `g` int(11) NOT NULL DEFAULT (1 + 1 + 1 + 1), `h` int(11) DEFAULT (2 + 2 + 2 + 2) @@ -401,7 +401,7 @@ t2 CREATE TABLE `t2` ( `b` int(11) DEFAULT 1, `c` int(11) DEFAULT -1, `d` int(11) DEFAULT (1 + 1), - `e` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `e` timestamp NOT NULL DEFAULT current_timestamp(), `f` int(11) DEFAULT (1 + 1 + 1), `g` int(11) NOT NULL DEFAULT (1 + 1 + 1 + 1), `h` int(11) DEFAULT (2 + 2 + 2 + 2) @@ -1067,7 +1067,7 @@ CREATE TABLE t1 (a TIMESTAMP DEFAULT COALESCE(CURRENT_TIMESTAMP)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp NOT NULL DEFAULT coalesce(current_timestamp()) + `a` timestamp NULL DEFAULT coalesce(current_timestamp()) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci DROP TABLE t1; CREATE TABLE t1 (a DATE DEFAULT COALESCE(CURRENT_DATE)); @@ -1091,8 +1091,8 @@ b TIMESTAMP DEFAULT COALESCE(CURRENT_TIMESTAMP(6)) SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp NOT NULL DEFAULT current_timestamp(), - `b` timestamp NOT NULL DEFAULT coalesce(current_timestamp(6)) + `a` timestamp NULL DEFAULT current_timestamp(), + `b` timestamp NULL DEFAULT coalesce(current_timestamp(6)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci INSERT INTO t1 VALUES (); SELECT CURRENT_TIMESTAMP(6); @@ -1525,8 +1525,8 @@ CREATE TABLE t1 (a TIMESTAMP DEFAULT NOW(), b TIMESTAMP DEFAULT UTC_TIMESTAMP()) SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp NOT NULL DEFAULT current_timestamp(), - `b` timestamp NOT NULL DEFAULT utc_timestamp() + `a` timestamp NULL DEFAULT current_timestamp(), + `b` timestamp NULL DEFAULT utc_timestamp() ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci INSERT INTO t1 VALUES (); SELECT * FROM t1; @@ -1538,9 +1538,9 @@ CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT SYSDATE(6), s INT, b TIMESTAMP(6) DEFAUL SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(6) NOT NULL DEFAULT sysdate(6), + `a` timestamp(6) NULL DEFAULT sysdate(6), `s` int(11) DEFAULT NULL, - `b` timestamp(6) NOT NULL DEFAULT sysdate(6) + `b` timestamp(6) NULL DEFAULT sysdate(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci INSERT INTO t1 VALUES (DEFAULT(a), SLEEP(0.1), DEFAULT(b)); SELECT b>a FROM t1; @@ -1553,7 +1553,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, - `b` timestamp NOT NULL DEFAULT from_unixtime(`a`) + `b` timestamp NULL DEFAULT from_unixtime(`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci INSERT INTO t1 VALUES (1447430881, DEFAULT); SELECT * FROM t1; @@ -1565,8 +1565,8 @@ CREATE TABLE t1 (a TIMESTAMP, b TIMESTAMP DEFAULT CONVERT_TZ(a, '-10:00', '+10:0 SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `b` timestamp NOT NULL DEFAULT convert_tz(`a`,'-10:00','+10:00') + `a` timestamp NULL DEFAULT NULL, + `b` timestamp NULL DEFAULT convert_tz(`a`,'-10:00','+10:00') ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci INSERT INTO t1 VALUES ('2001-01-01 10:20:30', DEFAULT); SELECT * FROM t1; diff --git a/mysql-test/main/default.test b/mysql-test/main/default.test index 3064209a4a2..26fc2186533 100644 --- a/mysql-test/main/default.test +++ b/mysql-test/main/default.test @@ -287,7 +287,7 @@ drop table t1; create table t1 (a int); insert into t1 values(-1); -alter table t1 add b int default 1, add c int default -1, add d int default (1+1), add e timestamp; +alter table t1 add b int default 1, add c int default -1, add d int default (1+1), add e timestamp not null default now(); select a,b,c,d,e from t1; insert into t1 values(10,10,10,10,0); alter table t1 add f int default (1+1+1) null, add g int default (1+1+1+1) not null,add h int default (2+2+2+2); diff --git a/mysql-test/main/fast_prefix_index_fetch_innodb.result b/mysql-test/main/fast_prefix_index_fetch_innodb.result index aa888fb0704..1ce29100c66 100644 --- a/mysql-test/main/fast_prefix_index_fetch_innodb.result +++ b/mysql-test/main/fast_prefix_index_fetch_innodb.result @@ -1,8 +1,3 @@ -SET @save_opt= @@GLOBAL.innodb_prefix_index_cluster_optimization; -set global innodb_prefix_index_cluster_optimization = ON; -show variables like 'innodb_prefix_index_cluster_optimization'; -Variable_name Value -innodb_prefix_index_cluster_optimization ON SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent; SET GLOBAL innodb_stats_persistent = OFF; # Create a table with a large varchar field that we index the prefix @@ -31,110 +26,39 @@ id fake_id bigfield 32 1032 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 33 1033 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 128 1128 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -# Baseline sanity check: 0, 0. -select "no-op query"; -no-op query -no-op query -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Eligible for optimization. select id, bigfield from prefixinno where bigfield = repeat('d', 31); id bigfield 31 ddddddddddddddddddddddddddddddd -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Eligible for optimization, access via fake_id only. select id, bigfield from prefixinno where fake_id = 1031; id bigfield 31 ddddddddddddddddddddddddddddddd -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible for optimization, access via fake_id of big row. select id, bigfield from prefixinno where fake_id = 1033; id bigfield 33 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible for optimization. select id, bigfield from prefixinno where bigfield = repeat('x', 32); id bigfield 32 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 -# Not eligible for optimization. select id, bigfield from prefixinno where bigfield = repeat('y', 33); id bigfield 33 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 -# Eligible, should not increment lookup counter. select id, bigfield from prefixinno where bigfield = repeat('b', 8); id bigfield 8 bbbbbbbb -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 -# Eligible, should not increment lookup counter. select id, bigfield from prefixinno where bigfield = repeat('c', 24); id bigfield 24 cccccccccccccccccccccccc -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 -# Should increment lookup counter. select id, bigfield from prefixinno where bigfield = repeat('z', 128); id bigfield 128 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 -# Disable optimization, confirm we still increment counter. -set global innodb_prefix_index_cluster_optimization = OFF; select id, bigfield from prefixinno where fake_id = 1033; id bigfield 33 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 drop table prefixinno; # Multi-byte handling case -set global innodb_prefix_index_cluster_optimization = ON; SET NAMES utf8mb4; CREATE TABLE t1( f1 varchar(10) CHARACTER SET UTF8MB4 COLLATE UTF8MB4_BIN, @@ -146,113 +70,47 @@ INSERT INTO t1 VALUES('😊me'), ('eu€'), ('ls¢'); SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'a'; f1 a -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'c%'; f1 cccc cÄc -select @cluster_lookups; -@cluster_lookups -3 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'až'; f1 až -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'தமிழà¯'; f1 தமிழ௠-select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ggáµ·%'; f1 ggáµ·g -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '😊%'; f1 😊me -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'ls¢'; f1 ls¢ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '¢¢%'; f1 ¢¢ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ðŸ±ðŸŒ‘%'; f1 ðŸ±ðŸŒ‘ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌑%'; f1 🌑 -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -2 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌒%'; f1 🌒 -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -2 DROP TABLE t1; # Multi-byte with minimum character length > 1 bytes CREATE TABLE t1( @@ -265,113 +123,47 @@ INSERT INTO t1 VALUES('😊me'), ('eu€'), ('ls¢'); SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'a'; f1 a -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'c%'; f1 cccc cÄc -select @cluster_lookups; -@cluster_lookups -3 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'až'; f1 až -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'தமிழà¯'; f1 தமிழ௠-select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ggáµ·%'; f1 ggáµ·g -select @cluster_lookups; -@cluster_lookups -2 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '😊%'; f1 😊me -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Not eligible - record length longer than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'ls¢'; f1 ls¢ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX(`f1`) WHERE f1 like '¢¢%'; f1 ¢¢ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Eligible - record length shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ðŸ±ðŸŒ‘%'; f1 ðŸ±ðŸŒ‘ -select @cluster_lookups; -@cluster_lookups -1 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Eligible - record length is shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌑%'; f1 🌑 -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -2 # Eligible - record length is shorter than prefix length SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌒%'; f1 🌒 -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -2 DROP TABLE t1; CREATE TABLE t1( col1 INT, @@ -383,22 +175,10 @@ INSERT INTO t1(col1) VALUES(1); SELECT col1 FROM t1 FORCE INDEX (`idx1`) WHERE col2 is NULL; col1 1 -select @cluster_lookups; -@cluster_lookups -0 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -1 # Not eligible - record length longer than prefix index SELECT col1 FROM t1 FORCE INDEX (`idx1`) WHERE col2 like 'test1%'; col1 3 -select @cluster_lookups; -@cluster_lookups -2 -select @cluster_lookups_avoided; -@cluster_lookups_avoided -0 DROP TABLE t1; # # MDEV-20464 Division by 0 in row_search_with_covering_prefix() @@ -443,18 +223,10 @@ INSERT INTO wp_blogs (domain, path) VALUES ('domain.no', '/fondsinvesteringer/'), ('domain.no', '/'), ('foo', 'bar'), ('bar', 'foo'), ('foo', 'foo'), ('bar', 'bar'), ('foo', 'foobar'), ('bar', 'foobar'), ('foobar', 'foobar'); -SET GLOBAL innodb_prefix_index_cluster_optimization=off; -SELECT blog_id FROM wp_blogs WHERE domain IN ('domain.no') -AND path IN ( '/fondsinvesteringer/', '/' ); -blog_id -2 -1 -SET GLOBAL innodb_prefix_index_cluster_optimization=on; SELECT blog_id FROM wp_blogs WHERE domain IN ('domain.no') AND path IN ( '/fondsinvesteringer/', '/' ); blog_id 2 1 DROP TABLE wp_blogs; -SET GLOBAL innodb_prefix_index_cluster_optimization = @save_opt; SET GLOBAL innodb_stats_persistent = @save_innodb_stats_persistent; diff --git a/mysql-test/main/fast_prefix_index_fetch_innodb.test b/mysql-test/main/fast_prefix_index_fetch_innodb.test index 52066e96117..eca87e3db28 100644 --- a/mysql-test/main/fast_prefix_index_fetch_innodb.test +++ b/mysql-test/main/fast_prefix_index_fetch_innodb.test @@ -1,10 +1,6 @@ -- source include/have_innodb.inc --disable_service_connection -SET @save_opt= @@GLOBAL.innodb_prefix_index_cluster_optimization; -set global innodb_prefix_index_cluster_optimization = ON; -show variables like 'innodb_prefix_index_cluster_optimization'; - SET @save_innodb_stats_persistent=@@GLOBAL.innodb_stats_persistent; SET GLOBAL innodb_stats_persistent = OFF; @@ -29,185 +25,28 @@ insert into prefixinno values (1, 1001, repeat('a', 1)), select * from prefixinno; -let $show_count_statement = show status like 'innodb_secondary_index_triggered_cluster_reads'; -let $show_opt_statement = show status like 'innodb_secondary_index_triggered_cluster_reads_avoided'; - ---echo # Baseline sanity check: 0, 0. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - -select "no-op query"; - -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible for optimization. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('d', 31); -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible for optimization, access via fake_id only. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where fake_id = 1031; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible for optimization, access via fake_id of big row. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where fake_id = 1033; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible for optimization. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('x', 32); - -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - ---echo # Not eligible for optimization. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('y', 33); -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - ---echo # Eligible, should not increment lookup counter. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('b', 8); - -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - ---echo # Eligible, should not increment lookup counter. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('c', 24); - -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - ---echo # Should increment lookup counter. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - select id, bigfield from prefixinno where bigfield = repeat('z', 128); - -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - ---echo # Disable optimization, confirm we still increment counter. -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - -set global innodb_prefix_index_cluster_optimization = OFF; select id, bigfield from prefixinno where fake_id = 1033; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval select $count - $base_count into @cluster_lookups; -eval select $opt - $base_opt into @cluster_lookups_avoided; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - drop table prefixinno; --echo # Multi-byte handling case -set global innodb_prefix_index_cluster_optimization = ON; SET NAMES utf8mb4; CREATE TABLE t1( f1 varchar(10) CHARACTER SET UTF8MB4 COLLATE UTF8MB4_BIN, @@ -218,200 +57,38 @@ INSERT INTO t1 VALUES('தமிழà¯'), ('ðŸ±ðŸŒ‘'), ('🌒'), ('🌑'); INSERT INTO t1 VALUES('😊me'), ('eu€'), ('ls¢'); --echo # Eligible - record length is shorter than prefix -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'a'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'c%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'až'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'தமிழà¯'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ggáµ·%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '😊%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'ls¢'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '¢¢%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ðŸ±ðŸŒ‘%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌑%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌒%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - DROP TABLE t1; --echo # Multi-byte with minimum character length > 1 bytes @@ -425,201 +102,38 @@ INSERT INTO t1 VALUES('தமிழà¯'), ('ðŸ±ðŸŒ‘'), ('🌒'), ('🌑'); INSERT INTO t1 VALUES('😊me'), ('eu€'), ('ls¢'); --echo # Eligible - record length is shorter than prefix -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'a'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'c%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'až'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'தமிழà¯'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ggáµ·%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '😊%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 = 'ls¢'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX(`f1`) WHERE f1 like '¢¢%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like 'ðŸ±ðŸŒ‘%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length is shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌑%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Eligible - record length is shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT f1 FROM t1 FORCE INDEX (`f1`) WHERE f1 like '🌒%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - DROP TABLE t1; CREATE TABLE t1( @@ -630,41 +144,11 @@ INSERT INTO t1 VALUES (2, 'test'), (3, repeat('test1', 2000)); INSERT INTO t1(col1) VALUES(1); --echo # Eligible - record length is shorter than prefix length - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT col1 FROM t1 FORCE INDEX (`idx1`) WHERE col2 is NULL; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - --echo # Not eligible - record length longer than prefix index - -let $base_count = query_get_value($show_count_statement, Value, 1); -let $base_opt = query_get_value($show_opt_statement, Value, 1); - SELECT col1 FROM t1 FORCE INDEX (`idx1`) WHERE col2 like 'test1%'; -let $count = query_get_value($show_count_statement, Value, 1); -let $opt = query_get_value($show_opt_statement, Value, 1); - ---disable_query_log -eval set @cluster_lookups = $count - $base_count; -eval set @cluster_lookups_avoided = $opt - $base_opt; ---enable_query_log - -select @cluster_lookups; -select @cluster_lookups_avoided; - DROP TABLE t1; --echo # @@ -710,16 +194,10 @@ INSERT INTO wp_blogs (domain, path) VALUES ('foo', 'bar'), ('bar', 'foo'), ('foo', 'foo'), ('bar', 'bar'), ('foo', 'foobar'), ('bar', 'foobar'), ('foobar', 'foobar'); -SET GLOBAL innodb_prefix_index_cluster_optimization=off; -SELECT blog_id FROM wp_blogs WHERE domain IN ('domain.no') -AND path IN ( '/fondsinvesteringer/', '/' ); - -SET GLOBAL innodb_prefix_index_cluster_optimization=on; SELECT blog_id FROM wp_blogs WHERE domain IN ('domain.no') AND path IN ( '/fondsinvesteringer/', '/' ); DROP TABLE wp_blogs; -SET GLOBAL innodb_prefix_index_cluster_optimization = @save_opt; SET GLOBAL innodb_stats_persistent = @save_innodb_stats_persistent; --enable_service_connection diff --git a/mysql-test/main/func_default.result b/mysql-test/main/func_default.result index 8330b3a39fe..d01a86b4cd1 100644 --- a/mysql-test/main/func_default.result +++ b/mysql-test/main/func_default.result @@ -175,7 +175,7 @@ default(a) = now() 1 drop view v1, v2; drop table t1; -create table t1 (v1 timestamp) select 'x'; +create table t1 (v1 timestamp not null default now() on update now()) select 'x'; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/main/func_default.test b/mysql-test/main/func_default.test index 1125ac32e81..ebd4f6e7b1e 100644 --- a/mysql-test/main/func_default.test +++ b/mysql-test/main/func_default.test @@ -156,7 +156,7 @@ drop table t1; --enable_view_protocol -create table t1 (v1 timestamp) select 'x'; +create table t1 (v1 timestamp not null default now() on update now()) select 'x'; show create table t1; select default(v1) from (select v1 from t1) dt; select default(v1) from (select v1 from t1 group by v1) dt; diff --git a/mysql-test/main/func_des_encrypt.result b/mysql-test/main/func_des_encrypt.result index 540596589b6..9ce577a5794 100644 --- a/mysql-test/main/func_des_encrypt.result +++ b/mysql-test/main/func_des_encrypt.result @@ -1,12 +1,16 @@ select des_encrypt('hello'); des_encrypt('hello') €Ö2nV“Ø} +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release # # Bug #11643: des_encrypt() causes server to die # CREATE TABLE t1 (des VARBINARY(200) NOT NULL DEFAULT '') ENGINE=MyISAM; INSERT INTO t1 VALUES ('1234'), ('12345'), ('123456'), ('1234567'); UPDATE t1 SET des=DES_ENCRYPT('1234'); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release SELECT LENGTH(des) FROM t1; LENGTH(des) 9 @@ -19,6 +23,8 @@ DES_DECRYPT(des) 1234 1234 1234 +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release SELECT LENGTH(DES_ENCRYPT('1234')), LENGTH(DES_ENCRYPT('12345')), @@ -26,6 +32,11 @@ LENGTH(DES_ENCRYPT('123456')), LENGTH(DES_ENCRYPT('1234567')); LENGTH(DES_ENCRYPT('1234')) LENGTH(DES_ENCRYPT('12345')) LENGTH(DES_ENCRYPT('123456')) LENGTH(DES_ENCRYPT('1234567')) 9 9 9 9 +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release SELECT DES_DECRYPT(DES_ENCRYPT('1234')), DES_DECRYPT(DES_ENCRYPT('12345')), @@ -33,6 +44,15 @@ DES_DECRYPT(DES_ENCRYPT('123456')), DES_DECRYPT(DES_ENCRYPT('1234567')); DES_DECRYPT(DES_ENCRYPT('1234')) DES_DECRYPT(DES_ENCRYPT('12345')) DES_DECRYPT(DES_ENCRYPT('123456')) DES_DECRYPT(DES_ENCRYPT('1234567')) 1234 12345 123456 1234567 +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release DROP TABLE t1; End of 5.0 tests # @@ -64,6 +84,8 @@ i NULL j 000000000009 j NULL NULL NULL +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release DROP TABLE t1; CREATE TABLE t1 (a INT); INSERT t1 VALUES (1),(2); @@ -71,5 +93,20 @@ SELECT CHAR_LENGTH(a), DES_DECRYPT(a) FROM (SELECT _utf8 0xC2A2 AS a FROM t1) AS CHAR_LENGTH(a) DES_DECRYPT(a) 1 ¢ 1 ¢ +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release DROP TABLE t1; -End of 10.5 tests +# +# End of 10.5 tests +# +# +# MDEV-27104 deprecate DES_ENCRYPT/DECRYPT functions +# +# just show how to disable deprecation note +set sql_notes=0; +select hex(des_encrypt('a')); +hex(des_encrypt('a')) +80E4DE4136BA6CD7F3 +# +# End of 10.10 tests +# diff --git a/mysql-test/main/func_des_encrypt.test b/mysql-test/main/func_des_encrypt.test index 44fc30ff00f..884fad54635 100644 --- a/mysql-test/main/func_des_encrypt.test +++ b/mysql-test/main/func_des_encrypt.test @@ -1,4 +1,6 @@ -- source include/have_des.inc +#double warning for view protocol +--source include/no_view_protocol.inc # This test can't be in func_encrypt.test, because it requires # --des-key-file to not be set. @@ -57,4 +59,17 @@ INSERT t1 VALUES (1),(2); SELECT CHAR_LENGTH(a), DES_DECRYPT(a) FROM (SELECT _utf8 0xC2A2 AS a FROM t1) AS t2; DROP TABLE t1; ---Echo End of 10.5 tests +--echo # +--echo # End of 10.5 tests +--echo # + +--echo # +--echo # MDEV-27104 deprecate DES_ENCRYPT/DECRYPT functions +--echo # +--echo # just show how to disable deprecation note +set sql_notes=0; +select hex(des_encrypt('a')); + +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/func_encrypt.result b/mysql-test/main/func_encrypt.result index 97aaed336de..4570ff312cf 100644 --- a/mysql-test/main/func_encrypt.result +++ b/mysql-test/main/func_encrypt.result @@ -1,45 +1,125 @@ drop table if exists t1; create table t1 (x blob); insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('a','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','a')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('ab','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','ab')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abc','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abc')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcd','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcd')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcde','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcde')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdef','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdef')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdefg','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefg')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdefgh','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefgh')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdefghi','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghi')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdefghij','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghij')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('abcdefghijk','The quick red fox jumped over the lazy brown dog')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghijk')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('quick red fox jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('red fox jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('fox jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog!','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog!!','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog!!!','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog!!!!','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('dog!!!!!','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release select hex(x), hex(des_decrypt(x,'sabakala')) from t1; hex(x) hex(des_decrypt(x,'sabakala')) FFA185A4656D113445E31D7A5B31BB57671A4CA9E21E63FE5D9C801E0CC7AA6190C13E269C2AE8D8060D3FB3FEA94FEC7FB006B9DCAC3E3E41 NULL @@ -82,6 +162,8 @@ FF3FC2E42D7C840905 646F6721212121 FF9723312D26D9E6DA01D01A784A64DB9D 646F672121212121 FF8333F3DD21E4488F967E03DD12394813A49F72848BB49473D3CB1C8A1AACF220 6A756D706564206F76657220746865206C617A792062726F776E20646F67 FF8333F3DD21E4488F967E03DD12394813A49F72848BB49473D3CB1C8A1AACF220 6A756D706564206F76657220746865206C617A792062726F776E20646F67 +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(x,'sabakala') as s from t1 having s like '%dog%'; s The quick red fox jumped over the lazy brown dog @@ -101,87 +183,145 @@ dog!!!! dog!!!!! jumped over the lazy brown dog jumped over the lazy brown dog +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release drop table t1; select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello")); hex(des_encrypt("hello")) des_decrypt(des_encrypt("hello")) 85D6DC8859F9759BBB hello +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(des_encrypt("hello",4)); des_decrypt(des_encrypt("hello",4)) hello +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(des_encrypt("hello",'test'),'test'); des_decrypt(des_encrypt("hello",'test'),'test') hello +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password')); hex(des_encrypt("hello")) hex(des_encrypt("hello",5)) hex(des_encrypt("hello",'default_password')) 85D6DC8859F9759BBB 85D6DC8859F9759BBB FFD6DC8859F9759BBB +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release select des_decrypt(des_encrypt("hello"),'default_password'); des_decrypt(des_encrypt("hello"),'default_password') hello +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(des_encrypt("hello",4),'password4'); des_decrypt(des_encrypt("hello",4),'password4') hello +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_encrypt("hello",10); des_encrypt("hello",10) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1108 Incorrect parameters to procedure 'des_encrypt' select des_encrypt(NULL); des_encrypt(NULL) NULL +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release select des_encrypt(NULL, 10); des_encrypt(NULL, 10) NULL +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release select des_encrypt(NULL, NULL); des_encrypt(NULL, NULL) NULL +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release select des_encrypt(10, NULL); des_encrypt(10, NULL) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1108 Incorrect parameters to procedure 'des_encrypt' select des_encrypt("hello", NULL); des_encrypt("hello", NULL) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1108 Incorrect parameters to procedure 'des_encrypt' select des_decrypt("hello",10); des_decrypt("hello",10) hello +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(NULL); des_decrypt(NULL) NULL +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(NULL, 10); des_decrypt(NULL, 10) NULL +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(NULL, NULL); des_decrypt(NULL, NULL) NULL +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt(10, NULL); des_decrypt(10, NULL) 10 +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select des_decrypt("hello", NULL); des_decrypt("hello", NULL) hello +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release SET @a=des_decrypt(des_encrypt("hello")); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release flush des_key_file; select @a = des_decrypt(des_encrypt("hello")); @a = des_decrypt(des_encrypt("hello")) 1 +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select hex("hello"); hex("hello") 68656C6C6F select hex(des_decrypt(des_encrypt("hello",4),'password2')); hex(des_decrypt(des_encrypt("hello",4),'password2')) NULL +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select hex(des_decrypt(des_encrypt("hello","hidden"))); hex(des_decrypt(des_encrypt("hello","hidden"))) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1108 Incorrect parameters to procedure 'des_decrypt' explain extended select des_decrypt(des_encrypt("hello",4),'password2'), des_decrypt(des_encrypt("hello","hidden")); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Note 1003 select des_decrypt(des_encrypt('hello',4),'password2') AS `des_decrypt(des_encrypt("hello",4),'password2')`,des_decrypt(des_encrypt('hello','hidden')) AS `des_decrypt(des_encrypt("hello","hidden"))` # # Start of 10.1 tests @@ -196,6 +336,7 @@ SELECT * FROM t1 WHERE a=1 AND DES_ENCRYPT('test',a)=_latin1 'abc' COLLATE latin id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1 and des_encrypt('test',`test`.`t1`.`a`) = 'abc' DROP TABLE t1; # @@ -212,6 +353,9 @@ a VARCHAR(30), b BLOB DEFAULT DES_ENCRYPT(a, 'passwd'), c TEXT DEFAULT DES_DECRYPT(b, 'passwd') ); +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/main/func_encrypt.test b/mysql-test/main/func_encrypt.test index 4a8c20e3dbc..306939ef2ac 100644 --- a/mysql-test/main/func_encrypt.test +++ b/mysql-test/main/func_encrypt.test @@ -1,4 +1,6 @@ -- source include/have_des.inc +#double warning for view protocol +--source include/no_view_protocol.inc --disable_warnings drop table if exists t1; @@ -120,7 +122,9 @@ CREATE TABLE t1 ( b BLOB DEFAULT DES_ENCRYPT(a, 'passwd'), c TEXT DEFAULT DES_DECRYPT(b, 'passwd') ); +--disable_warnings SHOW CREATE TABLE t1; +--enable_warnings INSERT INTO t1 (a) VALUES ('test'); SELECT c FROM t1; DROP TABLE t1; diff --git a/mysql-test/main/func_encrypt_nossl.result b/mysql-test/main/func_encrypt_nossl.result index dd45717a22f..b28d4811433 100644 --- a/mysql-test/main/func_encrypt_nossl.result +++ b/mysql-test/main/func_encrypt_nossl.result @@ -2,67 +2,87 @@ select des_encrypt("test", 'akeystr'); des_encrypt("test", 'akeystr') NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_encrypt("test", 1); des_encrypt("test", 1) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_encrypt("test", 9); des_encrypt("test", 9) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_encrypt("test", 100); des_encrypt("test", 100) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_encrypt("test", NULL); des_encrypt("test", NULL) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_encrypt(NULL, NULL); des_encrypt(NULL, NULL) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt("test", 'anotherkeystr'); des_decrypt("test", 'anotherkeystr') NULL Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt(1, 1); des_decrypt(1, 1) NULL Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt(des_encrypt("test", 'thekey')); des_decrypt(des_encrypt("test", 'thekey')) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello")); hex(des_encrypt("hello")) des_decrypt(des_encrypt("hello")) NULL NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",4)); des_decrypt(des_encrypt("hello",4)) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",'test'),'test'); des_decrypt(des_encrypt("hello",'test'),'test') NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password')); hex(des_encrypt("hello")) hex(des_encrypt("hello",5)) hex(des_encrypt("hello",'default_password')) NULL NULL NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working Warning 1289 The 'des_encrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working @@ -70,19 +90,28 @@ select des_decrypt(des_encrypt("hello"),'default_password'); des_decrypt(des_encrypt("hello"),'default_password') NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select des_decrypt(des_encrypt("hello",4),'password4'); des_decrypt(des_encrypt("hello",4),'password4') NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working SET @a=des_decrypt(des_encrypt("hello")); Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working flush des_key_file; select @a = des_decrypt(des_encrypt("hello")); @a = des_decrypt(des_encrypt("hello")) NULL +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release select hex("hello"); hex("hello") 68656C6C6F @@ -90,9 +119,13 @@ select hex(des_decrypt(des_encrypt("hello",4),'password2')); hex(des_decrypt(des_encrypt("hello",4),'password2')) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working select hex(des_decrypt(des_encrypt("hello","hidden"))); hex(des_decrypt(des_encrypt("hello","hidden"))) NULL Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1289 The 'des_decrypt' feature is disabled; you need MariaDB built with '--with-ssl' to have it working diff --git a/mysql-test/main/func_encrypt_nossl.test b/mysql-test/main/func_encrypt_nossl.test index 2dafaa671c4..fbaffe7850c 100644 --- a/mysql-test/main/func_encrypt_nossl.test +++ b/mysql-test/main/func_encrypt_nossl.test @@ -1,4 +1,4 @@ --- source include/not_ssl.inc +-- source include/is_embedded.inc # # Test output from des_encrypt and des_decrypt when server is diff --git a/mysql-test/main/func_encrypt_ucs2.result b/mysql-test/main/func_encrypt_ucs2.result index 5ab3b08fb5d..9f29ca03a03 100644 --- a/mysql-test/main/func_encrypt_ucs2.result +++ b/mysql-test/main/func_encrypt_ucs2.result @@ -4,16 +4,22 @@ SELECT CHAR_LENGTH(DES_ENCRYPT(0, CHAR('1' USING ucs2))); CHAR_LENGTH(DES_ENCRYPT(0, CHAR('1' USING ucs2))) 9 +Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release SELECT CONVERT(DES_ENCRYPT(0, CHAR('1' USING ucs2)),UNSIGNED); CONVERT(DES_ENCRYPT(0, CHAR('1' USING ucs2)),UNSIGNED) 0 Warnings: +Note 1287 'des_encrypt' is deprecated and will be removed in a future release Warning 1292 Truncated incorrect INTEGER value: '\xFFT\xDCiK\x92j\xE6\xFC' SELECT CHAR_LENGTH(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' USING ucs2))); CHAR_LENGTH(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' USING ucs2))) 4 +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release SELECT CONVERT(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' using ucs2)), UNSIGNED); CONVERT(DES_DECRYPT(0xFF0DC9FC9537CA75F4, CHAR('1' using ucs2)), UNSIGNED) 0 Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release Warning 1292 Truncated incorrect INTEGER value: 'test' diff --git a/mysql-test/main/func_encrypt_ucs2.test b/mysql-test/main/func_encrypt_ucs2.test index 6c1306955aa..dc4fd309c07 100644 --- a/mysql-test/main/func_encrypt_ucs2.test +++ b/mysql-test/main/func_encrypt_ucs2.test @@ -1,5 +1,7 @@ -- source include/have_des.inc -- source include/have_ucs2.inc +#double warning for view protocol +--source include/no_view_protocol.inc --echo # --echo # Bug#59648 my_strtoll10_mb2: Assertion `(*endptr - s) % 2 == 0' failed. diff --git a/mysql-test/main/func_hybrid_type.result b/mysql-test/main/func_hybrid_type.result index dde6cfa4ed8..550f61d46e8 100644 --- a/mysql-test/main/func_hybrid_type.result +++ b/mysql-test/main/func_hybrid_type.result @@ -2310,15 +2310,15 @@ LEAST(b, b) AS least____b_b, GREATEST(b, b) AS greatest_b_b FROM t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def test t1 t1 a ___________a 7 19 19 N 9377 0 63 +def test t1 t1 a ___________a 7 19 19 Y 160 0 63 def case_______a 7 19 19 Y 128 0 63 -def case_____a_a 7 19 19 N 129 0 63 -def coalesce___a 7 19 19 N 129 0 63 -def coalesce_a_a 7 19 19 N 129 0 63 -def if_______a_a 7 19 19 N 129 0 63 -def ifnull___a_a 7 19 19 N 129 0 63 -def least____a_a 7 19 19 N 129 0 63 -def greatest_a_a 7 19 19 N 129 0 63 +def case_____a_a 7 19 19 Y 128 0 63 +def coalesce___a 7 19 19 Y 128 0 63 +def coalesce_a_a 7 19 19 Y 128 0 63 +def if_______a_a 7 19 19 Y 128 0 63 +def ifnull___a_a 7 19 19 Y 128 0 63 +def least____a_a 7 19 19 Y 128 0 63 +def greatest_a_a 7 19 19 Y 128 0 63 def test t1 t1 b ___________b 11 10 8 Y 128 0 63 def case_______b 11 10 8 Y 128 0 63 def case_____b_b 11 10 8 Y 128 0 63 @@ -2368,7 +2368,7 @@ def coalesce_b_a 12 19 19 Y 128 0 63 def if_______a_b 12 19 19 Y 128 0 63 def if_______b_a 12 19 19 Y 128 0 63 def ifnull___a_b 12 19 19 Y 128 0 63 -def ifnull___b_a 12 19 19 N 129 0 63 +def ifnull___b_a 12 19 19 Y 128 0 63 def least____a_b 12 19 19 Y 128 0 63 def least____b_a 12 19 19 Y 128 0 63 def greatest_a_b 12 19 19 Y 128 0 63 @@ -2409,15 +2409,15 @@ FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `___________a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `___________a` timestamp NULL DEFAULT NULL, `case_______a` timestamp NULL DEFAULT NULL, - `case_____a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `coalesce___a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `coalesce_a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `if_______a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `ifnull___a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `least____a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', - `greatest_a_a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `case_____a_a` timestamp NULL DEFAULT NULL, + `coalesce___a` timestamp NULL DEFAULT NULL, + `coalesce_a_a` timestamp NULL DEFAULT NULL, + `if_______a_a` timestamp NULL DEFAULT NULL, + `ifnull___a_a` timestamp NULL DEFAULT NULL, + `least____a_a` timestamp NULL DEFAULT NULL, + `greatest_a_a` timestamp NULL DEFAULT NULL, `___________b` time DEFAULT NULL, `case_______b` time DEFAULT NULL, `case_____b_b` time DEFAULT NULL, @@ -2455,7 +2455,7 @@ t2 CREATE TABLE `t2` ( `if_______a_b` datetime DEFAULT NULL, `if_______b_a` datetime DEFAULT NULL, `ifnull___a_b` datetime DEFAULT NULL, - `ifnull___b_a` datetime NOT NULL, + `ifnull___b_a` datetime DEFAULT NULL, `least____a_b` datetime DEFAULT NULL, `least____b_a` datetime DEFAULT NULL, `greatest_a_b` datetime DEFAULT NULL, @@ -3058,12 +3058,12 @@ CREATE TABLE t1 (a TIMESTAMP); INSERT INTO t1 VALUES ('2010-01-01 10:20:30'); SELECT GREATEST(a,a) FROM t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def GREATEST(a,a) 7 19 19 N 129 0 63 +def GREATEST(a,a) 7 19 19 Y 128 0 63 GREATEST(a,a) 2010-01-01 10:20:30 SELECT COALESCE(a,a) FROM t1; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def COALESCE(a,a) 7 19 19 N 129 0 63 +def COALESCE(a,a) 7 19 19 Y 128 0 63 COALESCE(a,a) 2010-01-01 10:20:30 DROP TABLE t1; @@ -3072,7 +3072,7 @@ CREATE TABLE t2 AS SELECT LEAST(a,a),LEAST(b,b),LEAST(a,b) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `LEAST(a,a)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + `LEAST(a,a)` timestamp NULL DEFAULT NULL, `LEAST(b,b)` datetime DEFAULT NULL, `LEAST(a,b)` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci diff --git a/mysql-test/main/func_math.result b/mysql-test/main/func_math.result index 746dd9169ca..a465199c49c 100644 --- a/mysql-test/main/func_math.result +++ b/mysql-test/main/func_math.result @@ -3648,7 +3648,7 @@ DROP TABLE t1,t2; # # MDEV-21278 Assertion `is_unsigned() == attr.unsigned_flag' or Assertion `field.is_sane()' failed # -CREATE TABLE t1 (a TIMESTAMP); +CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT NOW()); INSERT INTO t1 VALUES (NULL),(NULL); SET SESSION SQL_MODE= 'NO_UNSIGNED_SUBTRACTION'; SELECT DISTINCT UUID_SHORT() - a FROM t1; @@ -3663,7 +3663,7 @@ t2 CREATE TABLE `t2` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci DROP TABLE t2, t1; SET sql_mode=DEFAULT; -CREATE TABLE t1 (a TIMESTAMP); +CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT NOW()); INSERT INTO t1 VALUES (NULL),(NULL); SET SESSION SQL_MODE= 'NO_UNSIGNED_SUBTRACTION'; SELECT UUID_SHORT() - a FROM t1; diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test index 02c5b872ea5..d4145a71912 100644 --- a/mysql-test/main/func_math.test +++ b/mysql-test/main/func_math.test @@ -1931,7 +1931,7 @@ DROP TABLE t1,t2; --echo # MDEV-21278 Assertion `is_unsigned() == attr.unsigned_flag' or Assertion `field.is_sane()' failed --echo # -CREATE TABLE t1 (a TIMESTAMP); +CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT NOW()); INSERT INTO t1 VALUES (NULL),(NULL); SET SESSION SQL_MODE= 'NO_UNSIGNED_SUBTRACTION'; --replace_column 1 xxx @@ -1941,7 +1941,7 @@ SHOW CREATE TABLE t2; DROP TABLE t2, t1; SET sql_mode=DEFAULT; -CREATE TABLE t1 (a TIMESTAMP); +CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT NOW()); INSERT INTO t1 VALUES (NULL),(NULL); SET SESSION SQL_MODE= 'NO_UNSIGNED_SUBTRACTION'; --replace_column 1 xxx diff --git a/mysql-test/main/func_str.result b/mysql-test/main/func_str.result index 8de7cbf679f..b912cfa7cd3 100644 --- a/mysql-test/main/func_str.result +++ b/mysql-test/main/func_str.result @@ -1,4 +1,3 @@ -drop table if exists t1,t2; set @save_max_allowed_packet=@@global.max_allowed_packet; set global max_allowed_packet=1048576; connect conn1,localhost,root,,; @@ -5265,3 +5264,178 @@ f # # End of 10.4 tests # +# +# MDEV-25704 Function random_bytes +# +create table t1 as select random_bytes(100); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `random_bytes(100)` varbinary(100) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci +drop table t1; +# The sequence starts at 17 so that the probability of test failure is small enough (about 2^(-136)) +select count(*) from seq_17_to_1024 where random_bytes(seq) <=> random_bytes(seq); +count(*) +0 +select count(*) from seq_1_to_1024 where length(random_bytes(seq)) = seq; +count(*) +1024 +select random_bytes(`0`),`1` from (values (0,1),(null,2),(0,3)) t1; +random_bytes(`0`) 1 + 1 +NULL 2 + 3 +# +# Test NULL output for NULL input +# +SELECT random_bytes(NULL); +random_bytes(NULL) +NULL +# +# Test For values outside range from 1 to 1024 return NULL +# +SELECT random_bytes(0); +random_bytes(0) + +SELECT random_bytes(-1); +random_bytes(-1) +NULL +SELECT random_bytes(-100); +random_bytes(-100) +NULL +SELECT random_bytes(-26); +random_bytes(-26) +NULL +SELECT random_bytes(-132); +random_bytes(-132) +NULL +SELECT random_bytes(1025); +random_bytes(1025) +NULL +SELECT random_bytes(11111); +random_bytes(11111) +NULL +SELECT random_bytes(2056); +random_bytes(2056) +NULL +SELECT length(random_bytes(10.0)); +length(random_bytes(10.0)) +10 +SELECT length(random_bytes(10.1)); +length(random_bytes(10.1)) +10 +SELECT length(random_bytes(+1e1)); +length(random_bytes(+1e1)) +10 +SELECT length(random_bytes(time("00:01"))); +length(random_bytes(time("00:01"))) +100 +SELECT length(random_bytes("10.0")); +length(random_bytes("10.0")) +10 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '10.0' +Warning 1292 Truncated incorrect INTEGER value: '10.0' +SELECT length(random_bytes("10.1")); +length(random_bytes("10.1")) +10 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '10.1' +Warning 1292 Truncated incorrect INTEGER value: '10.1' +SELECT length(random_bytes("+1e1")); +length(random_bytes("+1e1")) +1 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '+1e1' +Warning 1292 Truncated incorrect INTEGER value: '+1e1' +SELECT length(random_bytes("10.0bunnies")); +length(random_bytes("10.0bunnies")) +10 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '10.0bunnies' +Warning 1292 Truncated incorrect INTEGER value: '10.0bunnies' +SELECT length(random_bytes("10.1chickens")); +length(random_bytes("10.1chickens")) +10 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '10.1chickens' +Warning 1292 Truncated incorrect INTEGER value: '10.1chickens' +SELECT length(random_bytes("+1e1rabbits")); +length(random_bytes("+1e1rabbits")) +1 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '+1e1rabbits' +Warning 1292 Truncated incorrect INTEGER value: '+1e1rabbits' +create procedure p1() +begin +declare r ROW (c1 INT); +set r.c1= 10; +select random_bytes(r); +end| +call p1(); +ERROR 21000: Operand should contain 1 column(s) +drop procedure p1; +# +# Test For invalid argument return NULL +# +SELECT random_bytes('s'); +random_bytes('s') + +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 's' +Warning 1292 Truncated incorrect INTEGER value: 's' +SELECT random_bytes('r'); +random_bytes('r') + +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 'r' +Warning 1292 Truncated incorrect INTEGER value: 'r' +SELECT random_bytes('res'); +random_bytes('res') + +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 'res' +Warning 1292 Truncated incorrect INTEGER value: 'res' +SELECT random_bytes('test'); +random_bytes('test') + +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 'test' +Warning 1292 Truncated incorrect INTEGER value: 'test' +# +# MDEV-29108 RANDOM_BYTES - assertion in Create_tmp_table::finalize +# +CREATE TABLE t (a INT); +INSERT INTO t VALUES (1),(2); +SELECT RANDOM_BYTES(-10) f1, IFNULL(a,1) f2 FROM t GROUP BY f1, f2; +f1 f2 +NULL 1 +NULL 2 +DROP TABLE t; +# +# MDEV-29154 Excessive warnings upon a call to RANDOM_BYTES +# +select length(random_bytes(cast('x' as unsigned)+1)); +length(random_bytes(cast('x' as unsigned)+1)) +1 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 'x' +Warning 1292 Truncated incorrect INTEGER value: 'x' +select repeat('.', cast('x' as unsigned)+1); +repeat('.', cast('x' as unsigned)+1) +. +Warnings: +Warning 1292 Truncated incorrect INTEGER value: 'x' +Warning 1292 Truncated incorrect INTEGER value: 'x' +# +# MDEV-23149 Server crashes in my_convert / ErrConvString::ptr / Item_char_typecast::check_truncation_with_warn +# +select "a" in ("abc", (convert(random_bytes(8) ,binary(2)))); +"a" in ("abc", (convert(random_bytes(8) ,binary(2)))) +0 +Warnings: +Warning 1292 Truncated incorrect BINARY(2) value: '...random bytes...' +# +# End of 10.10 tests +# diff --git a/mysql-test/main/func_str.test b/mysql-test/main/func_str.test index 390b5199cec..1c8839f24a2 100644 --- a/mysql-test/main/func_str.test +++ b/mysql-test/main/func_str.test @@ -1,10 +1,7 @@ # Description # ----------- # Testing string functions - ---disable_warnings -drop table if exists t1,t2; ---enable_warnings +--source include/have_sequence.inc set @save_max_allowed_packet=@@global.max_allowed_packet; set global max_allowed_packet=1048576; @@ -2314,3 +2311,106 @@ SELECT GROUP_CONCAT( UpdateXML( '<a>new year</a>', '/a', '2019-01-01 00:00:00' ) --echo # --echo # End of 10.4 tests --echo # + +--echo # +--echo # MDEV-25704 Function random_bytes +--echo # + +create table t1 as select random_bytes(100); +show create table t1; +drop table t1; + +--echo # The sequence starts at 17 so that the probability of test failure is small enough (about 2^(-136)) +select count(*) from seq_17_to_1024 where random_bytes(seq) <=> random_bytes(seq); + +select count(*) from seq_1_to_1024 where length(random_bytes(seq)) = seq; + +select random_bytes(`0`),`1` from (values (0,1),(null,2),(0,3)) t1; + +--echo # +--echo # Test NULL output for NULL input +--echo # + +SELECT random_bytes(NULL); + +--echo # +--echo # Test For values outside range from 1 to 1024 return NULL +--echo # + +SELECT random_bytes(0); +SELECT random_bytes(-1); +SELECT random_bytes(-100); +SELECT random_bytes(-26); +SELECT random_bytes(-132); +SELECT random_bytes(1025); +SELECT random_bytes(11111); +SELECT random_bytes(2056); + +#double warning for view protocol +--disable_view_protocol +SELECT length(random_bytes(10.0)); +SELECT length(random_bytes(10.1)); +SELECT length(random_bytes(+1e1)); +SELECT length(random_bytes(time("00:01"))); +SELECT length(random_bytes("10.0")); +SELECT length(random_bytes("10.1")); +SELECT length(random_bytes("+1e1")); +SELECT length(random_bytes("10.0bunnies")); +SELECT length(random_bytes("10.1chickens")); +SELECT length(random_bytes("+1e1rabbits")); +--enable_view_protocol + +--delimiter | +create procedure p1() +begin + declare r ROW (c1 INT); + set r.c1= 10; + select random_bytes(r); +end| +--delimiter ; +--error 1241 +call p1(); +drop procedure p1; + +--echo # +--echo # Test For invalid argument return NULL +--echo # +#double warning for view protocol +--disable_view_protocol +SELECT random_bytes('s'); +SELECT random_bytes('r'); +SELECT random_bytes('res'); +SELECT random_bytes('test'); +--enable_view_protocol + +--echo # +--echo # MDEV-29108 RANDOM_BYTES - assertion in Create_tmp_table::finalize +--echo # + +CREATE TABLE t (a INT); +INSERT INTO t VALUES (1),(2); +SELECT RANDOM_BYTES(-10) f1, IFNULL(a,1) f2 FROM t GROUP BY f1, f2; + +# Cleanup +DROP TABLE t; + +--echo # +--echo # MDEV-29154 Excessive warnings upon a call to RANDOM_BYTES +--echo # +#double warning for view protocol +--disable_view_protocol +select length(random_bytes(cast('x' as unsigned)+1)); +select repeat('.', cast('x' as unsigned)+1); +--enable_view_protocol + +--echo # +--echo # MDEV-23149 Server crashes in my_convert / ErrConvString::ptr / Item_char_typecast::check_truncation_with_warn +--echo # +#double warning for view protocol +--disable_view_protocol +--replace_regex /'.*'/'...random bytes...'/ +select "a" in ("abc", (convert(random_bytes(8) ,binary(2)))); +--enable_view_protocol +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/greedy_optimizer.result b/mysql-test/main/greedy_optimizer.result index d7c7e603c68..55812cb6ff9 100644 --- a/mysql-test/main/greedy_optimizer.result +++ b/mysql-test/main/greedy_optimizer.result @@ -155,9 +155,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -179,9 +179,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -237,9 +237,9 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join) 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) show status like 'Last_query_cost'; Variable_name Value @@ -261,9 +261,9 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) show status like 'Last_query_cost'; Variable_name Value @@ -311,9 +311,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -335,9 +335,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -389,9 +389,9 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join) 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) show status like 'Last_query_cost'; Variable_name Value @@ -413,17 +413,17 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) show status like 'Last_query_cost'; Variable_name Value Last_query_cost 362.618727 -set optimizer_prune_level=1; +set optimizer_prune_level=2; select @@optimizer_prune_level; @@optimizer_prune_level -1 +2 set optimizer_search_depth=0; select @@optimizer_search_depth; @@optimizer_search_depth @@ -467,9 +467,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -491,9 +491,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -543,9 +543,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -567,9 +567,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -619,9 +619,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -643,9 +643,9 @@ Last_query_cost 844.037037 explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 +1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where -1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) @@ -729,5 +729,2207 @@ t4 LEFT JOIN (t5 JOIN t5_1 ON t5.l = t5_1.l) ON t5.d = t4.d 1 SET optimizer_search_depth = DEFAULT; DROP TABLE t1,t2,t2_1,t3,t3_1,t4,t4_1,t5,t5_1; -End of 5.0 tests set join_cache_level=@save_join_cache_level; +End of 5.0 tests +# +# Bug #59326: Greedy optimizer produce stupid query execution plans. +# +CREATE TABLE t10( +K INT NOT NULL AUTO_INCREMENT, +I INT, +PRIMARY KEY(K) +); +INSERT INTO t10(I) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(0); +CREATE TABLE t100 LIKE t10; +INSERT INTO t100(I) +SELECT X.I FROM t10 AS X,t10 AS Y; +CREATE TABLE t10000 LIKE t10; +INSERT INTO t10000(I) +SELECT X.I FROM t100 AS X, t100 AS Y; +EXPLAIN SELECT * FROM t10,t100,t10000; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +EXPLAIN SELECT * FROM t10,t10000,t100; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +EXPLAIN SELECT * FROM t100,t10,t10000; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +EXPLAIN SELECT * FROM t100,t10000,t10; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +EXPLAIN SELECT * FROM t10000,t10,t100; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +EXPLAIN SELECT * FROM t10000,t100,t10; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using join buffer (flat, BNL join) +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using join buffer (incremental, BNL join) +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +COUNT(*) +9 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.I; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +### NOTE: Handler_reads: 31, expected: 30 ### +flush status; +EXPLAIN SELECT COUNT(*) FROM t100,t10,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +SELECT COUNT(*) FROM t100,t10,t10000 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t100,t10000,t10 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +SELECT COUNT(*) FROM t100,t10000,t10 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10000,t10,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT COUNT(*) FROM t10000,t10,t100 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +### NOTE: Handler_reads: 31, expected: 30 ### +flush status; +EXPLAIN SELECT COUNT(*) FROM t10000,t100,t10 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.K 1 Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +SELECT COUNT(*) FROM t10000,t100,t10 +WHERE t100.K=t10.I +AND t10000.K=t10.K; +COUNT(*) +9 +### NOTE: Handler_reads: 31, expected: 30 ### +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +COUNT(*) +90 +# See BUG#18352936 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +COUNT(*) +90 +# See BUG#18352936 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t10.I; +COUNT(*) +90 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +COUNT(*) +90 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +COUNT(*) +90 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE t10000 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t100 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I +AND t10000.K=t100.I; +COUNT(*) +90 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 ALL NULL NULL NULL NULL 10 Using where +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ALL NULL NULL NULL NULL 10000 Using where; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +CREATE INDEX IX ON t10(I); +CREATE INDEX IX ON t100(I); +CREATE INDEX IX ON t10000(I); +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ref IX IX 5 test.t10.I 1000 Using index +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +### NOTE: Handler_reads: 9030, expected: 9045 ### +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE t100 eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE t10000 ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I +AND t10000.I=t10.I; +COUNT(*) +9000 +### NOTE: Handler_reads: 9030, expected: 9045 ### +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y index NULL PRIMARY 4 NULL 10000 Using index; Using join buffer (flat, BNL join) +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +COUNT(*) +90000 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=t10.i; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=t10.i; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +flush status; +EXPLAIN SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=x.k; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t10 index IX IX 5 NULL 10 Using where; Using index +1 SIMPLE x eq_ref PRIMARY PRIMARY 4 test.t10.I 1 Using index +1 SIMPLE y ref IX IX 5 test.t10.I 1000 Using index +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i +AND y.i=x.k; +COUNT(*) +9000 +# +# Test improved capabilities of analyzing complex query +# plans without restricting 'optimizer_search_depth'. +# Fix problems like those reported as bug#41740 & bug#58225. +# +# EPLAIN of queries using T1-T62 will timeout/hang wo/ fixes +# +DROP TABLE t10, t10000; +CREATE TABLE t1 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t1(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 1; +CREATE TABLE t2 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t2(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 2; +CREATE TABLE t3 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t3(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 3; +CREATE TABLE t4 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t4(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 4; +CREATE TABLE t5 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t5(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 5; +CREATE TABLE t6 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t6(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 6; +CREATE TABLE t7 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t7(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 7; +CREATE TABLE t8 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t8(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 8; +CREATE TABLE t9 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t9(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 9; +CREATE TABLE t10 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t10(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 10; +CREATE TABLE t11 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t11(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 11; +CREATE TABLE t12 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t12(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 12; +CREATE TABLE t13 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t13(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 13; +CREATE TABLE t14 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t14(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 14; +CREATE TABLE t15 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t15(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 15; +CREATE TABLE t16 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t16(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 16; +CREATE TABLE t17 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t17(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 17; +CREATE TABLE t18 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t18(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 18; +CREATE TABLE t19 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t19(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 19; +CREATE TABLE t20 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t20(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 20; +CREATE TABLE t21 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t21(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 21; +CREATE TABLE t22 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t22(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 22; +CREATE TABLE t23 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t23(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 23; +CREATE TABLE t24 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t24(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 24; +CREATE TABLE t25 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t25(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 25; +CREATE TABLE t26 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t26(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 26; +CREATE TABLE t27 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t27(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 27; +CREATE TABLE t28 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t28(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 28; +CREATE TABLE t29 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t29(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 29; +CREATE TABLE t30 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t30(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 30; +CREATE TABLE t31 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t31(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 31; +CREATE TABLE t32 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t32(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 32; +CREATE TABLE t33 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t33(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 33; +CREATE TABLE t34 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t34(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 34; +CREATE TABLE t35 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t35(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 35; +CREATE TABLE t36 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t36(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 36; +CREATE TABLE t37 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t37(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 37; +CREATE TABLE t38 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t38(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 38; +CREATE TABLE t39 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t39(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 39; +CREATE TABLE t40 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t40(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 40; +CREATE TABLE t41 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t41(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 41; +CREATE TABLE t42 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t42(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 42; +CREATE TABLE t43 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t43(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 43; +CREATE TABLE t44 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t44(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 44; +CREATE TABLE t45 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t45(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 45; +CREATE TABLE t46 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t46(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 46; +CREATE TABLE t47 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t47(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 47; +CREATE TABLE t48 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t48(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 48; +CREATE TABLE t49 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t49(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 49; +CREATE TABLE t50 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t50(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 50; +CREATE TABLE t51 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t51(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 51; +CREATE TABLE t52 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t52(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 52; +CREATE TABLE t53 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t53(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 53; +CREATE TABLE t54 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t54(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 54; +CREATE TABLE t55 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t55(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 55; +CREATE TABLE t56 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t56(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 56; +CREATE TABLE t57 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t57(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 57; +CREATE TABLE t58 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t58(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 58; +CREATE TABLE t59 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t59(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 59; +CREATE TABLE t60 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t60(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 60; +CREATE TABLE t61 ( K INT NOT NULL AUTO_INCREMENT, +I INT, +A INT, +PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; +INSERT INTO t61(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= 61; +ANALYZE TABLE t100, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61; +set optimizer_prune_level=default; +flush status; +set optimizer_search_depth=0; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I JOIN t60 ON t60.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I JOIN t49 as t49 ON t49.I=x.I JOIN t49 as t50 ON t50.I=x.I JOIN t49 as t51 ON t51.I=x.I JOIN t49 as t52 ON t52.I=x.I JOIN t49 as t53 ON t53.I=x.I JOIN t49 as t54 ON t54.I=x.I JOIN t49 as t55 ON t55.I=x.I JOIN t49 as t56 ON t56.I=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.K = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I JOIN t60 ON t60.K=x.I; +set optimizer_search_depth=1; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I JOIN t60 ON t60.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I JOIN t49 as t49 ON t49.I=x.I JOIN t49 as t50 ON t50.I=x.I JOIN t49 as t51 ON t51.I=x.I JOIN t49 as t52 ON t52.I=x.I JOIN t49 as t53 ON t53.I=x.I JOIN t49 as t54 ON t54.I=x.I JOIN t49 as t55 ON t55.I=x.I JOIN t49 as t56 ON t56.I=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.K = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I JOIN t60 ON t60.K=x.I; +set optimizer_search_depth=3; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I JOIN t60 ON t60.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I JOIN t49 as t49 ON t49.I=x.I JOIN t49 as t50 ON t50.I=x.I JOIN t49 as t51 ON t51.I=x.I JOIN t49 as t52 ON t52.I=x.I JOIN t49 as t53 ON t53.I=x.I JOIN t49 as t54 ON t54.I=x.I JOIN t49 as t55 ON t55.I=x.I JOIN t49 as t56 ON t56.I=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.K = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I JOIN t60 ON t60.K=x.I; +set optimizer_search_depth=62; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I=x.I JOIN t2 ON t2.I=x.I JOIN t3 ON t3.I=x.I JOIN t4 ON t4.I=x.I JOIN t5 ON t5.I=x.I JOIN t6 ON t6.I=x.I JOIN t7 ON t7.I=x.I JOIN t8 ON t8.I=x.I JOIN t9 ON t9.I=x.I JOIN t10 ON t10.I=x.I JOIN t11 ON t11.I=x.I JOIN t12 ON t12.I=x.I JOIN t13 ON t13.I=x.I JOIN t14 ON t14.I=x.I JOIN t15 ON t15.I=x.I JOIN t16 ON t16.I=x.I JOIN t17 ON t17.I=x.I JOIN t18 ON t18.I=x.I JOIN t19 ON t19.I=x.I JOIN t20 ON t20.I=x.I JOIN t21 ON t21.I=x.I JOIN t22 ON t22.I=x.I JOIN t23 ON t23.I=x.I JOIN t24 ON t24.I=x.I JOIN t25 ON t25.I=x.I JOIN t26 ON t26.I=x.I JOIN t27 ON t27.I=x.I JOIN t28 ON t28.I=x.I JOIN t29 ON t29.I=x.I JOIN t30 ON t30.I=x.I JOIN t31 ON t31.I=x.I JOIN t32 ON t32.I=x.I JOIN t33 ON t33.I=x.I JOIN t34 ON t34.I=x.I JOIN t35 ON t35.I=x.I JOIN t36 ON t36.I=x.I JOIN t37 ON t37.I=x.I JOIN t38 ON t38.I=x.I JOIN t39 ON t39.I=x.I JOIN t40 ON t40.I=x.I JOIN t41 ON t41.I=x.I JOIN t42 ON t42.I=x.I JOIN t43 ON t43.I=x.I JOIN t44 ON t44.I=x.I JOIN t45 ON t45.I=x.I JOIN t46 ON t46.I=x.I JOIN t47 ON t47.I=x.I JOIN t48 ON t48.I=x.I JOIN t49 ON t49.I=x.I JOIN t50 ON t50.I=x.I JOIN t51 ON t51.I=x.I JOIN t52 ON t52.I=x.I JOIN t53 ON t53.I=x.I JOIN t54 ON t54.I=x.I JOIN t55 ON t55.I=x.I JOIN t56 ON t56.I=x.I JOIN t57 ON t57.I=x.I JOIN t58 ON t58.I=x.I JOIN t59 ON t59.I=x.I JOIN t60 ON t60.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I; +select @@optimizer_prune_level; +select @@optimizer_search_depth; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 as t1 ON t1.I=x.I JOIN t1 as t2 ON t2.I=x.I JOIN t1 as t3 ON t3.I=x.I JOIN t1 as t4 ON t4.I=x.I JOIN t1 as t5 ON t5.I=x.I JOIN t1 as t6 ON t6.I=x.I JOIN t1 as t7 ON t7.I=x.I JOIN t1 as t8 ON t8.I=x.I JOIN t9 as t9 ON t9.I=x.I JOIN t9 as t10 ON t10.I=x.I JOIN t9 as t11 ON t11.I=x.I JOIN t9 as t12 ON t12.I=x.I JOIN t9 as t13 ON t13.I=x.I JOIN t9 as t14 ON t14.I=x.I JOIN t9 as t15 ON t15.I=x.I JOIN t9 as t16 ON t16.I=x.I JOIN t17 as t17 ON t17.I=x.I JOIN t17 as t18 ON t18.I=x.I JOIN t17 as t19 ON t19.I=x.I JOIN t17 as t20 ON t20.I=x.I JOIN t17 as t21 ON t21.I=x.I JOIN t17 as t22 ON t22.I=x.I JOIN t17 as t23 ON t23.I=x.I JOIN t17 as t24 ON t24.I=x.I JOIN t25 as t25 ON t25.I=x.I JOIN t25 as t26 ON t26.I=x.I JOIN t25 as t27 ON t27.I=x.I JOIN t25 as t28 ON t28.I=x.I JOIN t25 as t29 ON t29.I=x.I JOIN t25 as t30 ON t30.I=x.I JOIN t25 as t31 ON t31.I=x.I JOIN t25 as t32 ON t32.I=x.I JOIN t33 as t33 ON t33.I=x.I JOIN t33 as t34 ON t34.I=x.I JOIN t33 as t35 ON t35.I=x.I JOIN t33 as t36 ON t36.I=x.I JOIN t33 as t37 ON t37.I=x.I JOIN t33 as t38 ON t38.I=x.I JOIN t33 as t39 ON t39.I=x.I JOIN t33 as t40 ON t40.I=x.I JOIN t41 as t41 ON t41.I=x.I JOIN t41 as t42 ON t42.I=x.I JOIN t41 as t43 ON t43.I=x.I JOIN t41 as t44 ON t44.I=x.I JOIN t41 as t45 ON t45.I=x.I JOIN t41 as t46 ON t46.I=x.I JOIN t41 as t47 ON t47.I=x.I JOIN t41 as t48 ON t48.I=x.I JOIN t49 as t49 ON t49.I=x.I JOIN t49 as t50 ON t50.I=x.I JOIN t49 as t51 ON t51.I=x.I JOIN t49 as t52 ON t52.I=x.I JOIN t49 as t53 ON t53.I=x.I JOIN t49 as t54 ON t54.I=x.I JOIN t49 as t55 ON t55.I=x.I JOIN t49 as t56 ON t56.I=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.I = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.I = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.I = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.I = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.I = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.I = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.I = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.I = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.I = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.I = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.I = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.I = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.I = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.I = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.I = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.I = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.I = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.I = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.I = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.I = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.I = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.I = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.I = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.I = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.I = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.I = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.I = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.I = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.I = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.I = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.I = x.I JOIN t2 ON t2.K = x.I JOIN t3 ON t3.K = x.I JOIN t4 ON t4.K = x.I JOIN t5 ON t5.I = x.I JOIN t6 ON t6.K = x.I JOIN t7 ON t7.K = x.I JOIN t8 ON t8.K = x.I JOIN t9 ON t9.I = x.I JOIN t10 ON t10.K = x.I JOIN t11 ON t11.K = x.I JOIN t12 ON t12.K = x.I JOIN t13 ON t13.I = x.I JOIN t14 ON t14.K = x.I JOIN t15 ON t15.K = x.I JOIN t16 ON t16.K = x.I JOIN t17 ON t17.I = x.I JOIN t18 ON t18.K = x.I JOIN t19 ON t19.K = x.I JOIN t20 ON t20.K = x.I JOIN t21 ON t21.I = x.I JOIN t22 ON t22.K = x.I JOIN t23 ON t23.K = x.I JOIN t24 ON t24.K = x.I JOIN t25 ON t25.I = x.I JOIN t26 ON t26.K = x.I JOIN t27 ON t27.K = x.I JOIN t28 ON t28.K = x.I JOIN t29 ON t29.I = x.I JOIN t30 ON t30.K = x.I JOIN t31 ON t31.K = x.I JOIN t32 ON t32.K = x.I JOIN t33 ON t33.I = x.I JOIN t34 ON t34.K = x.I JOIN t35 ON t35.K = x.I JOIN t36 ON t36.K = x.I JOIN t37 ON t37.I = x.I JOIN t38 ON t38.K = x.I JOIN t39 ON t39.K = x.I JOIN t40 ON t40.K = x.I JOIN t41 ON t41.I = x.I JOIN t42 ON t42.K = x.I JOIN t43 ON t43.K = x.I JOIN t44 ON t44.K = x.I JOIN t45 ON t45.I = x.I JOIN t46 ON t46.K = x.I JOIN t47 ON t47.K = x.I JOIN t48 ON t48.K = x.I JOIN t49 ON t49.I = x.I JOIN t50 ON t50.K = x.I JOIN t51 ON t51.K = x.I JOIN t52 ON t52.K = x.I JOIN t53 ON t53.I = x.I JOIN t54 ON t54.K = x.I JOIN t55 ON t55.K = x.I JOIN t56 ON t56.K = x.I JOIN t57 ON t57.I = x.I JOIN t58 ON t58.K = x.I JOIN t59 ON t59.K = x.I JOIN t60 ON t60.K = x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I; +EXPLAIN SELECT COUNT(*) FROM t1 AS x JOIN t1 ON t1.K=x.I JOIN t2 ON t2.K=x.I JOIN t3 ON t3.K=x.I JOIN t4 ON t4.K=x.I JOIN t5 ON t5.K=x.I JOIN t6 ON t6.K=x.I JOIN t7 ON t7.K=x.I JOIN t8 ON t8.K=x.I JOIN t9 ON t9.K=x.I JOIN t10 ON t10.K=x.I JOIN t11 ON t11.K=x.I JOIN t12 ON t12.K=x.I JOIN t13 ON t13.K=x.I JOIN t14 ON t14.K=x.I JOIN t15 ON t15.K=x.I JOIN t16 ON t16.K=x.I JOIN t17 ON t17.K=x.I JOIN t18 ON t18.K=x.I JOIN t19 ON t19.K=x.I JOIN t20 ON t20.K=x.I JOIN t21 ON t21.K=x.I JOIN t22 ON t22.K=x.I JOIN t23 ON t23.K=x.I JOIN t24 ON t24.K=x.I JOIN t25 ON t25.K=x.I JOIN t26 ON t26.K=x.I JOIN t27 ON t27.K=x.I JOIN t28 ON t28.K=x.I JOIN t29 ON t29.K=x.I JOIN t30 ON t30.K=x.I JOIN t31 ON t31.K=x.I JOIN t32 ON t32.K=x.I JOIN t33 ON t33.K=x.I JOIN t34 ON t34.K=x.I JOIN t35 ON t35.K=x.I JOIN t36 ON t36.K=x.I JOIN t37 ON t37.K=x.I JOIN t38 ON t38.K=x.I JOIN t39 ON t39.K=x.I JOIN t40 ON t40.K=x.I JOIN t41 ON t41.K=x.I JOIN t42 ON t42.K=x.I JOIN t43 ON t43.K=x.I JOIN t44 ON t44.K=x.I JOIN t45 ON t45.K=x.I JOIN t46 ON t46.K=x.I JOIN t47 ON t47.K=x.I JOIN t48 ON t48.K=x.I JOIN t49 ON t49.K=x.I JOIN t50 ON t50.K=x.I JOIN t51 ON t51.K=x.I JOIN t52 ON t52.K=x.I JOIN t53 ON t53.K=x.I JOIN t54 ON t54.K=x.I JOIN t55 ON t55.K=x.I JOIN t56 ON t56.K=x.I JOIN t57 ON t57.K=x.I JOIN t58 ON t58.K=x.I JOIN t59 ON t59.K=x.I JOIN t60 ON t60.K=x.I; +DROP TABLE t100, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61; +show status like "optimizer%"; +Variable_name Value +Optimizer_join_prefixes_check_calls 57916 +SET OPTIMIZER_SEARCH_DEPTH = DEFAULT; +# +# Bug found when testing greedy optimizer tests +# +CREATE TABLE t1 (pk INTEGER, +col_int_key INTEGER, +col_varchar_key VARCHAR(8), +PRIMARY KEY (pk), +KEY (col_varchar_key, col_int_key, pk)); +INSERT INTO t1 values (1,1,"A"),(2,2,"B"); +explain SELECT * FROM t1 AS alias1 +WHERE alias1.col_varchar_key IN (SELECT COUNT(*) FROM t1 AS SQ3_alias2 JOIN t1 AS SQ3_alias3 ON (SQ3_alias3.col_varchar_key = SQ3_alias2.col_varchar_key AND SQ3_alias3.pk = SQ3_alias2.pk)); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY alias1 index NULL col_varchar_key 20 NULL 2 Using where; Using index +2 DEPENDENT SUBQUERY SQ3_alias2 index PRIMARY,col_varchar_key col_varchar_key 20 NULL 2 Using index +2 DEPENDENT SUBQUERY SQ3_alias3 eq_ref PRIMARY,col_varchar_key PRIMARY 4 test.SQ3_alias2.pk 1 Using where +drop table t1; +# +# This triggered an assert failure while testing +# +CREATE TABLE t1 (a int, b int, key(b)); +INSERT INTO t1 VALUES (7,4),(1,1); +CREATE TABLE t2 (d int); +INSERT INTO t2 VALUES (2),(3); +CREATE TABLE t3 (c int); +INSERT INTO t3 VALUES (5),(6); +SELECT * FROM t1 WHERE 5 IN (SELECT t1_a.a FROM t1 as t1_a WHERE 1 IN (SELECT t1_b.a FROM t1 as t1_b LEFT JOIN (t2 JOIN t3) ON (t1_b.a = t2.d) WHERE t1_b.b < 1)); +a b +drop table t1,t2,t3; +End of 10.0 tests diff --git a/mysql-test/main/greedy_optimizer.test b/mysql-test/main/greedy_optimizer.test index cac262bca64..2a830c70677 100644 --- a/mysql-test/main/greedy_optimizer.test +++ b/mysql-test/main/greedy_optimizer.test @@ -1,3 +1,5 @@ +--source include/have_innodb.inc + # # A simple test of the greedy query optimization algorithm and the switches that # control the optimizationprocess. @@ -248,7 +250,7 @@ explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and show status like 'Last_query_cost'; -set optimizer_prune_level=1; +set optimizer_prune_level=2; select @@optimizer_prune_level; set optimizer_search_depth=0; @@ -381,6 +383,578 @@ LEFT JOIN ( SET optimizer_search_depth = DEFAULT; DROP TABLE t1,t2,t2_1,t3,t3_1,t4,t4_1,t5,t5_1; +set join_cache_level=@save_join_cache_level; + --echo End of 5.0 tests -set join_cache_level=@save_join_cache_level; +--echo # +--echo # Bug #59326: Greedy optimizer produce stupid query execution plans. +--echo # + +#double warning for view protocol +--disable_view_protocol + +CREATE TABLE t10( + K INT NOT NULL AUTO_INCREMENT, + I INT, + PRIMARY KEY(K) +); +INSERT INTO t10(I) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(0); + +CREATE TABLE t100 LIKE t10; +INSERT INTO t100(I) +SELECT X.I FROM t10 AS X,t10 AS Y; + +CREATE TABLE t10000 LIKE t10; +INSERT INTO t10000(I) +SELECT X.I FROM t100 AS X, t100 AS Y; + +--disable_warnings +let $total_handler_reads= +select sum(variable_value) from information_schema.session_status + where VARIABLE_NAME like 'Handler_read%'; +--enable_warnings + + +## All crossproducts should be executed in order t10,t100,t10000 +EXPLAIN SELECT * FROM t10,t100,t10000; +EXPLAIN SELECT * FROM t10,t10000,t100; +EXPLAIN SELECT * FROM t100,t10,t10000; +EXPLAIN SELECT * FROM t100,t10000,t10; +EXPLAIN SELECT * FROM t10000,t10,t100; +EXPLAIN SELECT * FROM t10000,t100,t10; + +###### +## Ordering between T100,T10000 EQ-joined T10 will +## normally be with smallest EQ-table joined first +###### +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.K=t10.I; +--source include/expect_qep.inc + +## However, swapping EQ_REF-joined tables gives the same cost +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I + AND t10000.K=t10.I; +--source include/check_qep.inc + +##### +# Expect all variants of EQ joining t100 & t10000 with T10 +# to have same cost # handler_reads: +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.K=t10.I; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I + AND t10000.K=t10.I; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t100,t10,t10000 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t100,t10000,t10 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10000,t10,t100 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10000,t100,t10 +WHERE t100.K=t10.I + AND t10000.K=t10.K; +--source include/check_qep.inc + + +##### +## EQ_REF Should be executed before table scan(ALL) +## - Independent of #records in table being EQ_REF-joined +##### +##### +# Expect: Join EQ_REF(t100) before ALL(t10000) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/check_qep.inc + +##### +# Expect: Join EQ_REF(t10000) before ALL(t100) (star-join) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I + AND t10000.K=t10.I; +--source include/expect_qep.inc + +--echo # See BUG#18352936 +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I + AND t10000.K=t10.I; +--source include/check_qep.inc + +--echo # See BUG#18352936 +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I + AND t10000.K=t10.I; +--source include/check_qep.inc + +##### +# Expect: Join EQ_REF(t10000) before ALL(t100) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I + AND t10000.K=t100.I; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.I=t10.I + AND t10000.K=t100.I; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.I=t10.I + AND t10000.K=t100.I; +--source include/check_qep.inc + + +##### +## EQ_REF & ALL join two instances of t10000 with t10: +## Always EQ_REF join first before producing cross product +##### + +##### +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before 'cross' ALL(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +--source include/check_qep.inc + +##### +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before ALL(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/check_qep.inc + +##### +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before ALL(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=x.k; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=x.k; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i + AND y.i=x.k; +--source include/check_qep.inc + + + +## Create indexes to test REF access +CREATE INDEX IX ON t10(I); +CREATE INDEX IX ON t100(I); +CREATE INDEX IX ON t10000(I); + +######## +## EQ_REF Should be executed before 'REF' +## - Independent of #records in table being EQ_REF-joined + +#### +# Expected QEP: 'join EQ_REF(t100) on t100.K=t10.I' before REF(t10000) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t100,t10000 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000,t100 +WHERE t100.K=t10.I + AND t10000.I=t10.I; +--source include/check_qep.inc + + +##### +## EQ_REF & REF join two instances of t10000 with t10: +##### + +##### +## Expect this QEP, cost & #handler_read +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before 'cross' ALL(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i; +--source include/check_qep.inc + +##### +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before REF(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i + AND y.i=t10.i; +--source include/check_qep.inc + +##### +# Expected QEP: 'join EQ_REF(X) on X.K=t10.I' before REF(Y) +let $query= +SELECT STRAIGHT_JOIN COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=x.k; +--source include/expect_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 x,t10000 y +WHERE x.k=t10.i + AND y.i=x.k; +--source include/check_qep.inc + +let $query= +SELECT COUNT(*) FROM t10,t10000 y,t10000 x +WHERE x.k=t10.i + AND y.i=x.k; +--source include/check_qep.inc + +######## + + + +######## + +--echo # +--echo # Test improved capabilities of analyzing complex query +--echo # plans without restricting 'optimizer_search_depth'. +--echo # Fix problems like those reported as bug#41740 & bug#58225. +--echo # +--echo # EPLAIN of queries using T1-T62 will timeout/hang wo/ fixes +--echo # + +DROP TABLE t10, t10000; + +--disable_result_log + +let $tabledef= +( K INT NOT NULL AUTO_INCREMENT, + I INT, + A INT, + PRIMARY KEY(K), KEY IX(A) +) engine = InnoDB; + +let $analyze = ANALYZE TABLE t100; + +let $i= 1; +while ($i < 62) +{ + let $create= CREATE TABLE t$i $tabledef; + eval $create; + + let $insert = + INSERT INTO t$i(I,A) SELECT X.K,X.K FROM t100 AS X, t100 AS Y WHERE X.K < 20 AND Y.K <= $i; + eval $insert; + + let $analyze = $analyze, t$i; + inc $i; +} +eval $analyze; + +set optimizer_prune_level=default; +#--enable_result_log +#select @@optimizer_prune_level; +#--disable_result_log +flush status; + +################# +## The EXPLAIN'ed query itself can't be part of the verified +## result as the QEP is not 100% predictable due to variation +## in statistics from the engines. This is believed to be +## caused by: +## - Variations in table fill degree. +## - 'Fuzzy' statistics provided by engines. +## - Round errors caused by 'cost' calculation using +## 'only' 64-bit double precision. +## - Other bugs...? +## +############### + +## Will test with optimizer_search_depth= [0,1,3,62] +let $depth= 0; +while ($depth<4) +{ + if ($depth==0) + { + set optimizer_search_depth=0; + } + if ($depth==1) + { + set optimizer_search_depth=1; + } + if ($depth==2) + { + set optimizer_search_depth=3; + } + if ($depth==3) + { + set optimizer_search_depth=62; + } + inc $depth; + + + ## Test pruning of joined table scans (ALL) + ## Prepare of QEP without timeout is heavily dependent + ## on maintaining correctly '#rows-sorted' plan + ## + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i < 61) + { + let $query= $query JOIN t$i ON t$i.I=x.I; + inc $i; + + select @@optimizer_prune_level; + select @@optimizer_search_depth; + eval EXPLAIN $query; + } + + ## Test pruning of joined table scans (ALL) + ## with multiple instances of same table. + ## (All instances being equally expensive) + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i <= 56) + { + let $t= t$i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + let $query= $query JOIN $t as t$i ON t$i.I=x.I; + inc $i; + + select @@optimizer_prune_level; + select @@optimizer_search_depth; + eval EXPLAIN $query; + } + + ## A mix of 25% EQ_REF / 75% ALL joins + ## + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i < 60) + { + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + + eval EXPLAIN $query; + } + + ## A mix of 50% EQ_REF / 50% ALL joins + ## + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i < 60) + { + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + + eval EXPLAIN $query; + } + + ## A mix of 75% EQ_REF / 25% ALL joins + ## + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i < 60) + { + let $query= $query JOIN t$i ON t$i.I = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + let $query= $query JOIN t$i ON t$i.K = x.I; + inc $i; + + eval EXPLAIN $query; + } + + ## 100% EQ_REF joins + ## + let $query= SELECT COUNT(*) FROM t1 AS x; + let $i= 1; + while ($i < 61) + { + let $query= $query JOIN t$i ON t$i.K=x.I; + inc $i; + + eval EXPLAIN $query; + } +} + +let $drop = DROP TABLE t100; +let $i= 1; +while ($i < 62) +{ + let $drop = $drop, t$i; + inc $i; +} +eval $drop; + +--enable_result_log + +show status like "optimizer%"; +SET OPTIMIZER_SEARCH_DEPTH = DEFAULT; + +--echo # +--echo # Bug found when testing greedy optimizer tests +--echo # + +CREATE TABLE t1 (pk INTEGER, + col_int_key INTEGER, + col_varchar_key VARCHAR(8), + PRIMARY KEY (pk), + KEY (col_varchar_key, col_int_key, pk)); + +INSERT INTO t1 values (1,1,"A"),(2,2,"B"); +explain SELECT * FROM t1 AS alias1 +WHERE alias1.col_varchar_key IN (SELECT COUNT(*) FROM t1 AS SQ3_alias2 JOIN t1 AS SQ3_alias3 ON (SQ3_alias3.col_varchar_key = SQ3_alias2.col_varchar_key AND SQ3_alias3.pk = SQ3_alias2.pk)); +drop table t1; + +--echo # +--echo # This triggered an assert failure while testing +--echo # + +CREATE TABLE t1 (a int, b int, key(b)); +INSERT INTO t1 VALUES (7,4),(1,1); +CREATE TABLE t2 (d int); +INSERT INTO t2 VALUES (2),(3); +CREATE TABLE t3 (c int); +INSERT INTO t3 VALUES (5),(6); +SELECT * FROM t1 WHERE 5 IN (SELECT t1_a.a FROM t1 as t1_a WHERE 1 IN (SELECT t1_b.a FROM t1 as t1_b LEFT JOIN (t2 JOIN t3) ON (t1_b.a = t2.d) WHERE t1_b.b < 1)); +drop table t1,t2,t3; + +--enable_view_protocol + +--echo End of 10.0 tests diff --git a/mysql-test/main/information_schema.result b/mysql-test/main/information_schema.result index acbfd70e0a4..88026081e89 100644 --- a/mysql-test/main/information_schema.result +++ b/mysql-test/main/information_schema.result @@ -312,17 +312,17 @@ latin1_swedish_nopad_ci latin1 1032 # 1 latin1_nopad_bin latin1 1071 # 1 select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY where COLLATION_NAME like 'latin1%'; -COLLATION_NAME CHARACTER_SET_NAME -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin1_swedish_nopad_ci latin1 -latin1_nopad_bin latin1 +COLLATION_NAME CHARACTER_SET_NAME FULL_COLLATION_NAME ID IS_DEFAULT +latin1_german1_ci latin1 latin1_german1_ci 5 +latin1_swedish_ci latin1 latin1_swedish_ci 8 Yes +latin1_danish_ci latin1 latin1_danish_ci 15 +latin1_german2_ci latin1 latin1_german2_ci 31 +latin1_bin latin1 latin1_bin 47 +latin1_general_ci latin1 latin1_general_ci 48 +latin1_general_cs latin1 latin1_general_cs 49 +latin1_spanish_ci latin1 latin1_spanish_ci 94 +latin1_swedish_nopad_ci latin1 latin1_swedish_nopad_ci 1032 +latin1_nopad_bin latin1 latin1_nopad_bin 1071 drop procedure if exists sel2; drop function if exists sub1; drop function if exists sub2; @@ -610,7 +610,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL, - `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL, + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL, `DESCRIPTION` varchar(60) NOT NULL, `MAXLEN` bigint(3) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci @@ -619,7 +619,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.character_sets; Table Create Table CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL, - `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL, + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL, `DESCRIPTION` varchar(60) NOT NULL, `MAXLEN` bigint(3) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci @@ -634,7 +634,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `CHARACTER_SET_NAME` varchar(32) NOT NULL, - `DEFAULT_COLLATE_NAME` varchar(32) NOT NULL, + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL, `DESCRIPTION` varchar(60) NOT NULL, `MAXLEN` bigint(3) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci @@ -679,8 +679,8 @@ proc modified timestamp proc sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') proc comment text proc character_set_client char(32) -proc collation_connection char(32) -proc db_collation char(32) +proc collation_connection char(64) +proc db_collation char(64) proc body_utf8 longblob proc aggregate enum('NONE','GROUP') drop table t115; @@ -828,7 +828,7 @@ where table_schema="information_schema" and table_name="COLUMNS" and (column_name="character_set_name" or column_name="collation_name"); column_type varchar(32) -varchar(32) +varchar(64) select TABLE_ROWS from information_schema.tables where table_schema="information_schema" and table_name="COLUMNS"; TABLE_ROWS diff --git a/mysql-test/main/information_schema_routines.result b/mysql-test/main/information_schema_routines.result index 90768765883..35f12510556 100644 --- a/mysql-test/main/information_schema_routines.result +++ b/mysql-test/main/information_schema_routines.result @@ -34,8 +34,8 @@ ROUTINES CREATE TEMPORARY TABLE `ROUTINES` ( `ROUTINE_COMMENT` longtext NOT NULL, `DEFINER` varchar(384) NOT NULL, `CHARACTER_SET_CLIENT` varchar(32) NOT NULL, - `COLLATION_CONNECTION` varchar(32) NOT NULL, - `DATABASE_COLLATION` varchar(32) NOT NULL + `COLLATION_CONNECTION` varchar(64) NOT NULL, + `DATABASE_COLLATION` varchar(64) NOT NULL ) DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci SELECT * FROM information_schema.columns WHERE table_schema = 'information_schema' @@ -687,14 +687,14 @@ ORDINAL_POSITION 30 COLUMN_DEFAULT NULL IS_NULLABLE NO DATA_TYPE varchar -CHARACTER_MAXIMUM_LENGTH 32 -CHARACTER_OCTET_LENGTH 96 +CHARACTER_MAXIMUM_LENGTH 64 +CHARACTER_OCTET_LENGTH 192 NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME utf8mb3 COLLATION_NAME utf8mb3_general_ci -COLUMN_TYPE varchar(32) +COLUMN_TYPE varchar(64) COLUMN_KEY EXTRA PRIVILEGES # @@ -709,14 +709,14 @@ ORDINAL_POSITION 31 COLUMN_DEFAULT NULL IS_NULLABLE NO DATA_TYPE varchar -CHARACTER_MAXIMUM_LENGTH 32 -CHARACTER_OCTET_LENGTH 96 +CHARACTER_MAXIMUM_LENGTH 64 +CHARACTER_OCTET_LENGTH 192 NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME utf8mb3 COLLATION_NAME utf8mb3_general_ci -COLUMN_TYPE varchar(32) +COLUMN_TYPE varchar(64) COLUMN_KEY EXTRA PRIVILEGES # @@ -754,8 +754,8 @@ SQL_MODE varchar(8192) NO NULL ROUTINE_COMMENT longtext NO NULL DEFINER varchar(384) NO NULL CHARACTER_SET_CLIENT varchar(32) NO NULL -COLLATION_CONNECTION varchar(32) NO NULL -DATABASE_COLLATION varchar(32) NO NULL +COLLATION_CONNECTION varchar(64) NO NULL +DATABASE_COLLATION varchar(64) NO NULL # ========== routines.2 ========== DROP DATABASE IF EXISTS i_s_routines_test; CREATE DATABASE i_s_routines_test; diff --git a/mysql-test/main/innodb_ext_key.result b/mysql-test/main/innodb_ext_key.result index 3025e3ec3f0..02e199bc58a 100644 --- a/mysql-test/main/innodb_ext_key.result +++ b/mysql-test/main/innodb_ext_key.result @@ -385,9 +385,9 @@ SELECT a FROM t1 AS t, t2 WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t index a,b b 7 NULL 10 Using index +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t.a 1 Using index 1 PRIMARY t1 ref b b 3 test.t.b 2 Using index; Start temporary 1 PRIMARY t2 index NULL PRIMARY 4 NULL 11 Using index; End temporary; Using join buffer (flat, BNL join) -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t.a 1 Using index SELECT a FROM t1 AS t, t2 WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); a diff --git a/mysql-test/main/join.result b/mysql-test/main/join.result index 11b7ecad3ee..65dccc6b9a3 100644 --- a/mysql-test/main/join.result +++ b/mysql-test/main/join.result @@ -890,7 +890,7 @@ insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B; explain select * from t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 10 -show status like '%cost%'; +show status like 'Last_query_cost'; Variable_name Value Last_query_cost 4.016090 select 'The cost of accessing t1 (dont care if it changes' '^'; @@ -904,7 +904,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where 1 SIMPLE A eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where 1 SIMPLE B eq_ref PRIMARY PRIMARY 4 test.A.b 1 -show status like '%cost%'; +show status like 'Last_query_cost'; Variable_name Value Last_query_cost 28.016090 select '^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error' Z; diff --git a/mysql-test/main/join.test b/mysql-test/main/join.test index b99f05f7c88..e929854251a 100644 --- a/mysql-test/main/join.test +++ b/mysql-test/main/join.test @@ -692,13 +692,13 @@ create table t2 (a int, b int, primary key(a)); insert into t2 select @v:=A.a+10*B.a, @v from t1 A, t1 B; explain select * from t1; -show status like '%cost%'; +show status like 'Last_query_cost'; select 'The cost of accessing t1 (dont care if it changes' '^'; select 'vv: Following query must use ALL(t1), eq_ref(A), eq_ref(B): vv' Z; explain select * from t1, t2 A, t2 B where A.a = t1.a and B.a=A.b; -show status like '%cost%'; +show status like 'Last_query_cost'; select '^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error' Z; diff --git a/mysql-test/main/join_cache.result b/mysql-test/main/join_cache.result index 3a5c975f472..fa96261532a 100644 --- a/mysql-test/main/join_cache.result +++ b/mysql-test/main/join_cache.result @@ -2952,7 +2952,7 @@ metaid int NOT NULL default '0', formatid int NOT NULL default '0', status int default NULL, path varchar(100) NOT NULL default '', -datemodified timestamp NOT NULL , +datemodified timestamp NOT NULL default now(), resourcetype int NOT NULL default '1', parameters text, signature int default NULL, diff --git a/mysql-test/main/join_cache.test b/mysql-test/main/join_cache.test index f09f28c273a..125ae84c309 100644 --- a/mysql-test/main/join_cache.test +++ b/mysql-test/main/join_cache.test @@ -1132,7 +1132,7 @@ CREATE TABLE t3( formatid int NOT NULL default '0', status int default NULL, path varchar(100) NOT NULL default '', - datemodified timestamp NOT NULL , + datemodified timestamp NOT NULL default now(), resourcetype int NOT NULL default '1', parameters text, signature int default NULL, diff --git a/mysql-test/main/join_nested.result b/mysql-test/main/join_nested.result index 5f26b03e0d1..eee3a01c078 100644 --- a/mysql-test/main/join_nested.result +++ b/mysql-test/main/join_nested.result @@ -964,13 +964,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0); @@ -1014,13 +1014,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t8`.`a` >= 0 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0); @@ -1065,13 +1065,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ref idx_a idx_a 5 const 2 100.00 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t1 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (flat, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2 and `test`.`t1`.`a` > 0) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b, @@ -1111,20 +1111,20 @@ t0.b=t1.b AND a b a b a b a b a b a b a b a b a b a b 1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1 1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2 +1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1 -1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 -1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1 -1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 -1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 1 -1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2 -1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2 +1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2 -1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2 +1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1 +1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2 +1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2 -1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2 1 2 +1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 1 +1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2 +1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 2 SELECT t2.a,t2.b FROM t2; diff --git a/mysql-test/main/join_nested.test b/mysql-test/main/join_nested.test index cc1bd327031..bc87dab0054 100644 --- a/mysql-test/main/join_nested.test +++ b/mysql-test/main/join_nested.test @@ -637,6 +637,7 @@ SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b, (t8.b=t9.b OR t8.c IS NULL) AND (t9.a=1); +--sorted_result SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b, t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b FROM t0,t1 diff --git a/mysql-test/main/join_nested_jcl6.result b/mysql-test/main/join_nested_jcl6.result index 221a3118b8a..ab5618bd2f6 100644 --- a/mysql-test/main/join_nested_jcl6.result +++ b/mysql-test/main/join_nested_jcl6.result @@ -973,13 +973,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t8 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0); @@ -1023,13 +1023,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join) 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`a` > 0 and `test`.`t4`.`a` > 0 and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t8`.`a` >= 0 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`a` > 0 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0); @@ -1074,13 +1074,13 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t0 ref idx_a idx_a 5 const 2 100.00 1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE t1 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan 1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join) 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join) +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan Warnings: Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t3`.`a` = 1 and `test`.`t4`.`b` = `test`.`t2`.`b` and `test`.`t2`.`b` is not null) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(`test`.`t8`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` < 10 and `test`.`t5`.`b` is not null)) on(`test`.`t7`.`b` = `test`.`t5`.`b` and `test`.`t6`.`b` >= 2 and `test`.`t5`.`b` is not null)) on((`test`.`t3`.`b` = 2 or `test`.`t3`.`c` is null) and (`test`.`t6`.`b` = 2 or `test`.`t6`.`c` is null) and (`test`.`t5`.`b` = `test`.`t0`.`b` or `test`.`t3`.`c` is null or `test`.`t6`.`c` is null or `test`.`t8`.`c` is null) and `test`.`t1`.`a` <> 2 and `test`.`t1`.`a` > 0) join `test`.`t9` where `test`.`t0`.`a` = 1 and `test`.`t1`.`b` = `test`.`t0`.`b` and `test`.`t9`.`a` = 1 and (`test`.`t2`.`a` >= 4 or `test`.`t2`.`c` is null) and (`test`.`t3`.`a` < 5 or `test`.`t3`.`c` is null) and (`test`.`t4`.`b` = `test`.`t3`.`b` or `test`.`t3`.`c` is null or `test`.`t4`.`c` is null) and (`test`.`t5`.`a` >= 2 or `test`.`t5`.`c` is null) and (`test`.`t6`.`a` >= 4 or `test`.`t6`.`c` is null) and (`test`.`t7`.`a` <= 2 or `test`.`t7`.`c` is null) and (`test`.`t8`.`a` < 1 or `test`.`t8`.`c` is null) and (`test`.`t8`.`b` = `test`.`t9`.`b` or `test`.`t8`.`c` is null) SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b, @@ -1118,14 +1118,16 @@ t0.b=t1.b AND (t8.b=t9.b OR t8.c IS NULL) AND (t9.a=1); a b a b a b a b a b a b a b a b a b a b -1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2 +1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1 +1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2 1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1 1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2 -1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1 -1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2 +1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2 +1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1 +1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2 1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2 1 2 @@ -1133,8 +1135,6 @@ a b a b a b a b a b a b a b a b a b a b 1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2 1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1 1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 2 -1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1 -1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2 SELECT t2.a,t2.b FROM t2; a b diff --git a/mysql-test/main/join_outer.result b/mysql-test/main/join_outer.result index 522b668e07b..58f24c236f9 100644 --- a/mysql-test/main/join_outer.result +++ b/mysql-test/main/join_outer.result @@ -2009,10 +2009,10 @@ EXPLAIN EXTENDED SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 -1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (flat, BNLH join) -1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (incremental, BNLH join) +1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (flat, BNLH join) +1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (incremental, BNLH join) Warnings: -Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t3`.`b` = `test`.`t1`.`b` and `test`.`t2`.`b` = `test`.`t1`.`b` +Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t2`.`b` = `test`.`t1`.`b` and `test`.`t3`.`b` = `test`.`t1`.`b` PREPARE stmt FROM 'SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b'; EXECUTE stmt; @@ -2644,9 +2644,9 @@ WHERE t1.timestamp < 1294664900039 AND t1.timestamp > 1294644616416 AND t2.REVTYPE=2; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 42 100.00 Using where +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where 1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where 1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where Warnings: Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`timestamp` AS `timestamp`,`test`.`t1`.`modifiedBy` AS `modifiedBy`,`test`.`t2`.`id` AS `id`,`test`.`t2`.`REV` AS `REV`,`test`.`t2`.`REVTYPE` AS `REVTYPE`,`test`.`t2`.`profile_id` AS `profile_id`,`test`.`t3`.`id` AS `id`,`test`.`t3`.`REV` AS `REV`,`test`.`t3`.`person_id` AS `person_id`,`test`.`t4`.`id` AS `id`,`test`.`t4`.`REV` AS `REV` from `test`.`t1` join `test`.`t2` join `test`.`t3` join `test`.`t4` where `test`.`t2`.`REVTYPE` = 2 and `test`.`t4`.`id` = `test`.`t3`.`person_id` and `test`.`t3`.`id` = `test`.`t2`.`profile_id` and `test`.`t1`.`id` = `test`.`t2`.`REV` and `test`.`t1`.`timestamp` < 1294664900039 and `test`.`t1`.`timestamp` > 1294644616416 SELECT * @@ -2669,9 +2669,9 @@ WHERE t1.timestamp < 1294664900039 AND t1.timestamp > 1294644616416 AND t2.REVTYPE=2; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 42 100.00 Using where +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where 1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where 1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where Warnings: Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`timestamp` AS `timestamp`,`test`.`t1`.`modifiedBy` AS `modifiedBy`,`test`.`t2`.`id` AS `id`,`test`.`t2`.`REV` AS `REV`,`test`.`t2`.`REVTYPE` AS `REVTYPE`,`test`.`t2`.`profile_id` AS `profile_id`,`test`.`t3`.`id` AS `id`,`test`.`t3`.`REV` AS `REV`,`test`.`t3`.`person_id` AS `person_id`,`test`.`t4`.`id` AS `id`,`test`.`t4`.`REV` AS `REV` from `test`.`t4` join `test`.`t3` join `test`.`t2` join `test`.`t1` where `test`.`t2`.`REVTYPE` = 2 and `test`.`t1`.`id` = `test`.`t2`.`REV` and `test`.`t3`.`id` = `test`.`t2`.`profile_id` and `test`.`t4`.`id` = `test`.`t3`.`person_id` and `test`.`t1`.`timestamp` < 1294664900039 and `test`.`t1`.`timestamp` > 1294644616416 SELECT * diff --git a/mysql-test/main/join_outer_innodb.result b/mysql-test/main/join_outer_innodb.result index 6f87048cdc1..809a980576d 100644 --- a/mysql-test/main/join_outer_innodb.result +++ b/mysql-test/main/join_outer_innodb.result @@ -437,15 +437,15 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL a4,a6,a5,a7 NULL NULL NULL 3 Using where 1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a1 1 Using index 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.b2 1 Using where; Using index +1 SIMPLE t8 eq_ref PRIMARY PRIMARY 1 test.t1.a4 1 Using index 1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 test.t1.a2 1 Using index 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.d1 1 Using where 1 SIMPLE t6 eq_ref PRIMARY PRIMARY 4 test.t1.a3 1 Using where; Using index -1 SIMPLE t8 eq_ref PRIMARY PRIMARY 1 test.t1.a4 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 1 test.t1.a7 1 -1 SIMPLE t9 ref PRIMARY PRIMARY 1 test.t1.a4 1 1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t1.a5 1 1 SIMPLE t12 eq_ref PRIMARY PRIMARY 4 test.t11.k3 1 Using where 1 SIMPLE l2 eq_ref PRIMARY PRIMARY 4 test.t11.k4 1 Using where +1 SIMPLE t9 ref PRIMARY PRIMARY 1 test.t1.a4 1 1 SIMPLE t13 ref PRIMARY,m3 m3 8 const,test.t1.a1 1 Using index 1 SIMPLE l4 eq_ref PRIMARY PRIMARY 4 test.t13.m2 1 Using where; Using index 1 SIMPLE m2 ref PRIMARY,m3 m3 8 const,test.t1.a1 1 Using index @@ -459,15 +459,15 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL a4,a6,a5,a7 NULL NULL NULL 3 Using where 1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a1 1 Using index 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.b2 1 Using where; Using index +1 SIMPLE t8 eq_ref PRIMARY PRIMARY 1 test.t1.a4 1 Using index 1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 test.t1.a2 1 Using index 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.d1 1 Using where 1 SIMPLE t6 eq_ref PRIMARY PRIMARY 4 test.t1.a3 1 Using where; Using index -1 SIMPLE t8 eq_ref PRIMARY PRIMARY 1 test.t1.a4 1 Using index 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 1 test.t1.a7 1 -1 SIMPLE t9 ref PRIMARY PRIMARY 1 test.t1.a4 1 1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t1.a5 1 1 SIMPLE t12 eq_ref PRIMARY PRIMARY 4 test.t11.k3 1 Using where 1 SIMPLE l2 eq_ref PRIMARY PRIMARY 4 test.t11.k4 1 Using where +1 SIMPLE t9 ref PRIMARY PRIMARY 1 test.t1.a4 1 1 SIMPLE t13 ref PRIMARY,m3 m3 8 const,test.t1.a1 1 Using index 1 SIMPLE l4 eq_ref PRIMARY PRIMARY 4 test.t13.m2 1 Using where; Using index 1 SIMPLE m2 ref PRIMARY,m3 m3 8 const,test.t1.a1 1 Using index diff --git a/mysql-test/main/join_outer_jcl6.result b/mysql-test/main/join_outer_jcl6.result index b579cfc6ac0..c3dd72e5988 100644 --- a/mysql-test/main/join_outer_jcl6.result +++ b/mysql-test/main/join_outer_jcl6.result @@ -2016,10 +2016,10 @@ EXPLAIN EXTENDED SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 -1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (flat, BNLH join) -1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (incremental, BNLH join) +1 SIMPLE t2 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t1.b 27 3.70 Using index; Using join buffer (flat, BNLH join) +1 SIMPLE t3 hash_ALL PRIMARY #hash#PRIMARY 4 test.t1.b 10 10.00 Using join buffer (incremental, BNLH join) Warnings: -Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t3`.`b` = `test`.`t1`.`b` and `test`.`t2`.`b` = `test`.`t1`.`b` +Note 1003 select `test`.`t2`.`b` AS `b`,`test`.`t1`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t2` join `test`.`t1` join `test`.`t3` where `test`.`t2`.`b` = `test`.`t1`.`b` and `test`.`t3`.`b` = `test`.`t1`.`b` PREPARE stmt FROM 'SELECT * FROM (t2 LEFT JOIN t1 ON t1.b = t2.b) JOIN t3 ON t1.b = t3.b'; EXECUTE stmt; @@ -2651,9 +2651,9 @@ WHERE t1.timestamp < 1294664900039 AND t1.timestamp > 1294644616416 AND t2.REVTYPE=2; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 42 100.00 Using where -1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan -1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index Warnings: Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`timestamp` AS `timestamp`,`test`.`t1`.`modifiedBy` AS `modifiedBy`,`test`.`t2`.`id` AS `id`,`test`.`t2`.`REV` AS `REV`,`test`.`t2`.`REVTYPE` AS `REVTYPE`,`test`.`t2`.`profile_id` AS `profile_id`,`test`.`t3`.`id` AS `id`,`test`.`t3`.`REV` AS `REV`,`test`.`t3`.`person_id` AS `person_id`,`test`.`t4`.`id` AS `id`,`test`.`t4`.`REV` AS `REV` from `test`.`t1` join `test`.`t2` join `test`.`t3` join `test`.`t4` where `test`.`t2`.`REVTYPE` = 2 and `test`.`t4`.`id` = `test`.`t3`.`person_id` and `test`.`t3`.`id` = `test`.`t2`.`profile_id` and `test`.`t1`.`id` = `test`.`t2`.`REV` and `test`.`t1`.`timestamp` < 1294664900039 and `test`.`t1`.`timestamp` > 1294644616416 SELECT * @@ -2676,9 +2676,9 @@ WHERE t1.timestamp < 1294664900039 AND t1.timestamp > 1294644616416 AND t2.REVTYPE=2; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 42 100.00 Using where -1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan -1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.REV 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t3 ref PRIMARY PRIMARY 4 test.t2.profile_id 1 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 SIMPLE t4 ref PRIMARY PRIMARY 4 test.t3.person_id 1 100.00 Using index Warnings: Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`timestamp` AS `timestamp`,`test`.`t1`.`modifiedBy` AS `modifiedBy`,`test`.`t2`.`id` AS `id`,`test`.`t2`.`REV` AS `REV`,`test`.`t2`.`REVTYPE` AS `REVTYPE`,`test`.`t2`.`profile_id` AS `profile_id`,`test`.`t3`.`id` AS `id`,`test`.`t3`.`REV` AS `REV`,`test`.`t3`.`person_id` AS `person_id`,`test`.`t4`.`id` AS `id`,`test`.`t4`.`REV` AS `REV` from `test`.`t4` join `test`.`t3` join `test`.`t2` join `test`.`t1` where `test`.`t2`.`REVTYPE` = 2 and `test`.`t1`.`id` = `test`.`t2`.`REV` and `test`.`t3`.`id` = `test`.`t2`.`profile_id` and `test`.`t4`.`id` = `test`.`t3`.`person_id` and `test`.`t1`.`timestamp` < 1294664900039 and `test`.`t1`.`timestamp` > 1294644616416 SELECT * diff --git a/mysql-test/main/mysql_upgrade-6984.result b/mysql-test/main/mysql_upgrade-6984.result index a0ea4607b24..301fdfc3bfd 100644 --- a/mysql-test/main/mysql_upgrade-6984.result +++ b/mysql-test/main/mysql_upgrade-6984.result @@ -168,3 +168,4 @@ connect con1,localhost,root,foo,,,; update mysql.global_priv set priv=json_compact(json_remove(priv, '$.plugin', '$.authentication_string')) where user='root'; flush privileges; set global event_scheduler=OFF; +# restart diff --git a/mysql-test/main/mysql_upgrade-6984.test b/mysql-test/main/mysql_upgrade-6984.test index 48a06bbd542..034310e036f 100644 --- a/mysql-test/main/mysql_upgrade-6984.test +++ b/mysql-test/main/mysql_upgrade-6984.test @@ -26,3 +26,7 @@ set global event_scheduler=OFF; let MYSQLD_DATADIR= `select @@datadir`; --remove_file $MYSQLD_DATADIR/mysql_upgrade_info + +# --skip-grant-tables state may changed during the test. Need to restart the server +# to restore the --skip-grant-tables state. Otherwise MTR's internal check will fail +--source include/restart_mysqld.inc diff --git a/mysql-test/main/mysql_upgrade.opt b/mysql-test/main/mysql_upgrade.opt new file mode 100644 index 00000000000..b0a968b1bfb --- /dev/null +++ b/mysql-test/main/mysql_upgrade.opt @@ -0,0 +1 @@ +--loose-skip-ssl diff --git a/mysql-test/main/mysqlbinlog-innodb.result b/mysql-test/main/mysqlbinlog-innodb.result index be34c273019..6f0b4dd40b6 100644 --- a/mysql-test/main/mysqlbinlog-innodb.result +++ b/mysql-test/main/mysqlbinlog-innodb.result @@ -29,7 +29,7 @@ START TRANSACTION use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -60,7 +60,7 @@ START TRANSACTION use `foo`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/mysqlbinlog.result b/mysql-test/main/mysqlbinlog.result index e970e3f9662..2093f8d2fa0 100644 --- a/mysql-test/main/mysqlbinlog.result +++ b/mysql-test/main/mysqlbinlog.result @@ -22,7 +22,7 @@ ROLLBACK/*!*/; use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -102,7 +102,7 @@ START TRANSACTION use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -138,7 +138,7 @@ START TRANSACTION /*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -189,7 +189,7 @@ START TRANSACTION use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -216,7 +216,7 @@ ROLLBACK/*!*/; use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -296,7 +296,7 @@ START TRANSACTION use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -332,7 +332,7 @@ START TRANSACTION /*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -383,7 +383,7 @@ START TRANSACTION use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -492,7 +492,7 @@ DELIMITER /*!*/; use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -544,7 +544,7 @@ DELIMITER /*!*/; use `test`/*!*/; SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/mysqlbinlog_row_compressed.result b/mysql-test/main/mysqlbinlog_row_compressed.result index a6846f245ff..ca815a518c7 100644 --- a/mysql-test/main/mysqlbinlog_row_compressed.result +++ b/mysql-test/main/mysqlbinlog_row_compressed.result @@ -33,7 +33,7 @@ ROLLBACK/*!*/; use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/mysqlbinlog_row_minimal.result b/mysql-test/main/mysqlbinlog_row_minimal.result index 99d5757be8d..4d9ca93012b 100644 --- a/mysql-test/main/mysqlbinlog_row_minimal.result +++ b/mysql-test/main/mysqlbinlog_row_minimal.result @@ -31,7 +31,7 @@ ROLLBACK/*!*/; use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; @@ -397,7 +397,7 @@ START TRANSACTION #<date> server id 1 end_log_pos END_LOG_POS CRC32 XXX Query thread_id=TID exec_time=x error_code=0 xid=<xid> SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=TID/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/mysqlbinlog_stmt_compressed.result b/mysql-test/main/mysqlbinlog_stmt_compressed.result index 7e709eeef2c..5f3e82648c6 100644 --- a/mysql-test/main/mysqlbinlog_stmt_compressed.result +++ b/mysql-test/main/mysqlbinlog_stmt_compressed.result @@ -33,7 +33,7 @@ ROLLBACK/*!*/; use `test`/*!*/; SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result index 92a7676530e..c92c1cd3cd2 100644 --- a/mysql-test/main/mysqld--help.result +++ b/mysql-test/main/mysqld--help.result @@ -8,10 +8,11 @@ The following specify which files/extra groups are read (specified before remain --defaults-group-suffix=# Additionally read default groups with # appended as a suffix. --allow-suspicious-udfs - Allows use of UDFs consisting of only one symbol xxx() - without corresponding xxx_init() or xxx_deinit(). That - also means that one can load any function from any - library, for example exit() from libc.so + Allows use of user-defined functions (UDFs) consisting of + only one symbol xxx() without corresponding xxx_init() or + xxx_deinit(). That also means that one can load any + function from any library, for example exit() from + libc.so --alter-algorithm[=name] Specify the alter table algorithm. One of: DEFAULT, COPY, INPLACE, NOCOPY, INSTANT @@ -287,6 +288,7 @@ The following specify which files/extra groups are read (specified before remain columns as NULL with DEFAULT NULL attribute, Without this option, TIMESTAMP columns are NOT NULL and have implicit DEFAULT clauses. + (Defaults to on; use --skip-explicit-defaults-for-timestamp to disable.) --external-locking Use system (external) locking (disabled by default). With this option enabled you can run myisamchk to test (not repair) tables while the MySQL server is running. @@ -702,6 +704,10 @@ The following specify which files/extra groups are read (specified before remain max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors (Automatically configured unless set explicitly) + --optimizer-extra-pruning-depth=# + If the optimizer needs to enumerate join prefix of this + size or larger, then it will try agressively prune away + the search space. --optimizer-max-sel-arg-weight=# The maximum weight of the SEL_ARG graph. Set to 0 for no limit @@ -709,8 +715,9 @@ The following specify which files/extra groups are read (specified before remain Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space. Meaning: 0 - do not apply any - heuristic, thus perform exhaustive search; 1 - prune - plans based on number of retrieved rows + heuristic, thus perform exhaustive search: 1 - prune + plans based on cost and number of retrieved rows eq_ref: + 2 - prune also if we find an eq_ref chain --optimizer-search-depth=# Maximum depth of search performed by the query optimizer. Values larger than the number of relations in a query @@ -1219,6 +1226,11 @@ The following specify which files/extra groups are read (specified before remain --slave-max-allowed-packet=# The maximum packet length to sent successfully from the master to slave. + --slave-max-statement-time=# + A query that has taken more than slave_max_statement_time + seconds to run on the slave will be aborted. The argument + will be treated as a decimal value with microsecond + precision. A value of 0 (default) means no timeout --slave-net-timeout=# Number of seconds to wait for more data from any master/slave connection before aborting the read @@ -1537,7 +1549,7 @@ eq-range-index-dive-limit 200 event-scheduler OFF expensive-subquery-limit 100 expire-logs-days 0 -explicit-defaults-for-timestamp FALSE +explicit-defaults-for-timestamp TRUE external-locking FALSE extra-max-connections 1 extra-port 0 @@ -1664,8 +1676,9 @@ old-alter-table DEFAULT old-mode UTF8_IS_UTF8MB3 old-passwords FALSE old-style-user-limits FALSE +optimizer-extra-pruning-depth 8 optimizer-max-sel-arg-weight 32000 -optimizer-prune-level 1 +optimizer-prune-level 2 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 @@ -1795,6 +1808,7 @@ slave-ddl-exec-mode IDEMPOTENT slave-domain-parallel-threads 0 slave-exec-mode STRICT slave-max-allowed-packet 1073741824 +slave-max-statement-time 0 slave-net-timeout 60 slave-parallel-max-queued 131072 slave-parallel-mode conservative diff --git a/mysql-test/main/mysqld--help.test b/mysql-test/main/mysqld--help.test index 42f551974d9..9bf53c7200b 100644 --- a/mysql-test/main/mysqld--help.test +++ b/mysql-test/main/mysqld--help.test @@ -39,7 +39,8 @@ perl; query-response-time metadata-lock-info locales unix-socket wsrep file-key-management cracklib-password-check user-variables provider-bzip2 provider-lzma provider-lzo - thread-pool-groups thread-pool-queues thread-pool-stats thread-pool-waits/; + thread-pool-groups thread-pool-queues thread-pool-stats + thread-pool-waits hashicorp provider/; # And substitute the content some environment variables with their # names: diff --git a/mysql-test/main/mysqldump.result b/mysql-test/main/mysqldump.result index b9cdfba9a09..8edfb156131 100644 --- a/mysql-test/main/mysqldump.result +++ b/mysql-test/main/mysqldump.result @@ -3813,7 +3813,7 @@ CREATE TEMPORARY TABLE `TABLES` ( `CREATE_TIME` datetime, `UPDATE_TIME` datetime, `CHECK_TIME` datetime, - `TABLE_COLLATION` varchar(32), + `TABLE_COLLATION` varchar(64), `CHECKSUM` bigint(21) unsigned, `CREATE_OPTIONS` varchar(2048), `TABLE_COMMENT` varchar(2048) NOT NULL, diff --git a/mysql-test/main/null.result b/mysql-test/main/null.result index 755108be267..2653140dfc3 100644 --- a/mysql-test/main/null.result +++ b/mysql-test/main/null.result @@ -1,4 +1,6 @@ -drop table if exists t1, t2; +# +# Testing of NULL in a lot of different places +# select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null; NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null NULL NULL 1 1 1 1 TRUE TRUE 1 1 @@ -62,6 +64,9 @@ insert into t1 values (null); select * from t1 where x != 0; x drop table t1; +# +# Test problem med index on NULL columns and testing with =NULL; +# CREATE TABLE t1 ( indexed_field int default NULL, KEY indexed_field (indexed_field) @@ -78,6 +83,9 @@ indexed_field NULL NULL DROP TABLE t1; +# +# Testing of IFNULL +# create table t1 (a int, b int) engine=myisam; insert into t1 values(20,null); select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on @@ -95,6 +103,9 @@ b ifnull(t2.b,"this is null") NULL this is null NULL this is null drop table t1; +# +# Test inserting and updating with NULL +# CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0); INSERT IGNORE INTO t1 SET a = "", d= "2003-01-14 03:54:55"; Warnings: @@ -149,6 +160,10 @@ a b c d 0 0000-00-00 00:00:00 0 0 0000-00-00 00:00:00 0 drop table t1; +# +# Test to check elimination of IS NULL predicate for a non-nullable attribute +# (bug #1990) +# create table t1 (a int not null, b int not null, index idx(a)); insert into t1 values (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), @@ -163,6 +178,10 @@ drop table t1; select cast(NULL as signed); cast(NULL as signed) NULL +# +# IS NULL is unable to use index in range if column is declared not null +# (Bug #4256) +# create table t1(i int, key(i)); insert into t1 values(1); insert into t1 select i*2 from t1; @@ -192,6 +211,11 @@ select count(*) from t1 where i=2 or i is null; count(*) 9 drop table t1; +# +# NULL has its own type BINARY(0) by default. +# But NULL should be weaker than a constant +# when mixing charsets/collations +# set names latin2; create table t1 select null as c00, @@ -275,6 +299,11 @@ t1 CREATE TABLE `t1` ( `c38` varchar(10) CHARACTER SET latin2 COLLATE latin2_general_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci drop table t1; +# +# Check that comparison is done according to +# non-null string collation, i.e. case insensitively, +# rather than according to NULL's collation, i.e. case sensitively +# select case 'str' when 'STR' then 'str' when null then 'null' end as c01, case 'str' when null then 'null' when 'STR' then 'str' end as c02, @@ -286,10 +315,13 @@ field('str1', null, 'STR1') as c05, c01 c02 c03 c04 c05 c08 c09 str str 0 1 2 1 1 set names latin1; -create table bug19145a (e enum('a','b','c') default 'b' , s set('x', 'y', 'z') default 'y' ) engine=MyISAM; -create table bug19145b (e enum('a','b','c') default null, s set('x', 'y', 'z') default null) engine=MyISAM; +# +# Bug#19145: mysqld crashes if you set the default value of an enum field to NULL +# +create table bug19145a (e enum('a','b','c') default 'b' , s set('x', 'y', 'z') default 'y' ) engine=MyISAM; +create table bug19145b (e enum('a','b','c') default null, s set('x', 'y', 'z') default null) engine=MyISAM; create table bug19145c (e enum('a','b','c') not null default 'b' , s set('x', 'y', 'z') not null default 'y' ) engine=MyISAM; -create table bug19145setnotnulldefaultnull (e enum('a','b','c') default null, s set('x', 'y', 'z') not null default null) engine=MyISAM; +create table bug19145setnotnulldefaultnull (e enum('a','b','c') default null, s set('x', 'y', 'z') not null default null) engine=MyISAM; ERROR 42000: Invalid default value for 's' create table bug19145enumnotnulldefaultnull (e enum('a','b','c') not null default null, s set('x', 'y', 'z') default null) engine=MyISAM; ERROR 42000: Invalid default value for 'e' @@ -328,8 +360,10 @@ bug19145c CREATE TABLE `bug19145c` ( drop table bug19145a; drop table bug19145b; drop table bug19145c; +# # End of 4.1 tests # +# # Bug #31471: decimal_bin_size: Assertion `scale >= 0 && # precision > 0 && scale <= precision' # @@ -350,8 +384,10 @@ DESCRIBE t2; Field Type Null Key Default Extra IFNULL(NULL, b) decimal(1,0) YES NULL DROP TABLE t1, t2; +# # End of 5.0 tests # +# # MDEV-4895 Valgrind warnings (Conditional jump or move depends on uninitialised value) in Field_datetime::get_date on GREATEST(..) IS NULL # CREATE TABLE t1 (dt DATETIME NOT NULL); @@ -382,8 +418,7 @@ SELECT * FROM t1 WHERE NOT (concat( dt, '1' ) IS NOT NULL); dt DROP TABLE t1; # -# Bug mdev-5132: crash when exeicuting a join query -# with IS NULL and IS NOT NULL in where +# MDEV-5132 crash when exeicuting a join query with IS NULL and IS NOT NULL in where # CREATE TABLE t1 (a DATE, b INT, c INT, KEY(a), KEY(b), KEY(c)) ENGINE=MyISAM; CREATE TABLE t2 (d DATE) ENGINE=MyISAM; @@ -391,9 +426,6 @@ SELECT * FROM t1,t2 WHERE 1 IS NOT NULL AND t1.b IS NULL; a b c d DROP TABLE t1,t2; # -# Start of 10.0 tests -# -# # MDEV-7001 Bad result for NOT NOT STRCMP('a','b') and NOT NOT NULLIF(2,3) # SELECT NOT NOT NULLIF(2,3); diff --git a/mysql-test/main/null.test b/mysql-test/main/null.test index 3741ec0f8ea..7bb698e4392 100644 --- a/mysql-test/main/null.test +++ b/mysql-test/main/null.test @@ -1,11 +1,6 @@ -# Initialise ---disable_warnings -drop table if exists t1, t2; ---enable_warnings - -# -# Testing of NULL in a lot of different places -# +--echo # +--echo # Testing of NULL in a lot of different places +--echo # #enable view protocol after fix MDEV-28535 --disable_view_protocol @@ -34,9 +29,9 @@ insert into t1 values (null); select * from t1 where x != 0; drop table t1; -# -# Test problem med index on NULL columns and testing with =NULL; -# +--echo # +--echo # Test problem med index on NULL columns and testing with =NULL; +--echo # CREATE TABLE t1 ( indexed_field int default NULL, @@ -48,9 +43,9 @@ SELECT * FROM t1 WHERE indexed_field IS NULL; SELECT * FROM t1 WHERE indexed_field<=>NULL; DROP TABLE t1; -# -# Testing of IFNULL -# +--echo # +--echo # Testing of IFNULL +--echo # create table t1 (a int, b int) engine=myisam; insert into t1 values(20,null); select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on @@ -62,40 +57,40 @@ select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on t2.b=t3.a order by 1; drop table t1; -# -# Test inserting and updating with NULL -# +--echo # +--echo # Test inserting and updating with NULL +--echo # CREATE TABLE t1 (a varchar(16) NOT NULL default '', b smallint(6) NOT NULL default 0, c datetime NOT NULL default '0000-00-00 00:00:00', d smallint(6) NOT NULL default 0); INSERT IGNORE INTO t1 SET a = "", d= "2003-01-14 03:54:55"; UPDATE IGNORE t1 SET d=1/NULL; UPDATE IGNORE t1 SET d=NULL; ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (a) values (null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (a) values (1/null); INSERT IGNORE INTO t1 (a) values (null),(null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (b) values (null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (b) values (1/null); INSERT IGNORE INTO t1 (b) values (null),(null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (c) values (null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (c) values (1/null); INSERT IGNORE INTO t1 (c) values (null),(null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (d) values (null); ---error 1048 +--error ER_BAD_NULL_ERROR INSERT INTO t1 (d) values (1/null); INSERT IGNORE INTO t1 (d) values (null),(null); select * from t1; drop table t1; -# -# Test to check elimination of IS NULL predicate for a non-nullable attribute -# (bug #1990) -# +--echo # +--echo # Test to check elimination of IS NULL predicate for a non-nullable attribute +--echo # (bug #1990) +--echo # create table t1 (a int not null, b int not null, index idx(a)); insert into t1 values (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), @@ -105,10 +100,10 @@ explain select * from t1 where a between 2 and 3 or b is null; drop table t1; select cast(NULL as signed); -# -# IS NULL is unable to use index in range if column is declared not null -# (Bug #4256) -# +--echo # +--echo # IS NULL is unable to use index in range if column is declared not null +--echo # (Bug #4256) +--echo # create table t1(i int, key(i)); insert into t1 values(1); insert into t1 select i*2 from t1; @@ -129,11 +124,11 @@ explain select * from t1 where i=2 or i is null; select count(*) from t1 where i=2 or i is null; drop table t1; -# -# NULL has its own type BINARY(0) by default. -# But NULL should be weaker than a constant -# when mixing charsets/collations -# +--echo # +--echo # NULL has its own type BINARY(0) by default. +--echo # But NULL should be weaker than a constant +--echo # when mixing charsets/collations +--echo # set names latin2; # Check that result type is taken from a non-null string create table t1 select @@ -179,11 +174,11 @@ create table t1 select show create table t1; drop table t1; -# -# Check that comparison is done according to -# non-null string collation, i.e. case insensitively, -# rather than according to NULL's collation, i.e. case sensitively -# +--echo # +--echo # Check that comparison is done according to +--echo # non-null string collation, i.e. case insensitively, +--echo # rather than according to NULL's collation, i.e. case sensitively +--echo # # in field select case 'str' when 'STR' then 'str' when null then 'null' end as c01, @@ -197,20 +192,20 @@ select # Restore charset to the default value. set names latin1; -# -# Bug#19145: mysqld crashes if you set the default value of an enum field to NULL -# -create table bug19145a (e enum('a','b','c') default 'b' , s set('x', 'y', 'z') default 'y' ) engine=MyISAM; -create table bug19145b (e enum('a','b','c') default null, s set('x', 'y', 'z') default null) engine=MyISAM; +--echo # +--echo # Bug#19145: mysqld crashes if you set the default value of an enum field to NULL +--echo # +create table bug19145a (e enum('a','b','c') default 'b' , s set('x', 'y', 'z') default 'y' ) engine=MyISAM; +create table bug19145b (e enum('a','b','c') default null, s set('x', 'y', 'z') default null) engine=MyISAM; create table bug19145c (e enum('a','b','c') not null default 'b' , s set('x', 'y', 'z') not null default 'y' ) engine=MyISAM; # Invalid default value for 's' ---error 1067 -create table bug19145setnotnulldefaultnull (e enum('a','b','c') default null, s set('x', 'y', 'z') not null default null) engine=MyISAM; +--error ER_INVALID_DEFAULT +create table bug19145setnotnulldefaultnull (e enum('a','b','c') default null, s set('x', 'y', 'z') not null default null) engine=MyISAM; # Invalid default value for 'e' ---error 1067 +--error ER_INVALID_DEFAULT create table bug19145enumnotnulldefaultnull (e enum('a','b','c') not null default null, s set('x', 'y', 'z') default null) engine=MyISAM; alter table bug19145a alter column e set default null; @@ -222,11 +217,11 @@ alter table bug19145b alter column s set default null; alter table bug19145b add column (i int); # Invalid default value for 'e' ---error 1067 +--error ER_INVALID_DEFAULT alter table bug19145c alter column e set default null; # Invalid default value for 's' ---error 1067 +--error ER_INVALID_DEFAULT alter table bug19145c alter column s set default null; alter table bug19145c add column (i int); @@ -238,7 +233,9 @@ drop table bug19145a; drop table bug19145b; drop table bug19145c; +--echo # --echo # End of 4.1 tests +--echo # --echo # --echo # Bug #31471: decimal_bin_size: Assertion `scale >= 0 && @@ -261,7 +258,9 @@ DESCRIBE t2; DROP TABLE t1, t2; +--echo # --echo # End of 5.0 tests +--echo # --echo # --echo # MDEV-4895 Valgrind warnings (Conditional jump or move depends on uninitialised value) in Field_datetime::get_date on GREATEST(..) IS NULL @@ -292,8 +291,7 @@ SELECT * FROM t1 WHERE NOT (concat( dt, '1' ) IS NOT NULL); DROP TABLE t1; --echo # ---echo # Bug mdev-5132: crash when exeicuting a join query ---echo # with IS NULL and IS NOT NULL in where +--echo # MDEV-5132 crash when exeicuting a join query with IS NULL and IS NOT NULL in where --echo # CREATE TABLE t1 (a DATE, b INT, c INT, KEY(a), KEY(b), KEY(c)) ENGINE=MyISAM; @@ -304,10 +302,6 @@ SELECT * FROM t1,t2 WHERE 1 IS NOT NULL AND t1.b IS NULL; DROP TABLE t1,t2; --echo # ---echo # Start of 10.0 tests ---echo # - ---echo # --echo # MDEV-7001 Bad result for NOT NOT STRCMP('a','b') and NOT NOT NULLIF(2,3) --echo # SELECT NOT NOT NULLIF(2,3); @@ -1194,7 +1188,6 @@ SELECT * FROM t1 WHERE ((c1 IS NOT NULL) >= (NOT TRUE)) IS NOT NULL; SELECT * FROM t1 WHERE ((c1 IS NOT NULL) >= (NOT TRUE)) IS NOT NULL; DROP TABLE t1; - --echo # --echo # End of 10.1 tests --echo # diff --git a/mysql-test/main/old-mode.result b/mysql-test/main/old-mode.result index e0a3412bbdf..44e8f5bfece 100644 --- a/mysql-test/main/old-mode.result +++ b/mysql-test/main/old-mode.result @@ -129,7 +129,7 @@ DROP TABLE t1; SET @@global.mysql56_temporal_format=DEFAULT; set time_zone='Europe/Moscow'; set global mysql56_temporal_format=false; -create table t1 (a timestamp); +create table t1 (a timestamp not null default now()); set timestamp=1288477526; insert t1 values (null); insert t1 values (); @@ -158,7 +158,7 @@ a unix_timestamp(a) 2010-10-31 02:25:26 1288481126 drop table t1; set global mysql56_temporal_format=false; -create table t1 (a timestamp); +create table t1 (a timestamp not null default now()); set timestamp=1288477526; insert t1 values (null); set timestamp=1288481126; diff --git a/mysql-test/main/old-mode.test b/mysql-test/main/old-mode.test index a09de1cf87d..0419be4bf6a 100644 --- a/mysql-test/main/old-mode.test +++ b/mysql-test/main/old-mode.test @@ -91,7 +91,7 @@ SET @@global.mysql56_temporal_format=DEFAULT; # Copy_field set time_zone='Europe/Moscow'; set global mysql56_temporal_format=false; -create table t1 (a timestamp); +create table t1 (a timestamp not null default now()); set timestamp=1288477526; insert t1 values (null); insert t1 values (); @@ -107,7 +107,7 @@ drop table t1; # field_conv_incompatible() set global mysql56_temporal_format=false; -create table t1 (a timestamp); +create table t1 (a timestamp not null default now()); set timestamp=1288477526; insert t1 values (null); set timestamp=1288481126; diff --git a/mysql-test/main/openssl_1.test b/mysql-test/main/openssl_1.test index 639fd0a294d..9232868bddd 100644 --- a/mysql-test/main/openssl_1.test +++ b/mysql-test/main/openssl_1.test @@ -72,7 +72,7 @@ drop table t1; # Handle that openssl gives different error messages from YaSSL. --replace_regex /2026 TLS\/SSL error.*/2026 TLS\/SSL error: xxxx/ --error 1 ---exec $MYSQL_TEST --ssl-ca=$MYSQL_TEST_DIR/std_data/untrusted-cacert.pem --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1 +--exec $MYSQL_TEST --ssl-verify-server-cert --ssl-ca=$MYSQL_TEST_DIR/std_data/untrusted-cacert.pem --max-connect-retries=1 < $MYSQLTEST_VARDIR/tmp/test.sql 2>&1 --echo # diff --git a/mysql-test/main/opt_trace.result b/mysql-test/main/opt_trace.result index 6f0d13441ff..da6c1f320e9 100644 --- a/mysql-test/main/opt_trace.result +++ b/mysql-test/main/opt_trace.result @@ -127,23 +127,31 @@ select * from v1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 1, - "cost": 2.204394531, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 1, + "cost": 2.204394531, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 1, + "cost": 2.204394531, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 1, - "cost": 2.204394531, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 1, "cost_for_plan": 2.404394531 } @@ -277,23 +285,31 @@ select * from (select * from t1 where t1.a=1)q { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 1, - "cost": 2.204394531, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 1, + "cost": 2.204394531, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 1, + "cost": 2.204394531, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 1, - "cost": 2.204394531, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 1, "cost_for_plan": 2.404394531 } @@ -432,24 +448,32 @@ select * from v2 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 1, - "cost": 2.204394531, - "chosen": true, - "use_tmp_table": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 1, + "cost": 2.204394531, + "chosen": true, + "use_tmp_table": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 1, + "cost": 2.204394531, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 1, - "cost": 2.204394531, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 1, "cost_for_plan": 2.404394531, "cost_for_sorting": 1 @@ -504,23 +528,31 @@ select * from v2 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "<derived2>", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 2, - "cost": 2, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "<derived2>", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 2, + "cost": 2, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 2, + "cost": 2, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 2, - "cost": 2, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "<derived2>", "rows_for_plan": 2, "cost_for_plan": 2.4 } @@ -640,23 +672,31 @@ explain select * from v2 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t2", "rows_for_plan": 10, "cost_for_plan": 4.021972656 } @@ -755,24 +795,32 @@ explain select * from v1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true, - "use_tmp_table": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, + "chosen": true, + "use_tmp_table": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 10, "cost_for_plan": 4.021972656, "cost_for_sorting": 10 @@ -821,23 +869,31 @@ explain select * from v1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "<derived2>", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 10, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "<derived2>", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 10, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10, + "cost": 10, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 10, - "cost": 10, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "<derived2>", "rows_for_plan": 10, "cost_for_plan": 12 } @@ -992,113 +1048,141 @@ explain select * from t1,t2 where t1.a=t2.b+2 and t2.a= t1.b { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 100, - "cost": 2.317382812, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 100, - "cost": 2.317382812, - "uses_join_buffering": false - } - }, - "rows_for_plan": 100, - "cost_for_plan": 22.31738281, - "rest_of_plan": [ + "get_costs_for_tables": [ { - "plan_prefix": ["t1"], - "table": "t2", "best_access_path": { + "table": "t1", "considered_access_paths": [ { - "access_type": "ref", - "index": "a", - "used_range_estimates": false, - "reason": "not available", - "rows": 1, - "cost": 200.0585794, + "access_type": "scan", + "resulting_rows": 100, + "cost": 2.317382812, "chosen": true - }, + } + ], + "chosen_access_method": { + "type": "scan", + "records": 100, + "cost": 2.317382812, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t2", + "considered_access_paths": [ { "access_type": "scan", "resulting_rows": 100, "cost": 2.317382812, - "chosen": false + "chosen": true } ], "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 200.0585794, + "type": "scan", + "records": 100, + "cost": 2.317382812, "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t1", + "rows_for_plan": 100, + "cost_for_plan": 22.31738281, + "rest_of_plan": [ + { + "plan_prefix": ["t1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t2", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "a", + "used_range_estimates": false, + "reason": "not available", + "rows": 1, + "cost": 200.0585794, + "chosen": true + }, + { + "access_type": "scan", + "resulting_rows": 100, + "cost": 2.317382812, + "chosen": false + } + ], + "chosen_access_method": { + "type": "ref", + "records": 1, + "cost": 200.0585794, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": ["t1"], + "table": "t2", "rows_for_plan": 100, - "cost_for_plan": 242.3759623, - "pruned_by_hanging_leaf": true + "cost_for_plan": 242.3759623 } ] }, { "plan_prefix": [], "table": "t2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 100, - "cost": 2.317382812, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 100, - "cost": 2.317382812, - "uses_join_buffering": false - } - }, "rows_for_plan": 100, "cost_for_plan": 22.31738281, "rest_of_plan": [ { "plan_prefix": ["t2"], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "ref", - "index": "a", - "used_range_estimates": false, - "reason": "not available", - "rows": 1, - "cost": 200.0585794, - "chosen": true - }, - { - "access_type": "scan", - "resulting_rows": 100, - "cost": 2.317382812, - "chosen": false + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "a", + "used_range_estimates": false, + "reason": "not available", + "rows": 1, + "cost": 200.0585794, + "chosen": true + }, + { + "access_type": "scan", + "resulting_rows": 100, + "cost": 2.317382812, + "chosen": false + } + ], + "chosen_access_method": { + "type": "ref", + "records": 1, + "cost": 200.0585794, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 200.0585794, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": ["t2"], + "table": "t1", "rows_for_plan": 100, "cost_for_plan": 242.3759623, - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 242.3759623, + "best_cost": 242.3759623 } ] } @@ -1255,23 +1339,31 @@ EXPLAIN SELECT DISTINCT a FROM t1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "index_merge", - "resulting_rows": 5, - "cost": 6.25, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "index_merge", + "resulting_rows": 5, + "cost": 6.25, + "chosen": true + } + ], + "chosen_access_method": { + "type": "index_merge", + "records": 5, + "cost": 6.25, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "index_merge", - "records": 5, - "cost": 6.25, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 5, "cost_for_plan": 7.25 } @@ -1444,24 +1536,32 @@ EXPLAIN SELECT MIN(d) FROM t1 where b=2 and c=3 group by a { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "index_merge", - "resulting_rows": 8, - "cost": 2.2, - "chosen": true, - "use_tmp_table": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "index_merge", + "resulting_rows": 8, + "cost": 2.2, + "chosen": true, + "use_tmp_table": true + } + ], + "chosen_access_method": { + "type": "index_merge", + "records": 8, + "cost": 2.2, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "index_merge", - "records": 8, - "cost": 2.2, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 8, "cost_for_plan": 3.8, "cost_for_sorting": 8 @@ -1642,24 +1742,32 @@ EXPLAIN SELECT id,MIN(a),MAX(a) FROM t1 WHERE a>=20010104e0 GROUP BY id { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "index_merge", - "resulting_rows": 9, - "cost": 2.35, - "chosen": true, - "use_tmp_table": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "index_merge", + "resulting_rows": 9, + "cost": 2.35, + "chosen": true, + "use_tmp_table": true + } + ], + "chosen_access_method": { + "type": "index_merge", + "records": 9, + "cost": 2.35, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "index_merge", - "records": 9, - "cost": 2.35, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 9, "cost_for_plan": 4.15, "cost_for_sorting": 9 @@ -1829,24 +1937,32 @@ EXPLAIN SELECT * FROM t1 WHERE a = 20010104e0 GROUP BY id { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "index_merge", - "resulting_rows": 9, - "cost": 2.35, - "chosen": true, - "use_tmp_table": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "index_merge", + "resulting_rows": 9, + "cost": 2.35, + "chosen": true, + "use_tmp_table": true + } + ], + "chosen_access_method": { + "type": "index_merge", + "records": 9, + "cost": 2.35, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "index_merge", - "records": 9, - "cost": 2.35, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 9, "cost_for_plan": 4.15, "cost_for_sorting": 9 @@ -2101,38 +2217,46 @@ explain select * from t1 where a=1 and b=2 order by c limit 1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "ref", - "index": "a_c", - "used_range_estimates": true, - "rows": 180, - "cost": 180.2743776, - "chosen": true - }, - { - "access_type": "ref", - "index": "a_b", - "used_range_estimates": true, - "rows": 21, - "cost": 21.14242739, - "chosen": true - }, - { - "type": "scan", - "chosen": false, - "cause": "cost" + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "a_c", + "used_range_estimates": true, + "rows": 180, + "cost": 180.2743776, + "chosen": true + }, + { + "access_type": "ref", + "index": "a_b", + "used_range_estimates": true, + "rows": 21, + "cost": 21.14242739, + "chosen": true + }, + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": { + "type": "ref", + "records": 21, + "cost": 21.14242739, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "ref", - "records": 21, - "cost": 21.14242739, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 21, "cost_for_plan": 25.34242739 } @@ -2370,23 +2494,31 @@ select t1.a from t1 left join t2 on t1.a=t2.a { "considered_execution_plans": [ { "plan_prefix": ["t2"], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 4, - "cost": 2.006835938, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 4, + "cost": 2.006835938, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 4, + "cost": 2.006835938, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 4, - "cost": 2.006835938, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": ["t2"], + "table": "t1", "rows_for_plan": 4, "cost_for_plan": 2.806835937 } @@ -2509,55 +2641,70 @@ explain select * from t1 left join t2 on t2.a=t1.a { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 4, - "cost": 2.006835938, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 4, - "cost": 2.006835938, - "uses_join_buffering": false - } - }, - "rows_for_plan": 4, - "cost_for_plan": 2.806835937, - "rest_of_plan": [ + "get_costs_for_tables": [ { - "plan_prefix": ["t1"], - "table": "t2", "best_access_path": { + "table": "t1", "considered_access_paths": [ { - "access_type": "eq_ref", - "index": "PRIMARY", - "rows": 1, - "cost": 4, - "chosen": true - }, - { "access_type": "scan", - "resulting_rows": 2, - "cost": 8.017578125, - "chosen": false + "resulting_rows": 4, + "cost": 2.006835938, + "chosen": true } ], "chosen_access_method": { - "type": "eq_ref", - "records": 1, - "cost": 4, + "type": "scan", + "records": 4, + "cost": 2.006835938, "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t1", + "rows_for_plan": 4, + "cost_for_plan": 2.806835937, + "rest_of_plan": [ + { + "plan_prefix": ["t1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t2", + "considered_access_paths": [ + { + "access_type": "eq_ref", + "index": "PRIMARY", + "rows": 1, + "cost": 4, + "chosen": true + }, + { + "access_type": "scan", + "resulting_rows": 2, + "cost": 8.017578125, + "chosen": false + } + ], + "chosen_access_method": { + "type": "eq_ref", + "records": 1, + "cost": 4, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": ["t1"], + "table": "t2", "rows_for_plan": 4, - "cost_for_plan": 7.606835937, - "pruned_by_hanging_leaf": true + "cost_for_plan": 7.606835937 } ] } @@ -2722,23 +2869,31 @@ explain select t1.a from t1 left join (t2 join t3 on t2.b=t3.b) on t2.a=t1.a and "considered_execution_plans": [ { "plan_prefix": ["t3", "t2"], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 4, - "cost": 2.006835938, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 4, + "cost": 2.006835938, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 4, + "cost": 2.006835938, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 4, - "cost": 2.006835938, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": ["t3", "t2"], + "table": "t1", "rows_for_plan": 4, "cost_for_plan": 2.806835937 } @@ -2929,23 +3084,31 @@ explain extended select * from t1 where a in (select pk from t10) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t10", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t10", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t10", "rows_for_plan": 10, "cost_for_plan": 4.021972656 } @@ -2958,31 +3121,29 @@ explain extended select * from t1 where a in (select pk from t10) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.006591797, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.006591797, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.006591797, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.006591797, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.606591797, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": ["t1"], - "table": "t10", "best_access_path": { + "table": "t10", "considered_access_paths": [ { "access_type": "scan", @@ -2995,9 +3156,46 @@ explain extended select * from t1 where a in (select pk from t10) { "type": "scan", "records": 10, "cost": 2.021972656, - "uses_join_buffering": true + "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t1", + "rows_for_plan": 3, + "cost_for_plan": 2.606591797, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t10", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t1"], + "table": "t10", "rows_for_plan": 30, "cost_for_plan": 10.62856445, "semijoin_strategy_choice": [ @@ -3026,22 +3224,6 @@ explain extended select * from t1 where a in (select pk from t10) { { "plan_prefix": [], "table": "t10", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": false - } - }, "rows_for_plan": 10, "cost_for_plan": 4.021972656, "semijoin_strategy_choice": [], @@ -3387,50 +3569,57 @@ explain select * from t1 where pk = 2 and a=5 and b=1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "ref", - "index": "pk", - "used_range_estimates": true, - "rows": 1, - "cost": 1.125585794, - "chosen": true - }, - { - "access_type": "ref", - "index": "pk_a", - "used_range_estimates": true, - "rows": 1, - "cost": 1.125829876, - "chosen": false, - "cause": "cost" - }, - { - "access_type": "ref", - "index": "pk_a_b", - "used_range_estimates": true, - "rows": 1, - "cost": 0.126073957, - "chosen": true - }, - { - "type": "scan", - "chosen": false, - "cause": "cost" + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "pk", + "used_range_estimates": true, + "rows": 1, + "cost": 1.125585794, + "chosen": true + }, + { + "access_type": "ref", + "index": "pk_a", + "used_range_estimates": true, + "rows": 1, + "cost": 1.125829876, + "chosen": false, + "cause": "cost" + }, + { + "access_type": "ref", + "index": "pk_a_b", + "used_range_estimates": true, + "rows": 1, + "cost": 0.126073957, + "chosen": true + }, + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": { + "type": "ref", + "records": 1, + "cost": 0.126073957, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 0.126073957, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 1, - "cost_for_plan": 0.326073957, - "pruned_by_hanging_leaf": true + "cost_for_plan": 0.326073957 } ] }, @@ -3540,23 +3729,31 @@ select f1(a) from t1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 4, - "cost": 2.006835938, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 4, + "cost": 2.006835938, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 4, + "cost": 2.006835938, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 4, - "cost": 2.006835938, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 4, "cost_for_plan": 2.806835937 } @@ -3636,23 +3833,31 @@ select f2(a) from t1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 4, - "cost": 2.006835938, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 4, + "cost": 2.006835938, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 4, + "cost": 2.006835938, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 4, - "cost": 2.006835938, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 4, "cost_for_plan": 2.806835937 } @@ -3700,7 +3905,7 @@ a 2 select length(trace) from INFORMATION_SCHEMA.OPTIMIZER_TRACE; length(trace) -2092 +2360 set optimizer_trace_max_mem_size=100; select * from t1; a @@ -3714,7 +3919,7 @@ select * from t1 { "join_preparation": { "select_id": 1, "steps": [ - 1992 0 + 2260 0 set optimizer_trace_max_mem_size=0; select * from t1; a @@ -3722,7 +3927,7 @@ a 2 select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE; QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES -select * from t1 2092 0 +select * from t1 2360 0 drop table t1; set optimizer_trace='enabled=off'; set @@optimizer_trace_max_mem_size= @save_optimizer_trace_max_mem_size; @@ -4018,112 +4223,140 @@ explain delete t0,t1 from t0, t1 where t0.a=t1.a and t1.a<3 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t0", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "range", - "resulting_rows": 3, - "cost": 0.746757383, - "chosen": true - } - ], - "chosen_access_method": { - "type": "range", - "records": 3, - "cost": 0.746757383, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 1.346757383, - "rest_of_plan": [ + "get_costs_for_tables": [ { - "plan_prefix": ["t0"], - "table": "t1", "best_access_path": { + "table": "t0", "considered_access_paths": [ { - "access_type": "ref", - "index": "a", - "used_range_estimates": false, - "reason": "not better than ref estimates", - "rows": 1, - "cost": 3.001757383, + "access_type": "range", + "resulting_rows": 3, + "cost": 0.746757383, "chosen": true - }, + } + ], + "chosen_access_method": { + "type": "range", + "records": 3, + "cost": 0.746757383, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ { - "type": "scan", - "chosen": false, - "cause": "cost" + "access_type": "range", + "resulting_rows": 3, + "cost": 0.746757383, + "chosen": true } ], "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 3.001757383, + "type": "range", + "records": 3, + "cost": 0.746757383, "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t0", + "rows_for_plan": 3, + "cost_for_plan": 1.346757383, + "rest_of_plan": [ + { + "plan_prefix": ["t0"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "a", + "used_range_estimates": false, + "reason": "not better than ref estimates", + "rows": 1, + "cost": 3.001757383, + "chosen": true + }, + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": { + "type": "ref", + "records": 1, + "cost": 3.001757383, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": ["t0"], + "table": "t1", "rows_for_plan": 3, - "cost_for_plan": 4.948514767, - "pruned_by_hanging_leaf": true + "cost_for_plan": 4.948514767 } ] }, { "plan_prefix": [], "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "range", - "resulting_rows": 3, - "cost": 0.746757383, - "chosen": true - } - ], - "chosen_access_method": { - "type": "range", - "records": 3, - "cost": 0.746757383, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 1.346757383, "rest_of_plan": [ { "plan_prefix": ["t1"], - "table": "t0", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "ref", - "index": "a", - "rec_per_key_stats_missing": true, - "used_range_estimates": false, - "reason": "not better than ref estimates", - "rows": 2, - "cost": 3.003514767, - "chosen": true - }, - { - "type": "scan", - "chosen": false, - "cause": "cost" + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t0", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "a", + "rec_per_key_stats_missing": true, + "used_range_estimates": false, + "reason": "not better than ref estimates", + "rows": 2, + "cost": 3.003514767, + "chosen": true + }, + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": { + "type": "ref", + "records": 2, + "cost": 3.003514767, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "ref", - "records": 2, - "cost": 3.003514767, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": ["t1"], + "table": "t0", "rows_for_plan": 6, "cost_for_plan": 5.55027215, - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 5.55027215, + "best_cost": 4.948514767 } ] } @@ -4248,23 +4481,31 @@ explain select * from (select rand() from t1)q { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 3, "cost_for_plan": 2.605126953 } @@ -4312,23 +4553,31 @@ explain select * from (select rand() from t1)q { "considered_execution_plans": [ { "plan_prefix": [], - "table": "<derived2>", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 3, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "<derived2>", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 3, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 3, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 3, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "<derived2>", "rows_for_plan": 3, "cost_for_plan": 3.6 } @@ -4518,30 +4767,29 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ "considered_execution_plans": [ { "plan_prefix": [], - "table": "t_inner_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "rest_of_plan": [ + }, { - "plan_prefix": ["t_inner_1"], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", @@ -4554,9 +4802,45 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ "type": "scan", "records": 3, "cost": 2.005126953, - "uses_join_buffering": true + "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t_inner_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "rest_of_plan": [ + { + "plan_prefix": ["t_inner_1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_inner_1"], + "table": "t_inner_2", "rows_for_plan": 9, "cost_for_plan": 6.410253906 } @@ -4565,22 +4849,6 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ { "plan_prefix": [], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 2.605126953, "pruned_by_heuristic": true @@ -4594,31 +4862,29 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": ["t1"], - "table": "t_inner_1", "best_access_path": { + "table": "t_inner_1", "considered_access_paths": [ { "access_type": "scan", @@ -4631,17 +4897,44 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ "type": "scan", "records": 3, "cost": 2.005126953, - "uses_join_buffering": true + "uses_join_buffering": false } - }, - "rows_for_plan": 9, - "cost_for_plan": 6.410253906, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": [], + "table": "t1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t1"], + "get_costs_for_tables": [ { - "plan_prefix": ["t1", "t_inner_1"], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_1", "considered_access_paths": [ { "access_type": "scan", @@ -4656,7 +4949,63 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ "cost": 2.005126953, "uses_join_buffering": true } - }, + } + }, + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t1"], + "table": "t_inner_1", + "rows_for_plan": 9, + "cost_for_plan": 6.410253906, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t1", "t_inner_1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t1", "t_inner_1"], + "table": "t_inner_2", "rows_for_plan": 27, "cost_for_plan": 13.81538086, "semijoin_strategy_choice": [ @@ -4685,22 +5034,6 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ { "plan_prefix": ["t1"], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, "rows_for_plan": 9, "cost_for_plan": 6.410253906, "semijoin_strategy_choice": [], @@ -4711,22 +5044,6 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ { "plan_prefix": [], "table": "t_inner_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], @@ -4735,22 +5052,6 @@ explain select * from t1 where a in (select t_inner_1.a from t1 t_inner_1, t1 t_ { "plan_prefix": [], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], @@ -5048,31 +5349,29 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t_outer_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_outer_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": ["t_outer_1"], - "table": "t_inner_1", "best_access_path": { + "table": "t_inner_1", "considered_access_paths": [ { "access_type": "scan", @@ -5085,17 +5384,120 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "type": "scan", "records": 3, "cost": 2.005126953, - "uses_join_buffering": true + "uses_join_buffering": false } - }, - "rows_for_plan": 9, - "cost_for_plan": 6.410253906, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": [], + "table": "t_outer_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, { - "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", @@ -5110,29 +5512,137 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 81, - "cost_for_plan": 24.62563477, - "semijoin_strategy_choice": [ - { - "strategy": "FirstMatch", + } + }, + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", "records": 3, - "read_time": 44.75893555 + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1"], + "table": "t_outer_2", + "rows_for_plan": 27, + "cost_for_plan": 10.02050781, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } }, { - "strategy": "DuplicateWeedout", - "records": 3, - "read_time": 37.22563477 + "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } }, { - "chosen_strategy": "DuplicateWeedout" - } - ], - "rest_of_plan": [ + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], - "table": "t_outer_2", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -5147,20 +5657,42 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 27, - "cost_for_plan": 44.64101563, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_1", + "rows_for_plan": 81, + "cost_for_plan": 28.22563477, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_outer_2" - ], - "table": "t_inner_4", "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", "considered_access_paths": [ { "access_type": "scan", @@ -5175,21 +5707,80 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.005126953, "uses_join_buffering": true } - }, - "rows_for_plan": 81, - "cost_for_plan": 62.84614258, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], + "table": "t_inner_2", + "rows_for_plan": 729, + "cost_for_plan": 176.0410156, + "semijoin_strategy_choice": [ + { + "strategy": "FirstMatch", + "records": 27, + "read_time": 389.4047852 + }, + { + "strategy": "DuplicateWeedout", + "records": 27, + "read_time": 289.4410156 + }, + { + "chosen_strategy": "DuplicateWeedout" + } + ], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2" + ], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_outer_2", - "t_inner_4" - ], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -5204,19 +5795,73 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2" + ], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 307.6461426, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_inner_3", "rows_for_plan": 729, - "cost_for_plan": 210.6615234, + "cost_for_plan": 455.4615234, "semijoin_strategy_choice": [ { "strategy": "FirstMatch", "records": 27, - "read_time": 424.025293 + "read_time": 668.825293 }, { "strategy": "DuplicateWeedout", "records": 27, - "read_time": 324.0615234 + "read_time": 568.8615234 }, { "chosen_strategy": "DuplicateWeedout" @@ -5228,95 +5873,55 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [ "t_outer_1", + "t_outer_2", "t_inner_1", - "t_inner_2", - "t_outer_2" + "t_inner_2" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 243, - "cost_for_plan": 95.25639648, + "cost_for_plan": 340.0563965, "semijoin_strategy_choice": [], "pruned_by_heuristic": true } ] }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, - "rows_for_plan": 9, - "cost_for_plan": 41.03076172, + "rows_for_plan": 243, + "cost_for_plan": 78.83076172, "semijoin_strategy_choice": [], "rest_of_plan": [ { "plan_prefix": [ "t_outer_1", + "t_outer_2", "t_inner_1", - "t_inner_2", "t_inner_4" ], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 59.24614258, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_inner_4", - "t_outer_2" - ], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -5331,57 +5936,148 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 729, - "cost_for_plan": 207.0615234, + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_4" + ], + "table": "t_inner_2", + "rows_for_plan": 2187, + "cost_for_plan": 518.2461426, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_4", + "t_inner_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_4", + "t_inner_2" + ], + "table": "t_inner_3", + "rows_for_plan": 19683, + "cost_for_plan": 4456.861523, "semijoin_strategy_choice": [ { + "strategy": "FirstMatch", + "records": 27, + "read_time": 9562.749707 + }, + { "strategy": "DuplicateWeedout", "records": 27, - "read_time": 320.4615234 + "read_time": 7413.361523 }, { - "chosen_strategy": "DuplicateWeedout" + "chosen_strategy": "FirstMatch" } - ] + ], + "pruned_by_cost": true, + "current_cost": 9562.749707, + "best_cost": 568.8615234 } ] }, { "plan_prefix": [ "t_outer_1", + "t_outer_2", "t_inner_1", - "t_inner_2", "t_inner_4" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 59.24614258, + "rows_for_plan": 2187, + "cost_for_plan": 518.2461426, "semijoin_strategy_choice": [], "pruned_by_heuristic": true } ] }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], "table": "t_inner_3", + "rows_for_plan": 729, + "cost_for_plan": 176.0410156, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": "min_read_time" + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_2", + "rows_for_plan": 243, + "cost_for_plan": 60.63588867, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 28.22563477, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_3", + "rows_for_plan": 243, + "cost_for_plan": 60.63588867, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true + } + ] + }, + { + "plan_prefix": ["t_outer_1"], + "table": "t_inner_1", + "rows_for_plan": 9, + "cost_for_plan": 6.410253906, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "get_costs_for_tables": [ + { "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", @@ -5396,41 +6092,11 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 27, - "cost_for_plan": 44.64101563, - "semijoin_strategy_choice": [], - "pruned_by_heuristic": true - } - ] - }, - { - "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 24.62563477, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_outer_2"], - "table": "t_inner_2", "best_access_path": { + "table": "t_outer_2", "considered_access_paths": [ { "access_type": "scan", @@ -5445,7 +6111,120 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "table": "t_outer_2", + "rows_for_plan": 81, + "cost_for_plan": 24.62563477, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_outer_2"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_outer_2"], + "table": "t_inner_2", "rows_for_plan": 729, "cost_for_plan": 172.4410156, "semijoin_strategy_choice": [ @@ -5466,37 +6245,29 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "t_outer_2", "t_inner_2" ], - "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 304.0461426, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_outer_2", - "t_inner_2", - "t_inner_4" - ], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -5511,7 +6282,61 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_2" + ], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 304.0461426, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_2", + "t_inner_4" + ], + "table": "t_inner_3", "rows_for_plan": 729, "cost_for_plan": 451.8615234, "semijoin_strategy_choice": [ @@ -5528,8 +6353,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "chosen_strategy": "DuplicateWeedout" } - ], - "pruned_by_cost": true + ] } ] }, @@ -5541,48 +6365,16 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "t_inner_2" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 243, "cost_for_plan": 336.4563965, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_heuristic": true } ] }, { "plan_prefix": ["t_outer_1", "t_inner_1", "t_outer_2"], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, "rows_for_plan": 243, "cost_for_plan": 75.23076172, "semijoin_strategy_choice": [], @@ -5594,27 +6386,115 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "t_outer_2", "t_inner_4" ], - "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true } - }, + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_4" + ], + "table": "t_inner_2", "rows_for_plan": 2187, "cost_for_plan": 514.6461426, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_4", + "t_inner_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_outer_2", + "t_inner_4", + "t_inner_2" + ], + "table": "t_inner_3", + "rows_for_plan": 19683, + "cost_for_plan": 4453.261523, + "semijoin_strategy_choice": [ + { + "strategy": "DuplicateWeedout", + "records": 27, + "read_time": 7409.761523 + }, + { + "chosen_strategy": "DuplicateWeedout" + } + ], + "pruned_by_cost": true, + "current_cost": 7409.761523, + "best_cost": 565.2615234 + } + ] }, { "plan_prefix": [ @@ -5624,61 +6504,50 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "t_inner_4" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 2187, "cost_for_plan": 514.6461426, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_heuristic": true } ] }, { "plan_prefix": ["t_outer_1", "t_inner_1", "t_outer_2"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 729, "cost_for_plan": 172.4410156, "semijoin_strategy_choice": [], - "rest_of_plan": [ + "pruned_by_heuristic": "min_read_time" + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "table": "t_inner_2", + "rows_for_plan": 81, + "cost_for_plan": 24.62563477, + "semijoin_strategy_choice": [ + { + "strategy": "FirstMatch", + "records": 3, + "read_time": 44.75893555 + }, + { + "strategy": "DuplicateWeedout", + "records": 3, + "read_time": 37.22563477 + }, + { + "chosen_strategy": "DuplicateWeedout" + } + ], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_outer_2", - "t_inner_3" - ], - "table": "t_inner_2", "best_access_path": { + "table": "t_outer_2", "considered_access_paths": [ { "access_type": "scan", @@ -5693,21 +6562,11 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 6561, - "cost_for_plan": 1486.656396, - "semijoin_strategy_choice": [], - "pruned_by_cost": true + } }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_outer_2", - "t_inner_3" - ], - "table": "t_inner_4", "best_access_path": { + "table": "t_inner_4", "considered_access_paths": [ { "access_type": "scan", @@ -5722,71 +6581,11 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.005126953, "uses_join_buffering": true } - }, - "rows_for_plan": 2187, - "cost_for_plan": 611.8461426, - "semijoin_strategy_choice": [], - "pruned_by_cost": true - } - ] - } - ] - }, - { - "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, - "rows_for_plan": 27, - "cost_for_plan": 13.81538086, - "semijoin_strategy_choice": [], - "rest_of_plan": [ - { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], - "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 243, - "cost_for_plan": 64.43076172, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_4", - "t_inner_2" - ], - "table": "t_outer_2", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -5801,88 +6600,292 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 2187, - "cost_for_plan": 503.8461426, + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "table": "t_outer_2", + "rows_for_plan": 27, + "cost_for_plan": 44.64101563, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2" + ], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 62.84614258, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2", + "t_inner_4" + ], + "table": "t_inner_3", + "rows_for_plan": 729, + "cost_for_plan": 210.6615234, + "semijoin_strategy_choice": [ + { + "strategy": "FirstMatch", + "records": 27, + "read_time": 424.025293 + }, + { + "strategy": "DuplicateWeedout", + "records": 27, + "read_time": 324.0615234 + }, + { + "chosen_strategy": "DuplicateWeedout" + } + ] + } + ] }, { "plan_prefix": [ "t_outer_1", "t_inner_1", - "t_inner_4", - "t_inner_2" + "t_inner_2", + "t_outer_2" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 2187, - "cost_for_plan": 503.8461426, + "rows_for_plan": 243, + "cost_for_plan": 95.25639648, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_heuristic": true } ] }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 243, - "cost_for_plan": 64.43076172, + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "table": "t_inner_4", + "rows_for_plan": 9, + "cost_for_plan": 41.03076172, "semijoin_strategy_choice": [], - "pruned_by_heuristic": true + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_outer_2", + "rows_for_plan": 81, + "cost_for_plan": 59.24614258, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4", + "t_outer_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4", + "t_outer_2" + ], + "table": "t_inner_3", + "rows_for_plan": 729, + "cost_for_plan": 207.0615234, + "semijoin_strategy_choice": [ + { + "strategy": "DuplicateWeedout", + "records": 27, + "read_time": 320.4615234 + }, + { + "chosen_strategy": "DuplicateWeedout" + } + ] + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_inner_3", + "rows_for_plan": 81, + "cost_for_plan": 59.24614258, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true + } + ] }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 243, - "cost_for_plan": 64.43076172, + "rows_for_plan": 27, + "cost_for_plan": 44.64101563, "semijoin_strategy_choice": [], "pruned_by_heuristic": true } @@ -5890,59 +6893,17 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { }, { "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 24.62563477, + "table": "t_inner_4", + "rows_for_plan": 27, + "cost_for_plan": 13.81538086, "semijoin_strategy_choice": [], "rest_of_plan": [ { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"], - "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 729, - "cost_for_plan": 172.4410156, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_3", - "t_inner_2" - ], - "table": "t_outer_2", "best_access_path": { + "table": "t_outer_2", "considered_access_paths": [ { "access_type": "scan", @@ -5957,99 +6918,30 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 6561, - "cost_for_plan": 1486.656396, - "semijoin_strategy_choice": [], - "pruned_by_cost": true + } }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_3", - "t_inner_2" - ], - "table": "t_inner_4", "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, + "resulting_rows": 9, + "cost": 2.015380859, "chosen": true } ], "chosen_access_method": { "type": "scan", - "records": 3, - "cost": 2.005126953, + "records": 9, + "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 2187, - "cost_for_plan": 611.8461426, - "semijoin_strategy_choice": [], - "pruned_by_cost": true - } - ] - }, - { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 729, - "cost_for_plan": 172.4410156, - "semijoin_strategy_choice": [], - "pruned_by_heuristic": true - }, - { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_3"], - "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, - "rows_for_plan": 243, - "cost_for_plan": 75.23076172, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_3", - "t_inner_4" - ], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -6064,90 +6956,128 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], + "table": "t_outer_2", + "rows_for_plan": 243, + "cost_for_plan": 64.43076172, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_4", + "t_outer_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_4", + "t_outer_2" + ], + "table": "t_inner_2", "rows_for_plan": 2187, - "cost_for_plan": 514.6461426, + "cost_for_plan": 503.8461426, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 503.8461426, + "best_cost": 320.4615234 }, { "plan_prefix": [ "t_outer_1", "t_inner_1", - "t_inner_3", - "t_inner_4" + "t_inner_4", + "t_outer_2" ], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, + "table": "t_inner_3", "rows_for_plan": 2187, - "cost_for_plan": 514.6461426, + "cost_for_plan": 503.8461426, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 503.8461426, + "best_cost": 320.4615234 } ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], + "table": "t_inner_2", + "rows_for_plan": 243, + "cost_for_plan": 64.43076172, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_4"], + "table": "t_inner_3", + "rows_for_plan": 243, + "cost_for_plan": 64.43076172, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true } ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "table": "t_inner_3", + "rows_for_plan": 81, + "cost_for_plan": 24.62563477, + "semijoin_strategy_choice": [], + "pruned_by_heuristic": true } ] }, { "plan_prefix": ["t_outer_1"], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 27, - "cost_for_plan": 10.02050781, - "semijoin_strategy_choice": [], - "pruned_by_heuristic": true - }, - { - "plan_prefix": ["t_outer_1"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 10.02050781, "semijoin_strategy_choice": [], @@ -6156,22 +7086,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": ["t_outer_1"], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, "rows_for_plan": 9, "cost_for_plan": 6.410253906, "semijoin_strategy_choice": [], @@ -6180,22 +7094,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": ["t_outer_1"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 10.02050781, "semijoin_strategy_choice": [], @@ -6205,71 +7103,23 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { }, { "plan_prefix": [], - "table": "t_inner_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, + "table": "t_outer_2", + "rows_for_plan": 9, + "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], "pruned_by_heuristic": true }, { "plan_prefix": [], - "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, - "rows_for_plan": 9, - "cost_for_plan": 3.815380859, + "table": "t_inner_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], "pruned_by_heuristic": true }, { "plan_prefix": [], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, + "table": "t_inner_2", "rows_for_plan": 9, "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], @@ -6278,22 +7128,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], @@ -6302,22 +7136,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, "rows_for_plan": 9, "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], @@ -6398,8 +7216,8 @@ explain select * from t1 t_outer_1,t2 t_outer_2 where t_outer_1.a in (select t_ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t_outer_1 ALL NULL NULL NULL NULL 3 -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY t_outer_2 ALL NULL NULL NULL NULL 9 Using join buffer (flat, BNL join) +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t_inner_1 ALL NULL NULL NULL NULL 3 2 MATERIALIZED t_inner_2 ALL NULL NULL NULL NULL 9 Using join buffer (flat, BNL join) @@ -6620,30 +7438,29 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t_inner_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "rest_of_plan": [ + }, { - "plan_prefix": ["t_inner_1"], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", @@ -6656,9 +7473,45 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "type": "scan", "records": 9, "cost": 2.015380859, - "uses_join_buffering": true + "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t_inner_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "rest_of_plan": [ + { + "plan_prefix": ["t_inner_1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_inner_1"], + "table": "t_inner_2", "rows_for_plan": 27, "cost_for_plan": 10.02050781 } @@ -6667,22 +7520,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, "rows_for_plan": 9, "cost_for_plan": 3.815380859, "pruned_by_heuristic": true @@ -6693,30 +7530,29 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "rest_of_plan": [ + }, { - "plan_prefix": ["t_inner_4"], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -6729,9 +7565,45 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "type": "scan", "records": 9, "cost": 2.015380859, - "uses_join_buffering": true + "uses_join_buffering": false } - }, + } + } + ] + }, + { + "plan_prefix": [], + "table": "t_inner_4", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "rest_of_plan": [ + { + "plan_prefix": ["t_inner_4"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_inner_4"], + "table": "t_inner_3", "rows_for_plan": 27, "cost_for_plan": 10.02050781 } @@ -6740,22 +7612,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, "rows_for_plan": 9, "cost_for_plan": 3.815380859, "pruned_by_heuristic": true @@ -6769,31 +7625,29 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t_outer_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_outer_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + }, { - "plan_prefix": ["t_outer_1"], - "table": "t_inner_1", "best_access_path": { + "table": "t_inner_1", "considered_access_paths": [ { "access_type": "scan", @@ -6806,17 +7660,120 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "type": "scan", "records": 3, "cost": 2.005126953, - "uses_join_buffering": true + "uses_join_buffering": false } - }, - "rows_for_plan": 9, - "cost_for_plan": 6.410253906, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": false + } + } + } + ] + }, + { + "plan_prefix": [], + "table": "t_outer_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1"], + "get_costs_for_tables": [ { - "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_inner_2", "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_2", "considered_access_paths": [ { "access_type": "scan", @@ -6831,34 +7788,137 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 81, - "cost_for_plan": 24.62563477, - "semijoin_strategy_choice": [ - { - "strategy": "FirstMatch", + } + }, + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", "records": 3, - "read_time": 44.75893555 - }, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1"], + "table": "t_outer_2", + "rows_for_plan": 27, + "cost_for_plan": 10.02050781, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "get_costs_for_tables": [ { - "strategy": "SJ-Materialization", - "records": 3, - "read_time": 8.125634766 + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } }, { - "strategy": "DuplicateWeedout", - "records": 3, - "read_time": 37.22563477 + "best_access_path": { + "table": "t_inner_1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } }, { - "chosen_strategy": "SJ-Materialization" - } - ], - "rest_of_plan": [ + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], - "table": "t_outer_2", "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -6873,20 +7933,42 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 27, - "cost_for_plan": 15.54101562, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_1", + "rows_for_plan": 81, + "cost_for_plan": 28.22563477, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_outer_2" - ], - "table": "t_inner_4", "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_4", "considered_access_paths": [ { "access_type": "scan", @@ -6901,21 +7983,85 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.005126953, "uses_join_buffering": true } - }, - "rows_for_plan": 81, - "cost_for_plan": 33.74614258, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], + "table": "t_inner_2", + "rows_for_plan": 729, + "cost_for_plan": 176.0410156, + "semijoin_strategy_choice": [ + { + "strategy": "FirstMatch", + "records": 27, + "read_time": 389.4047852 + }, + { + "strategy": "SJ-Materialization", + "records": 27, + "read_time": 16.74101562 + }, + { + "strategy": "DuplicateWeedout", + "records": 27, + "read_time": 289.4410156 + }, + { + "chosen_strategy": "SJ-Materialization" + } + ], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2" + ], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_outer_2", - "t_inner_4" - ], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -6930,24 +8076,78 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2" + ], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 34.94614258, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_outer_2", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_inner_3", "rows_for_plan": 729, - "cost_for_plan": 181.5615234, + "cost_for_plan": 182.7615234, "semijoin_strategy_choice": [ { "strategy": "FirstMatch", "records": 27, - "read_time": 394.925293 + "read_time": 396.125293 }, { "strategy": "SJ-Materialization", "records": 27, - "read_time": 22.26152344 + "read_time": 23.46152344 }, { "strategy": "DuplicateWeedout", "records": 27, - "read_time": 294.9615234 + "read_time": 296.1615234 }, { "chosen_strategy": "SJ-Materialization" @@ -6959,38 +8159,125 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [ "t_outer_1", + "t_outer_2", "t_inner_1", - "t_inner_2", - "t_outer_2" + "t_inner_2" ], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 243, - "cost_for_plan": 66.15639648, + "cost_for_plan": 67.35639648, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 67.35639648, + "best_cost": 23.46152344 } ] }, { - "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], "table": "t_inner_4", + "rows_for_plan": 243, + "cost_for_plan": 78.83076172, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 78.83076172, + "best_cost": 23.46152344 + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2", "t_inner_1"], + "table": "t_inner_3", + "rows_for_plan": 729, + "cost_for_plan": 176.0410156, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 176.0410156, + "best_cost": 23.46152344 + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_2", + "rows_for_plan": 243, + "cost_for_plan": 60.63588867, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 60.63588867, + "best_cost": 23.46152344 + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 28.22563477, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 28.22563477, + "best_cost": 23.46152344 + }, + { + "plan_prefix": ["t_outer_1", "t_outer_2"], + "table": "t_inner_3", + "rows_for_plan": 243, + "cost_for_plan": 60.63588867, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 60.63588867, + "best_cost": 23.46152344 + } + ] + }, + { + "plan_prefix": ["t_outer_1"], + "table": "t_inner_1", + "rows_for_plan": 9, + "cost_for_plan": 6.410253906, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { "best_access_path": { + "table": "t_inner_4", "considered_access_paths": [ { "access_type": "scan", @@ -7005,20 +8292,71 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.005126953, "uses_join_buffering": true } - }, - "rows_for_plan": 9, - "cost_for_plan": 11.93076172, - "semijoin_strategy_choice": [], - "rest_of_plan": [ + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "table": "t_outer_2", + "rows_for_plan": 81, + "cost_for_plan": 24.62563477, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 24.62563477, + "best_cost": 23.46152344 + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1"], + "table": "t_inner_2", + "rows_for_plan": 81, + "cost_for_plan": 24.62563477, + "semijoin_strategy_choice": [ + { + "strategy": "FirstMatch", + "records": 3, + "read_time": 44.75893555 + }, + { + "strategy": "SJ-Materialization", + "records": 3, + "read_time": 8.125634766 + }, + { + "strategy": "DuplicateWeedout", + "records": 3, + "read_time": 37.22563477 + }, + { + "chosen_strategy": "SJ-Materialization" + } + ], + "rest_of_plan": [ + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "get_costs_for_tables": [ { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_inner_4" - ], - "table": "t_outer_2", "best_access_path": { + "table": "t_outer_2", "considered_access_paths": [ { "access_type": "scan", @@ -7033,21 +8371,30 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, - "rows_for_plan": 81, - "cost_for_plan": 30.14614258, - "semijoin_strategy_choice": [], - "pruned_by_cost": true + } }, { - "plan_prefix": [ - "t_outer_1", - "t_inner_1", - "t_inner_2", - "t_inner_4" - ], - "table": "t_inner_3", "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", "considered_access_paths": [ { "access_type": "scan", @@ -7062,33 +8409,187 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "cost": 2.015380859, "uses_join_buffering": true } - }, + } + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "table": "t_outer_2", + "rows_for_plan": 27, + "cost_for_plan": 15.54101562, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_inner_4", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2" + ], + "table": "t_inner_4", + "rows_for_plan": 81, + "cost_for_plan": 33.74614258, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 33.74614258, + "best_cost": 23.46152344 + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_outer_2" + ], + "table": "t_inner_3", + "rows_for_plan": 243, + "cost_for_plan": 66.15639648, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 66.15639648, + "best_cost": 23.46152344 + } + ] + }, + { + "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], + "table": "t_inner_4", + "rows_for_plan": 9, + "cost_for_plan": 11.93076172, + "semijoin_strategy_choice": [], + "rest_of_plan": [ + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t_outer_2", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + }, + { + "best_access_path": { + "table": "t_inner_3", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 9, + "cost": 2.015380859, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 9, + "cost": 2.015380859, + "uses_join_buffering": true + } + } + } + ] + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_outer_2", + "rows_for_plan": 81, + "cost_for_plan": 30.14614258, + "semijoin_strategy_choice": [], + "pruned_by_cost": true, + "current_cost": 30.14614258, + "best_cost": 23.46152344 + }, + { + "plan_prefix": [ + "t_outer_1", + "t_inner_1", + "t_inner_2", + "t_inner_4" + ], + "table": "t_inner_3", "rows_for_plan": 81, "cost_for_plan": 30.14614258, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 30.14614258, + "best_cost": 23.46152344 } ] }, { "plan_prefix": ["t_outer_1", "t_inner_1", "t_inner_2"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 15.54101562, "semijoin_strategy_choice": [], @@ -7098,47 +8599,7 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { }, { "plan_prefix": ["t_outer_1", "t_inner_1"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 81, - "cost_for_plan": 24.62563477, - "semijoin_strategy_choice": [], - "pruned_by_cost": true - }, - { - "plan_prefix": ["t_outer_1", "t_inner_1"], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 13.81538086, "semijoin_strategy_choice": [], @@ -7147,72 +8608,18 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": ["t_outer_1", "t_inner_1"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 81, "cost_for_plan": 24.62563477, "semijoin_strategy_choice": [], - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 24.62563477, + "best_cost": 23.46152344 } ] }, { "plan_prefix": ["t_outer_1"], "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, - "rows_for_plan": 27, - "cost_for_plan": 10.02050781, - "semijoin_strategy_choice": [], - "pruned_by_heuristic": true - }, - { - "plan_prefix": ["t_outer_1"], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 10.02050781, "semijoin_strategy_choice": [], @@ -7221,22 +8628,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": ["t_outer_1"], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": true - } - }, "rows_for_plan": 9, "cost_for_plan": 6.410253906, "semijoin_strategy_choice": [], @@ -7245,22 +8636,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": ["t_outer_1"], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": true - } - }, "rows_for_plan": 27, "cost_for_plan": 10.02050781, "semijoin_strategy_choice": [], @@ -7270,71 +8645,23 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { }, { "plan_prefix": [], - "table": "t_inner_1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, - "rows_for_plan": 3, - "cost_for_plan": 2.605126953, + "table": "t_outer_2", + "rows_for_plan": 9, + "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], "pruned_by_heuristic": true }, { "plan_prefix": [], - "table": "t_inner_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, - "rows_for_plan": 9, - "cost_for_plan": 3.815380859, + "table": "t_inner_1", + "rows_for_plan": 3, + "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], "pruned_by_heuristic": true }, { "plan_prefix": [], - "table": "t_outer_2", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, + "table": "t_inner_2", "rows_for_plan": 9, "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], @@ -7343,22 +8670,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_4", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false - } - }, "rows_for_plan": 3, "cost_for_plan": 2.605126953, "semijoin_strategy_choice": [], @@ -7367,22 +8678,6 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "plan_prefix": [], "table": "t_inner_3", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 9, - "cost": 2.015380859, - "chosen": true - } - ], - "chosen_access_method": { - "type": "scan", - "records": 9, - "cost": 2.015380859, - "uses_join_buffering": false - } - }, "rows_for_plan": 9, "cost_for_plan": 3.815380859, "semijoin_strategy_choice": [], @@ -7419,8 +8714,8 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { { "best_join_order": [ "t_outer_1", - "<subquery2>", "t_outer_2", + "<subquery2>", "<subquery3>" ] }, @@ -7443,19 +8738,19 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { "attached": null }, { - "table": "t_inner_1", + "table": "t_outer_2", "attached": null }, { - "table": "t_inner_2", + "table": "t_inner_1", "attached": null }, { - "table": "<subquery2>", + "table": "t_inner_2", "attached": null }, { - "table": "t_outer_2", + "table": "<subquery2>", "attached": null }, { @@ -8065,47 +9360,44 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) "plan_prefix": [ ], - "table": "A", - "best_access_path": - { - "considered_access_paths": - [ - + "get_costs_for_tables": + [ + + { + "best_access_path": { - "access_type": "scan", - "resulting_rows": 5, - "cost": 3.017089844, - "chosen": true + "table": "A", + "considered_access_paths": + [ + + { + "access_type": "scan", + "resulting_rows": 5, + "cost": 3.017089844, + "chosen": true + } + ], + "chosen_access_method": + { + "type": "scan", + "records": 5, + "cost": 3.017089844, + "uses_join_buffering": false + } } - ], - "chosen_access_method": - { - "type": "scan", - "records": 5, - "cost": 3.017089844, - "uses_join_buffering": false - } - }, - "rows_for_plan": 5, - "cost_for_plan": 4.017089844, - "rest_of_plan": - [ + }, { - "plan_prefix": - [ - "A" - ], - "table": "B", "best_access_path": { + "table": "B", "considered_access_paths": [ { "access_type": "scan", "resulting_rows": 800, - "cost": 220.9863281, + "cost": 44.19726562, "chosen": true } ], @@ -8113,10 +9405,64 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) { "type": "scan", "records": 800, - "cost": 220.9863281, + "cost": 44.19726562, "uses_join_buffering": false } - }, + } + } + ] + }, + + { + "plan_prefix": + [ + ], + "table": "A", + "rows_for_plan": 5, + "cost_for_plan": 4.017089844, + "rest_of_plan": + [ + + { + "plan_prefix": + [ + "A" + ], + "get_costs_for_tables": + [ + + { + "best_access_path": + { + "table": "B", + "considered_access_paths": + [ + + { + "access_type": "scan", + "resulting_rows": 800, + "cost": 220.9863281, + "chosen": true + } + ], + "chosen_access_method": + { + "type": "scan", + "records": 800, + "cost": 220.9863281, + "uses_join_buffering": false + } + } + } + ] + }, + + { + "plan_prefix": + [ + "A" + ], + "table": "B", "rows_for_plan": 4000, "cost_for_plan": 1025.003418 } @@ -8128,26 +9474,6 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) [ ], "table": "B", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "scan", - "resulting_rows": 800, - "cost": 44.19726562, - "chosen": true - } - ], - "chosen_access_method": - { - "type": "scan", - "records": 800, - "cost": 44.19726562, - "uses_join_buffering": false - } - }, "rows_for_plan": 800, "cost_for_plan": 204.1972656, "pruned_by_heuristic": true @@ -8170,68 +9496,119 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) "plan_prefix": [ ], - "table": "A", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.017089844, - "chosen": true - } - ], - "chosen_access_method": - { - "type": "scan", - "records": 10, - "cost": 2.017089844, - "uses_join_buffering": false - } - }, - "rows_for_plan": 10, - "cost_for_plan": 4.017089844, - "rest_of_plan": + "get_costs_for_tables": [ { - "plan_prefix": - [ - "A" - ], - "table": "B", "best_access_path": { + "table": "A", "considered_access_paths": [ { - "access_type": "ref", - "index": "b", - "used_range_estimates": false, - "reason": "not available", - "rows": 1, - "cost": 20.00585794, + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.017089844, "chosen": true - }, + } + ], + "chosen_access_method": + { + "type": "scan", + "records": 10, + "cost": 2.017089844, + "uses_join_buffering": false + } + } + }, + + { + "best_access_path": + { + "table": "B", + "considered_access_paths": + [ { "access_type": "scan", "resulting_rows": 800, "cost": 44.19726562, - "chosen": false + "chosen": true } ], "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 20.00585794, + "type": "scan", + "records": 800, + "cost": 44.19726562, "uses_join_buffering": false } - }, + } + } + ] + }, + + { + "plan_prefix": + [ + ], + "table": "A", + "rows_for_plan": 10, + "cost_for_plan": 4.017089844, + "rest_of_plan": + [ + + { + "plan_prefix": + [ + "A" + ], + "get_costs_for_tables": + [ + + { + "best_access_path": + { + "table": "B", + "considered_access_paths": + [ + + { + "access_type": "ref", + "index": "b", + "used_range_estimates": false, + "reason": "not available", + "rows": 1, + "cost": 20.00585794, + "chosen": true + }, + + { + "access_type": "scan", + "resulting_rows": 800, + "cost": 44.19726562, + "chosen": false + } + ], + "chosen_access_method": + { + "type": "ref", + "records": 1, + "cost": 20.00585794, + "uses_join_buffering": false + } + } + } + ] + }, + + { + "plan_prefix": + [ + "A" + ], + "table": "B", "rows_for_plan": 10, "cost_for_plan": 26.02294779, "selectivity": 0.8, @@ -8245,29 +9622,11 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) [ ], "table": "B", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "scan", - "resulting_rows": 800, - "cost": 44.19726562, - "chosen": true - } - ], - "chosen_access_method": - { - "type": "scan", - "records": 800, - "cost": 44.19726562, - "uses_join_buffering": false - } - }, "rows_for_plan": 800, "cost_for_plan": 204.1972656, - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 204.1972656, + "best_cost": 26.02294779 } ] ] @@ -8394,72 +9753,123 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) "plan_prefix": [ ], - "table": "t1", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true - } - ], - "chosen_access_method": - { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": false - } - }, - "rows_for_plan": 10, - "cost_for_plan": 4.021972656, - "rest_of_plan": + "get_costs_for_tables": [ { - "plan_prefix": - [ - "t1" - ], - "table": "t2", "best_access_path": { + "table": "t1", "considered_access_paths": [ { - "access_type": "ref", - "index": "a", - "used_range_estimates": false, - "reason": "not available", - "rows": 1, - "cost": 20.00585794, + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, "chosen": true - }, + } + ], + "chosen_access_method": + { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": false + } + } + }, + + { + "best_access_path": + { + "table": "t2", + "considered_access_paths": + [ { "access_type": "scan", "resulting_rows": 100, "cost": 2.219726562, - "chosen": false + "chosen": true, + "use_tmp_table": true } ], "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 20.00585794, + "type": "scan", + "records": 100, + "cost": 2.219726562, "uses_join_buffering": false } - }, + } + } + ] + }, + + { + "plan_prefix": + [ + ], + "table": "t1", + "rows_for_plan": 10, + "cost_for_plan": 4.021972656, + "rest_of_plan": + [ + + { + "plan_prefix": + [ + "t1" + ], + "get_costs_for_tables": + [ + + { + "best_access_path": + { + "table": "t2", + "considered_access_paths": + [ + + { + "access_type": "ref", + "index": "a", + "used_range_estimates": false, + "reason": "not available", + "rows": 1, + "cost": 20.00585794, + "chosen": true + }, + + { + "access_type": "scan", + "resulting_rows": 100, + "cost": 2.219726562, + "chosen": false + } + ], + "chosen_access_method": + { + "type": "ref", + "records": 1, + "cost": 20.00585794, + "uses_join_buffering": false + } + } + } + ] + }, + + { + "plan_prefix": + [ + "t1" + ], + "table": "t2", "rows_for_plan": 10, "cost_for_plan": 26.0278306, - "cost_for_sorting": 10, - "pruned_by_hanging_leaf": true + "cost_for_sorting": 10 } ] }, @@ -8469,27 +9879,6 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) [ ], "table": "t2", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "scan", - "resulting_rows": 100, - "cost": 2.219726562, - "chosen": true, - "use_tmp_table": true - } - ], - "chosen_access_method": - { - "type": "scan", - "records": 100, - "cost": 2.219726562, - "uses_join_buffering": false - } - }, "rows_for_plan": 100, "cost_for_plan": 22.21972656, "rest_of_plan": @@ -8500,40 +9889,56 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) [ "t2" ], - "table": "t1", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "ref", - "index": "a", - "used_range_estimates": false, - "reason": "not available", - "rows": 1, - "cost": 200.0585794, - "chosen": true - }, - + "get_costs_for_tables": + [ + + { + "best_access_path": { - "access_type": "scan", - "resulting_rows": 10, - "cost": 2.021972656, - "chosen": true + "table": "t1", + "considered_access_paths": + [ + + { + "access_type": "ref", + "index": "a", + "used_range_estimates": false, + "reason": "not available", + "rows": 1, + "cost": 200.0585794, + "chosen": true + }, + + { + "access_type": "scan", + "resulting_rows": 10, + "cost": 2.021972656, + "chosen": true + } + ], + "chosen_access_method": + { + "type": "scan", + "records": 10, + "cost": 2.021972656, + "uses_join_buffering": true + } } - ], - "chosen_access_method": - { - "type": "scan", - "records": 10, - "cost": 2.021972656, - "uses_join_buffering": true } - }, + ] + }, + + { + "plan_prefix": + [ + "t2" + ], + "table": "t1", "rows_for_plan": 1000, "cost_for_plan": 224.2416992, - "pruned_by_cost": true + "pruned_by_cost": true, + "current_cost": 224.2416992, + "best_cost": 36.0278306 } ] } @@ -8761,23 +10166,31 @@ select count(*) from seq_1_to_10000000 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "seq_1_to_10000000", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 10000000, - "cost": 10000000, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "seq_1_to_10000000", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 10000000, + "cost": 10000000, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 10000000, + "cost": 10000000, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 10000000, - "cost": 10000000, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "seq_1_to_10000000", "rows_for_plan": 10000000, "cost_for_plan": 12000000 } @@ -8948,7 +10361,7 @@ set @path= (select json_search(@trace, 'one', 'no predicate for first keypart')) set @sub_path= substr(@path, 2, locate('.best_access_path', @path)-2); select @sub_path; @sub_path -$.steps[1].join_optimization.steps[4].considered_execution_plans[0].rest_of_plan[0] +$.steps[1].join_optimization.steps[4].considered_execution_plans[1].rest_of_plan[0].get_costs_for_tables[0] select json_detailed(json_extract( @trace, @@ -9151,36 +10564,49 @@ json_detailed(json_extract(trace, '$**.choose_best_splitting')) "plan_prefix": [ ], - "table": "t2", - "best_access_path": - { - "considered_access_paths": - [ - - { - "access_type": "ref", - "index": "idx_a", - "used_range_estimates": false, - "reason": "not available", - "rows": 1.8367, - "cost": 2.000585794, - "chosen": true - }, - + "get_costs_for_tables": + [ + + { + "best_access_path": { - "type": "scan", - "chosen": false, - "cause": "cost" + "table": "t2", + "considered_access_paths": + [ + + { + "access_type": "ref", + "index": "idx_a", + "used_range_estimates": false, + "reason": "not available", + "rows": 1.8367, + "cost": 2.000585794, + "chosen": true + }, + + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": + { + "type": "ref", + "records": 1.8367, + "cost": 2.000585794, + "uses_join_buffering": false + } } - ], - "chosen_access_method": - { - "type": "ref", - "records": 1.8367, - "cost": 2.000585794, - "uses_join_buffering": false } - }, + ] + }, + + { + "plan_prefix": + [ + ], + "table": "t2", "rows_for_plan": 1.8367, "cost_for_plan": 2.367925794, "cost_for_sorting": 1.8367 @@ -9258,5 +10684,5 @@ left(trace, 100) "select_id": 1, "steps": [ -# End of 10.6 tests set optimizer_trace='enabled=off'; +# End of 10.6 tests diff --git a/mysql-test/main/opt_trace.test b/mysql-test/main/opt_trace.test index e98964c2830..d07afb2dfce 100644 --- a/mysql-test/main/opt_trace.test +++ b/mysql-test/main/opt_trace.test @@ -924,6 +924,7 @@ set optimizer_trace=0; set statement optimizer_trace=1 for select * from seq_1_to_10 where seq<2; --echo # The trace must not be empty: select left(trace, 100) from information_schema.optimizer_trace; +set optimizer_trace='enabled=off'; --echo # End of 10.6 tests -set optimizer_trace='enabled=off'; + diff --git a/mysql-test/main/opt_trace_index_merge.result b/mysql-test/main/opt_trace_index_merge.result index 335e408bddd..885740d59c3 100644 --- a/mysql-test/main/opt_trace_index_merge.result +++ b/mysql-test/main/opt_trace_index_merge.result @@ -203,23 +203,31 @@ explain select * from t1 where a=1 or b=1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "index_merge", - "resulting_rows": 2, - "cost": 2.484903732, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "index_merge", + "resulting_rows": 2, + "cost": 2.484903732, + "chosen": true + } + ], + "chosen_access_method": { + "type": "index_merge", + "records": 2, + "cost": 2.484903732, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "index_merge", - "records": 2, - "cost": 2.484903732, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 2, "cost_for_plan": 2.884903732 } diff --git a/mysql-test/main/opt_trace_index_merge_innodb.result b/mysql-test/main/opt_trace_index_merge_innodb.result index 590b659f40d..adb9cd5d622 100644 --- a/mysql-test/main/opt_trace_index_merge_innodb.result +++ b/mysql-test/main/opt_trace_index_merge_innodb.result @@ -202,33 +202,40 @@ explain select * from t1 where pk1 != 0 and key1 = 1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "ref", - "index": "key1", - "used_range_estimates": true, - "rows": 1, - "cost": 1.125146475, - "chosen": true - }, - { - "type": "scan", - "chosen": false, - "cause": "cost" + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "ref", + "index": "key1", + "used_range_estimates": true, + "rows": 1, + "cost": 1.125146475, + "chosen": true + }, + { + "type": "scan", + "chosen": false, + "cause": "cost" + } + ], + "chosen_access_method": { + "type": "ref", + "records": 1, + "cost": 1.125146475, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "ref", - "records": 1, - "cost": 1.125146475, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 1, - "cost_for_plan": 1.325146475, - "pruned_by_hanging_leaf": true + "cost_for_plan": 1.325146475 } ] }, diff --git a/mysql-test/main/opt_trace_security.result b/mysql-test/main/opt_trace_security.result index 7debcb06b46..48ca5c5e36f 100644 --- a/mysql-test/main/opt_trace_security.result +++ b/mysql-test/main/opt_trace_security.result @@ -89,23 +89,31 @@ select * from db1.t1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 3, "cost_for_plan": 2.605126953 } @@ -210,23 +218,31 @@ select * from db1.v1 { "considered_execution_plans": [ { "plan_prefix": [], - "table": "t1", - "best_access_path": { - "considered_access_paths": [ - { - "access_type": "scan", - "resulting_rows": 3, - "cost": 2.005126953, - "chosen": true + "get_costs_for_tables": [ + { + "best_access_path": { + "table": "t1", + "considered_access_paths": [ + { + "access_type": "scan", + "resulting_rows": 3, + "cost": 2.005126953, + "chosen": true + } + ], + "chosen_access_method": { + "type": "scan", + "records": 3, + "cost": 2.005126953, + "uses_join_buffering": false + } } - ], - "chosen_access_method": { - "type": "scan", - "records": 3, - "cost": 2.005126953, - "uses_join_buffering": false } - }, + ] + }, + { + "plan_prefix": [], + "table": "t1", "rows_for_plan": 3, "cost_for_plan": 2.605126953 } diff --git a/mysql-test/main/opt_tvc.result b/mysql-test/main/opt_tvc.result index 9b6d97492cd..eaf75ed7999 100644 --- a/mysql-test/main/opt_tvc.result +++ b/mysql-test/main/opt_tvc.result @@ -91,10 +91,10 @@ where a in (1,2) and b in (1,5); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 -1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 -4 MATERIALIZED <derived5> ALL NULL NULL NULL NULL 2 100.00 +1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED <derived3> ALL NULL NULL NULL NULL 2 100.00 +4 MATERIALIZED <derived5> ALL NULL NULL NULL NULL 2 100.00 5 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: @@ -112,10 +112,10 @@ from (values (1),(5)) as tvc_1 ); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 -1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 -4 MATERIALIZED <derived5> ALL NULL NULL NULL NULL 2 100.00 +1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED <derived3> ALL NULL NULL NULL NULL 2 100.00 +4 MATERIALIZED <derived5> ALL NULL NULL NULL NULL 2 100.00 5 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: diff --git a/mysql-test/main/partition_alter.result b/mysql-test/main/partition_alter.result index 28fef4e80d1..0134f4a8ebb 100644 --- a/mysql-test/main/partition_alter.result +++ b/mysql-test/main/partition_alter.result @@ -136,7 +136,7 @@ select * from t1 partition (p0); pk 1 drop table t1; -create or replace table t1 (pk int not null, x timestamp(6), unique u(pk, x)) engine innodb +create or replace table t1 (pk int not null, x timestamp(6) not null, unique u(pk, x)) engine innodb partition by key() partitions 2; insert into t1 (pk, x) values (1, '2000-01-01 00:00'), (2, '2000-01-01 00:01'); # Same for NOT NULL UNIQUE KEY as this is actually primary key @@ -147,7 +147,7 @@ select * from t1 partition (p0); pk 1 drop table t1; -create or replace table t1 (pk int, x timestamp(6), primary key (pk)) engine innodb +create or replace table t1 (pk int, x timestamp(6) not null, primary key (pk)) engine innodb partition by key(pk) partitions 2; insert into t1 (pk, x) values (1, '2000-01-01 00:00'), (2, '2000-01-01 00:01'); # Inplace for DROP PRIMARY KEY when partitioned by explicit field list is allowed diff --git a/mysql-test/main/partition_alter.test b/mysql-test/main/partition_alter.test index 72b09549b18..48d9657c7bd 100644 --- a/mysql-test/main/partition_alter.test +++ b/mysql-test/main/partition_alter.test @@ -126,7 +126,7 @@ alter table t1 drop primary key, drop column x, add primary key (pk); select * from t1 partition (p0); drop table t1; -create or replace table t1 (pk int not null, x timestamp(6), unique u(pk, x)) engine innodb +create or replace table t1 (pk int not null, x timestamp(6) not null, unique u(pk, x)) engine innodb partition by key() partitions 2; insert into t1 (pk, x) values (1, '2000-01-01 00:00'), (2, '2000-01-01 00:01'); --echo # Same for NOT NULL UNIQUE KEY as this is actually primary key @@ -136,7 +136,7 @@ alter table t1 drop key u, drop column x, add unique (pk); select * from t1 partition (p0); drop table t1; -create or replace table t1 (pk int, x timestamp(6), primary key (pk)) engine innodb +create or replace table t1 (pk int, x timestamp(6) not null, primary key (pk)) engine innodb partition by key(pk) partitions 2; insert into t1 (pk, x) values (1, '2000-01-01 00:00'), (2, '2000-01-01 00:01'); --echo # Inplace for DROP PRIMARY KEY when partitioned by explicit field list is allowed diff --git a/mysql-test/main/query_cache.result b/mysql-test/main/query_cache.result index 3a81b648171..f78a6ccc388 100644 --- a/mysql-test/main/query_cache.result +++ b/mysql-test/main/query_cache.result @@ -2239,3 +2239,28 @@ DROP TABLE t; restore defaults SET GLOBAL query_cache_type= default; SET GLOBAL query_cache_size=@save_query_cache_size; +# +# MDEV-29028: Queries using RANDOM_BYTES get stored in query cache +# +set @qcache= @@global.query_cache_type; +set global query_cache_type= 1; +set query_cache_type= 1; +create table t1 (a int); +insert into t1 values (1000); +flush status; +select * from information_schema.global_status where variable_name in ('Qcache_inserts','Qcache_hits') order by variable_name; +VARIABLE_NAME VARIABLE_VALUE +QCACHE_HITS 0 +QCACHE_INSERTS 0 +select * from information_schema.global_status where variable_name in ('Qcache_inserts','Qcache_hits') order by variable_name; +VARIABLE_NAME VARIABLE_VALUE +QCACHE_HITS 0 +QCACHE_INSERTS 0 +select random_bytes(1024) = random_bytes(1024) as improbable; +improbable +0 +drop table t1; +set global query_cache_type= @qcache; +# +# End of 10.10 tests +# diff --git a/mysql-test/main/query_cache.test b/mysql-test/main/query_cache.test index f3c8093d41b..8bc98fba982 100644 --- a/mysql-test/main/query_cache.test +++ b/mysql-test/main/query_cache.test @@ -1836,3 +1836,35 @@ DROP TABLE t; --echo restore defaults SET GLOBAL query_cache_type= default; SET GLOBAL query_cache_size=@save_query_cache_size; + +--echo # +--echo # MDEV-29028: Queries using RANDOM_BYTES get stored in query cache +--echo # + +set @qcache= @@global.query_cache_type; +set global query_cache_type= 1; +set query_cache_type= 1; + +create table t1 (a int); +insert into t1 values (1000); + +flush status; +--let $v1 = `select hex(random_bytes(a)) from t1` +select * from information_schema.global_status where variable_name in ('Qcache_inserts','Qcache_hits') order by variable_name; + +--let $v2 = `select hex(random_bytes(a)) from t1` +select * from information_schema.global_status where variable_name in ('Qcache_inserts','Qcache_hits') order by variable_name; + +if ($v1 == $v2) { +--echo highly improbable $v1 = $v2 +} + +select random_bytes(1024) = random_bytes(1024) as improbable; + +# Cleanup +drop table t1; +set global query_cache_type= @qcache; + +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/selectivity.result b/mysql-test/main/selectivity.result index 86c151630a2..691ba1319dd 100644 --- a/mysql-test/main/selectivity.result +++ b/mysql-test/main/selectivity.result @@ -486,8 +486,8 @@ order by s_name limit 10; id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY supplier ALL PRIMARY,i_s_nationkey NULL NULL NULL 10 100.00 Using where; Using filesort -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY nation eq_ref PRIMARY PRIMARY 4 dbt3_s001.supplier.s_nationkey 1 100.00 Using where +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED part ALL PRIMARY NULL NULL NULL 200 100.00 Using where 2 MATERIALIZED partsupp ref PRIMARY,i_ps_partkey,i_ps_suppkey i_ps_partkey 4 dbt3_s001.part.p_partkey 3 100.00 Using where 4 DEPENDENT SUBQUERY lineitem ref i_l_shipdate,i_l_suppkey_partkey,i_l_partkey,i_l_suppkey i_l_suppkey_partkey 10 dbt3_s001.partsupp.ps_partkey,dbt3_s001.partsupp.ps_suppkey 8 100.00 Using where @@ -1245,11 +1245,11 @@ EXPLAIN EXTENDED SELECT * FROM language, country, continent WHERE country_group = lang_group AND lang_group IS NULL; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE country ALL NULL NULL NULL NULL 2 50.00 Using where -1 SIMPLE language ALL NULL NULL NULL NULL 6 16.67 Using where; Using join buffer (flat, BNL join) +1 SIMPLE language ALL NULL NULL NULL NULL 6 16.67 Using where +1 SIMPLE country ALL NULL NULL NULL NULL 2 50.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE continent ALL NULL NULL NULL NULL 6 100.00 Using join buffer (incremental, BNL join) Warnings: -Note 1003 select `test`.`language`.`lang_group` AS `lang_group`,`test`.`language`.`lang` AS `lang`,`test`.`country`.`code` AS `code`,`test`.`country`.`country_group` AS `country_group`,`test`.`continent`.`cont_group` AS `cont_group`,`test`.`continent`.`cont` AS `cont` from `test`.`language` join `test`.`country` join `test`.`continent` where `test`.`language`.`lang_group` = `test`.`country`.`country_group` and `test`.`country`.`country_group` is null +Note 1003 select `test`.`language`.`lang_group` AS `lang_group`,`test`.`language`.`lang` AS `lang`,`test`.`country`.`code` AS `code`,`test`.`country`.`country_group` AS `country_group`,`test`.`continent`.`cont_group` AS `cont_group`,`test`.`continent`.`cont` AS `cont` from `test`.`language` join `test`.`country` join `test`.`continent` where `test`.`country`.`country_group` = `test`.`language`.`lang_group` and `test`.`language`.`lang_group` is null set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; drop table language, country, continent; set use_stat_tables=@save_use_stat_tables; @@ -1769,8 +1769,8 @@ explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 range a a 10 NULL 9 100.00 Using index condition; Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 Warnings: Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 @@ -1791,8 +1791,8 @@ explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 range a a 10 NULL 9 9.00 Using index condition; Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 Warnings: Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 diff --git a/mysql-test/main/selectivity_innodb.result b/mysql-test/main/selectivity_innodb.result index eb9b131b5a6..4f37fcddbec 100644 --- a/mysql-test/main/selectivity_innodb.result +++ b/mysql-test/main/selectivity_innodb.result @@ -491,8 +491,8 @@ order by s_name limit 10; id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY supplier ALL PRIMARY,i_s_nationkey NULL NULL NULL 10 100.00 Using where; Using filesort -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY nation eq_ref PRIMARY PRIMARY 4 dbt3_s001.supplier.s_nationkey 1 100.00 Using where +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED part ALL PRIMARY NULL NULL NULL 200 100.00 Using where 2 MATERIALIZED partsupp ref PRIMARY,i_ps_partkey,i_ps_suppkey PRIMARY 4 dbt3_s001.part.p_partkey 3 100.00 Using where 4 DEPENDENT SUBQUERY lineitem ref i_l_shipdate,i_l_suppkey_partkey,i_l_partkey,i_l_suppkey i_l_suppkey_partkey 10 dbt3_s001.partsupp.ps_partkey,dbt3_s001.partsupp.ps_suppkey 8 100.00 Using where @@ -1257,11 +1257,11 @@ EXPLAIN EXTENDED SELECT * FROM language, country, continent WHERE country_group = lang_group AND lang_group IS NULL; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE country ALL NULL NULL NULL NULL 2 50.00 Using where -1 SIMPLE language ALL NULL NULL NULL NULL 6 16.67 Using where; Using join buffer (flat, BNL join) +1 SIMPLE language ALL NULL NULL NULL NULL 6 16.67 Using where +1 SIMPLE country ALL NULL NULL NULL NULL 2 50.00 Using where; Using join buffer (flat, BNL join) 1 SIMPLE continent ALL NULL NULL NULL NULL 6 100.00 Using join buffer (incremental, BNL join) Warnings: -Note 1003 select `test`.`language`.`lang_group` AS `lang_group`,`test`.`language`.`lang` AS `lang`,`test`.`country`.`code` AS `code`,`test`.`country`.`country_group` AS `country_group`,`test`.`continent`.`cont_group` AS `cont_group`,`test`.`continent`.`cont` AS `cont` from `test`.`language` join `test`.`country` join `test`.`continent` where `test`.`language`.`lang_group` = `test`.`country`.`country_group` and `test`.`country`.`country_group` is null +Note 1003 select `test`.`language`.`lang_group` AS `lang_group`,`test`.`language`.`lang` AS `lang`,`test`.`country`.`code` AS `code`,`test`.`country`.`country_group` AS `country_group`,`test`.`continent`.`cont_group` AS `cont_group`,`test`.`continent`.`cont` AS `cont` from `test`.`language` join `test`.`country` join `test`.`continent` where `test`.`country`.`country_group` = `test`.`language`.`lang_group` and `test`.`language`.`lang_group` is null set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; drop table language, country, continent; set use_stat_tables=@save_use_stat_tables; @@ -1781,8 +1781,8 @@ explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 range a a 10 NULL 11 100.00 Using index condition; Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 Warnings: Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 @@ -1803,8 +1803,8 @@ explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 range a a 10 NULL 11 11.00 Using index condition; Using where -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 Warnings: Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 diff --git a/mysql-test/main/show_check.result b/mysql-test/main/show_check.result index 26c96a5114b..35428b34599 100644 --- a/mysql-test/main/show_check.result +++ b/mysql-test/main/show_check.result @@ -134,7 +134,7 @@ def information_schema TABLES TABLES AUTO_INCREMENT Auto_increment 8 21 0 Y 3689 def information_schema TABLES TABLES CREATE_TIME Create_time 12 19 0 Y 4224 0 63 def information_schema TABLES TABLES UPDATE_TIME Update_time 12 19 0 Y 4224 0 63 def information_schema TABLES TABLES CHECK_TIME Check_time 12 19 0 Y 4224 0 63 -def information_schema TABLES TABLES TABLE_COLLATION Collation 253 32 0 Y 4096 0 8 +def information_schema TABLES TABLES TABLE_COLLATION Collation 253 64 0 Y 4096 0 8 def information_schema TABLES TABLES CHECKSUM Checksum 8 21 0 Y 36896 0 63 def information_schema TABLES TABLES CREATE_OPTIONS Create_options 253 2048 0 Y 4096 0 8 def information_schema TABLES TABLES TABLE_COMMENT Comment 253 2048 0 N 4097 0 8 @@ -879,17 +879,17 @@ SHOW CHARACTER SET LIKE 'utf8mb3'; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def information_schema CHARACTER_SETS CHARACTER_SETS CHARACTER_SET_NAME Charset 253 96 7 N 4097 0 33 def information_schema CHARACTER_SETS CHARACTER_SETS DESCRIPTION Description 253 180 13 N 4097 0 33 -def information_schema CHARACTER_SETS CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 96 18 N 4097 0 33 +def information_schema CHARACTER_SETS CHARACTER_SETS DEFAULT_COLLATE_NAME Default collation 253 192 18 N 4097 0 33 def information_schema CHARACTER_SETS CHARACTER_SETS MAXLEN Maxlen 8 3 1 N 36865 0 63 Charset Description Default collation Maxlen utf8mb3 UTF-8 Unicode utf8mb3_general_ci 3 ---------------------------------------------------------------- SHOW COLLATION LIKE 'latin1_bin'; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def information_schema COLLATIONS COLLATIONS COLLATION_NAME Collation 253 96 10 N 4097 0 33 -def information_schema COLLATIONS COLLATIONS CHARACTER_SET_NAME Charset 253 96 6 N 4097 0 33 -def information_schema COLLATIONS COLLATIONS ID Id 8 11 2 N 36865 0 63 -def information_schema COLLATIONS COLLATIONS IS_DEFAULT Default 253 9 0 N 4097 0 33 +def information_schema COLLATIONS COLLATIONS COLLATION_NAME Collation 253 192 10 N 4097 0 33 +def information_schema COLLATIONS COLLATIONS CHARACTER_SET_NAME Charset 253 96 6 Y 4096 0 33 +def information_schema COLLATIONS COLLATIONS ID Id 8 11 2 Y 36864 0 63 +def information_schema COLLATIONS COLLATIONS IS_DEFAULT Default 253 9 0 Y 4096 0 33 def information_schema COLLATIONS COLLATIONS IS_COMPILED Compiled 253 9 3 N 4097 0 33 def information_schema COLLATIONS COLLATIONS SORTLEN Sortlen 8 3 1 N 36865 0 63 Collation Charset Id Default Compiled Sortlen @@ -956,7 +956,7 @@ def information_schema TABLES TABLES TABLE_NAME TABLE_NAME 253 192 2 N 4097 0 33 def information_schema TABLES TABLES TABLE_TYPE TABLE_TYPE 253 192 10 N 4097 0 33 def information_schema TABLES TABLES ENGINE ENGINE 253 192 6 Y 4096 0 33 def information_schema TABLES TABLES ROW_FORMAT ROW_FORMAT 253 30 5 Y 4096 0 33 -def information_schema TABLES TABLES TABLE_COLLATION TABLE_COLLATION 253 96 17 Y 4096 0 33 +def information_schema TABLES TABLES TABLE_COLLATION TABLE_COLLATION 253 192 17 Y 4096 0 33 def information_schema TABLES TABLES CREATE_OPTIONS CREATE_OPTIONS 253 6144 0 Y 4096 0 33 def information_schema TABLES TABLES TABLE_COMMENT TABLE_COMMENT 253 6144 0 N 4097 0 33 TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE ROW_FORMAT TABLE_COLLATION CREATE_OPTIONS TABLE_COMMENT @@ -988,7 +988,7 @@ def information_schema COLUMNS COLUMNS COLUMN_DEFAULT COLUMN_DEFAULT 252 589788 def information_schema COLUMNS COLUMNS IS_NULLABLE IS_NULLABLE 253 9 2 N 4097 0 33 def information_schema COLUMNS COLUMNS DATA_TYPE DATA_TYPE 253 192 3 N 4097 0 33 def information_schema COLUMNS COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 96 0 Y 4096 0 33 -def information_schema COLUMNS COLUMNS COLLATION_NAME COLLATION_NAME 253 96 0 Y 4096 0 33 +def information_schema COLUMNS COLUMNS COLLATION_NAME COLLATION_NAME 253 192 0 Y 4096 0 33 def information_schema COLUMNS COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 4113 0 33 def information_schema COLUMNS COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 4097 0 33 def information_schema COLUMNS COLUMNS EXTRA EXTRA 253 240 0 N 4097 0 33 @@ -1025,8 +1025,8 @@ def information_schema TRIGGERS TRIGGERS CREATED Created 12 22 22 Y 4224 2 63 def information_schema TRIGGERS TRIGGERS SQL_MODE sql_mode 253 24576 89 N 4097 0 33 def information_schema TRIGGERS TRIGGERS DEFINER Definer 253 1152 14 N 4097 0 33 def information_schema TRIGGERS TRIGGERS CHARACTER_SET_CLIENT character_set_client 253 96 6 N 4097 0 33 -def information_schema TRIGGERS TRIGGERS COLLATION_CONNECTION collation_connection 253 96 6 N 4097 0 33 -def information_schema TRIGGERS TRIGGERS DATABASE_COLLATION Database Collation 253 96 17 N 4097 0 33 +def information_schema TRIGGERS TRIGGERS COLLATION_CONNECTION collation_connection 253 192 6 N 4097 0 33 +def information_schema TRIGGERS TRIGGERS DATABASE_COLLATION Database Collation 253 192 17 N 4097 0 33 Trigger Event Table Statement Timing Created sql_mode Definer character_set_client collation_connection Database Collation t1_bi INSERT t1 SET @a = 1 BEFORE # STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION root@localhost binary binary latin1_swedish_ci ---------------------------------------------------------------- @@ -1081,7 +1081,7 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is def View 253 192 2 N 1 39 33 def Create View 253 3072 103 N 1 39 33 def character_set_client 253 96 6 N 1 39 33 -def collation_connection 253 96 6 N 1 39 33 +def collation_connection 253 192 6 N 1 39 33 View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` binary binary ---------------------------------------------------------------- @@ -1098,7 +1098,7 @@ def information_schema VIEWS VIEWS IS_UPDATABLE IS_UPDATABLE 253 9 2 N 4097 0 33 def information_schema VIEWS VIEWS DEFINER DEFINER 253 1152 14 N 4097 0 33 def information_schema VIEWS VIEWS SECURITY_TYPE SECURITY_TYPE 253 21 7 N 4097 0 33 def information_schema VIEWS VIEWS CHARACTER_SET_CLIENT CHARACTER_SET_CLIENT 253 96 6 N 4097 0 33 -def information_schema VIEWS VIEWS COLLATION_CONNECTION COLLATION_CONNECTION 253 96 6 N 4097 0 33 +def information_schema VIEWS VIEWS COLLATION_CONNECTION COLLATION_CONNECTION 253 192 6 N 4097 0 33 def information_schema VIEWS VIEWS ALGORITHM ALGORITHM 253 30 9 N 4097 0 33 TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION ALGORITHM def test v1 select 1 AS `1` NONE NO root@localhost DEFINER binary binary UNDEFINED @@ -1109,7 +1109,7 @@ def Procedure 253 192 2 N 1 39 33 def sql_mode 253 267 89 N 1 39 33 def Create Procedure 253 3072 59 Y 0 39 33 def character_set_client 253 96 6 N 1 39 33 -def collation_connection 253 96 6 N 1 39 33 +def collation_connection 253 192 6 N 1 39 33 def Database Collation 253 96 17 N 1 39 33 Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() @@ -1164,7 +1164,7 @@ def Function 253 192 2 N 1 39 33 def sql_mode 253 267 89 N 1 39 33 def Create Function 253 3072 74 Y 0 39 33 def character_set_client 253 96 6 N 1 39 33 -def collation_connection 253 96 6 N 1 39 33 +def collation_connection 253 192 6 N 1 39 33 def Database Collation 253 96 17 N 1 39 33 Function sql_mode Create Function character_set_client collation_connection Database Collation f1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11) diff --git a/mysql-test/main/skip_grants.result b/mysql-test/main/skip_grants.result index f21bfa1da41..fdd7be41095 100644 --- a/mysql-test/main/skip_grants.result +++ b/mysql-test/main/skip_grants.result @@ -137,3 +137,17 @@ drop user baz@baz; # # End of 10.3 tests # +# +# MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES +# +SELECT @@skip_grant_tables AS EXPECT_1; +EXPECT_1 +1 +# restart: --skip-skip-grant-tables +SELECT @@skip_grant_tables AS EXPECT_0; +EXPECT_0 +0 +# restart: --skip-grant-tables +# +# End of 10.10 tests +# diff --git a/mysql-test/main/skip_grants.test b/mysql-test/main/skip_grants.test index 7594285aed7..b74cd41b039 100644 --- a/mysql-test/main/skip_grants.test +++ b/mysql-test/main/skip_grants.test @@ -160,7 +160,7 @@ alter user baz@baz identified with mysql_native_password as password("baz"); show create user baz@baz; drop user bar@foo; drop user baz@baz; -# need to restart the server to restore the --skip-grant state +# Need to restart the server to restore the "--skip-grant-tables" state --source include/restart_mysqld.inc --enable_ps_protocol @@ -168,3 +168,22 @@ drop user baz@baz; --echo # --echo # End of 10.3 tests --echo # + +--echo # +--echo # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES +--echo # + +SELECT @@skip_grant_tables AS EXPECT_1; + +# Also check when the server starts without "--skip-grant-table" option +--let $restart_parameters = "--skip-skip-grant-tables" +--source include/restart_mysqld.inc +SELECT @@skip_grant_tables AS EXPECT_0; + +# Need to restart the server to restore the "--skip-grant-tables" state +--let $restart_parameters = "--skip-grant-tables" +--source include/restart_mysqld.inc + +--echo # +--echo # End of 10.10 tests +--echo # diff --git a/mysql-test/main/sp-anchor-type.result b/mysql-test/main/sp-anchor-type.result index 94e5182acb2..47bbed31e19 100644 --- a/mysql-test/main/sp-anchor-type.result +++ b/mysql-test/main/sp-anchor-type.result @@ -562,7 +562,7 @@ def tm6 tm6 11 17 15 Y 128 6 63 def dt0 dt0 12 19 19 Y 128 0 63 def dt3 dt3 12 23 23 Y 128 3 63 def dt6 dt6 12 26 26 Y 128 6 63 -def ts0 ts0 7 19 19 Y 9376 0 63 +def ts0 ts0 7 19 19 Y 160 0 63 def ts3 ts3 7 23 23 Y 160 3 63 def ts6 ts6 7 26 26 Y 160 6 63 bit6 0 diff --git a/mysql-test/main/ssl_7937,nossl.result b/mysql-test/main/ssl_7937,nossl.result index 7ce4a754bf8..6ba2d23db7d 100644 --- a/mysql-test/main/ssl_7937,nossl.result +++ b/mysql-test/main/ssl_7937,nossl.result @@ -12,4 +12,10 @@ mysql --ssl-ca=cacert.pem --ssl-verify-server-cert -e "call test.have_ssl()" ERROR 2026 (HY000): TLS/SSL error: SSL is required, but the server does not support it mysql --ssl --ssl-verify-server-cert -e "call test.have_ssl()" ERROR 2026 (HY000): TLS/SSL error: SSL is required, but the server does not support it +# +# MDEV-27105 --ssl option set as default for mariadb CLI +# +mysql -e "call test.have_ssl()" +have_ssl +no drop procedure have_ssl; diff --git a/mysql-test/main/ssl_7937.result b/mysql-test/main/ssl_7937.result index 86180af3692..1ad3c2464ed 100644 --- a/mysql-test/main/ssl_7937.result +++ b/mysql-test/main/ssl_7937.result @@ -13,4 +13,10 @@ have_ssl yes mysql --ssl --ssl-verify-server-cert -e "call test.have_ssl()" ERROR 2026 (HY000): TLS/SSL error: Failed to verify the server certificate +# +# MDEV-27105 --ssl option set as default for mariadb CLI +# +mysql -e "call test.have_ssl()" +have_ssl +yes drop procedure have_ssl; diff --git a/mysql-test/main/ssl_7937.test b/mysql-test/main/ssl_7937.test index 58583a32ae3..be3d43ee4a0 100644 --- a/mysql-test/main/ssl_7937.test +++ b/mysql-test/main/ssl_7937.test @@ -23,4 +23,10 @@ create procedure have_ssl() --echo mysql --ssl --ssl-verify-server-cert -e "call test.have_ssl()" --replace_regex /TLS\/SSL error.*certificate[^\n]*/TLS\/SSL error: Failed to verify the server certificate/ --exec $MYSQL --ssl --ssl-verify-server-cert -e "call test.have_ssl()" 2>&1 + +--echo # +--echo # MDEV-27105 --ssl option set as default for mariadb CLI +--echo # +--echo mysql -e "call test.have_ssl()" +--exec $MYSQL -e "call test.have_ssl()" drop procedure have_ssl; diff --git a/mysql-test/main/ssl_and_innodb.result b/mysql-test/main/ssl_and_innodb.result index 71373fc4033..21d98908517 100644 --- a/mysql-test/main/ssl_and_innodb.result +++ b/mysql-test/main/ssl_and_innodb.result @@ -5,4 +5,6 @@ convert((SELECT des_decrypt(2,1) AS a FROM t1 WHERE @a:=1), signed) as d FROM t1 ; d 2 +Warnings: +Note 1287 'des_decrypt' is deprecated and will be removed in a future release DROP TABLE t1; diff --git a/mysql-test/main/stat_tables.result b/mysql-test/main/stat_tables.result index 22f5bfafb8e..947dcabcd77 100644 --- a/mysql-test/main/stat_tables.result +++ b/mysql-test/main/stat_tables.result @@ -216,8 +216,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE part ALL PRIMARY NULL NULL NULL 200 Using where; Using join buffer (flat, BNL join) 1 SIMPLE lineitem ref PRIMARY,i_l_suppkey_partkey,i_l_partkey,i_l_suppkey,i_l_orderkey,i_l_orderkey_quantity i_l_partkey 5 dbt3_s001.part.p_partkey 30 Using where 1 SIMPLE supplier eq_ref PRIMARY,i_s_nationkey PRIMARY 4 dbt3_s001.lineitem.l_suppkey 1 Using where -1 SIMPLE orders eq_ref|filter PRIMARY,i_o_orderdate,i_o_custkey PRIMARY|i_o_orderdate 4|4 dbt3_s001.lineitem.l_orderkey 1 (27%) Using where; Using rowid filter 1 SIMPLE n2 eq_ref PRIMARY PRIMARY 4 dbt3_s001.supplier.s_nationkey 1 +1 SIMPLE orders eq_ref|filter PRIMARY,i_o_orderdate,i_o_custkey PRIMARY|i_o_orderdate 4|4 dbt3_s001.lineitem.l_orderkey 1 (27%) Using where; Using rowid filter 1 SIMPLE customer eq_ref PRIMARY,i_c_nationkey PRIMARY 4 dbt3_s001.orders.o_custkey 1 Using where 1 SIMPLE n1 eq_ref PRIMARY,i_n_regionkey PRIMARY 4 dbt3_s001.customer.c_nationkey 1 Using where select o_year, diff --git a/mysql-test/main/subselect2.result b/mysql-test/main/subselect2.result index e6363610301..db6c85900ad 100644 --- a/mysql-test/main/subselect2.result +++ b/mysql-test/main/subselect2.result @@ -120,19 +120,19 @@ ALTER TABLE t2 ADD FOREIGN KEY FK_DCMNTS_FLDRS ( FOLDERID) REFERENCES t3 (FOLDERID ); ALTER TABLE t3 ADD FOREIGN KEY FK_FLDRS_PRNTID ( PARENTID) REFERENCES t3 (FOLDERID ); -SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; +SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3_a.FOLDERID FROM t3 as t3_a WHERE t3_a.PARENTID IN(SELECT t3_b.FOLDERID FROM t3 as t3_b WHERE t3_b.PARENTID IN(SELECT t3_c.FOLDERID FROM t3 as t3_c WHERE t3_c.PARENTID IN(SELECT t3_d.FOLDERID FROM t3 as t3_d WHERE t3_d.PARENTID IN(SELECT t3_e.FOLDERID FROM t3 as t3_e WHERE t3_e.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3_e.FOLDERNAME = 'Level1') AND t3_d.FOLDERNAME = 'Level2') AND t3_c.FOLDERNAME = 'Level3') AND t3_b.FOLDERNAME = 'CopiedFolder') AND t3_a.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; DOCID DOCNAME DOCTYPEID FOLDERID AUTHOR CREATED TITLE SUBTITLE DOCABSTRACT PUBLISHDATE EXPIRATIONDATE LOCKEDBY STATUS PARENTDOCID REPID MODIFIED MODIFIER PUBLISHSTATUS ORIGINATOR DOCTYPENAME CONTENTSIZE MIMETYPE c373e9f5ad07993f3859444553544200 Last Discussion c373e9f5ad079174ff17444553544200 c373e9f5ad0796c0eca4444553544200 Goldilocks 2003-06-09 11:21:06 Title: Last Discussion NULL Setting new abstract and keeping doc checked out 2003-06-09 10:51:26 2003-06-09 10:51:26 NULL NULL NULL 03eea05112b845949f3fd03278b5fe43 2003-06-09 11:21:06 admin 0 NULL Discussion NULL NULL -EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; +EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3_a.FOLDERID FROM t3 as t3_a WHERE t3_a.PARENTID IN(SELECT t3_b.FOLDERID FROM t3 as t3_b WHERE t3_b.PARENTID IN(SELECT t3_c.FOLDERID FROM t3 as t3_c WHERE t3_c.PARENTID IN(SELECT t3_d.FOLDERID FROM t3 as t3_d WHERE t3_d.PARENTID IN(SELECT t3_e.FOLDERID FROM t3 as t3_e WHERE t3_e.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3_e.FOLDERNAME = 'Level1') AND t3_d.FOLDERNAME = 'Level2') AND t3_c.FOLDERNAME = 'Level3') AND t3_b.FOLDERNAME = 'CopiedFolder') AND t3_a.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL DDOCTYPEID_IDX,DFOLDERID_IDX NULL NULL NULL 9 Using where -1 PRIMARY t1 eq_ref PRIMARY PRIMARY 34 test.t2.DOCID 1 1 PRIMARY t4 eq_ref PRIMARY PRIMARY 34 test.t2.DOCTYPEID 1 -1 PRIMARY t3 eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t2.FOLDERID 1 Using where -1 PRIMARY t3 eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3.PARENTID 1 Using where -1 PRIMARY t3 eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3.PARENTID 1 Using where -1 PRIMARY t3 eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3.PARENTID 1 Using where -1 PRIMARY t3 ref|filter PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX FFOLDERID_IDX|CMFLDRPARNT_IDX 34|35 test.t3.PARENTID 1 (29%) Using where; Using rowid filter +1 PRIMARY t1 eq_ref PRIMARY PRIMARY 34 test.t2.DOCID 1 +1 PRIMARY t3_a eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t2.FOLDERID 1 Using where +1 PRIMARY t3_b eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3_a.PARENTID 1 Using where +1 PRIMARY t3_c eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3_b.PARENTID 1 Using where +1 PRIMARY t3_d eq_ref PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX PRIMARY 34 test.t3_c.PARENTID 1 Using where +1 PRIMARY t3_e ref|filter PRIMARY,FFOLDERID_IDX,CMFLDRPARNT_IDX FFOLDERID_IDX|CMFLDRPARNT_IDX 34|35 test.t3_d.PARENTID 1 (29%) Using where; Using rowid filter drop table t1, t2, t3, t4; CREATE TABLE t1 (a int(10) , PRIMARY KEY (a)) Engine=InnoDB; INSERT INTO t1 VALUES (1),(2); diff --git a/mysql-test/main/subselect2.test b/mysql-test/main/subselect2.test index fcc39f73097..b341e516941 100644 --- a/mysql-test/main/subselect2.test +++ b/mysql-test/main/subselect2.test @@ -148,9 +148,9 @@ ALTER TABLE t2 ADD FOREIGN KEY FK_DCMNTS_FLDRS ( FOLDERID) ALTER TABLE t3 ADD FOREIGN KEY FK_FLDRS_PRNTID ( PARENTID) REFERENCES t3 (FOLDERID ); -SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; +SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3_a.FOLDERID FROM t3 as t3_a WHERE t3_a.PARENTID IN(SELECT t3_b.FOLDERID FROM t3 as t3_b WHERE t3_b.PARENTID IN(SELECT t3_c.FOLDERID FROM t3 as t3_c WHERE t3_c.PARENTID IN(SELECT t3_d.FOLDERID FROM t3 as t3_d WHERE t3_d.PARENTID IN(SELECT t3_e.FOLDERID FROM t3 as t3_e WHERE t3_e.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3_e.FOLDERNAME = 'Level1') AND t3_d.FOLDERNAME = 'Level2') AND t3_c.FOLDERNAME = 'Level3') AND t3_b.FOLDERNAME = 'CopiedFolder') AND t3_a.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; -EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID IN(SELECT t3.FOLDERID FROM t3 WHERE t3.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3.FOLDERNAME = 'Level1') AND t3.FOLDERNAME = 'Level2') AND t3.FOLDERNAME = 'Level3') AND t3.FOLDERNAME = 'CopiedFolder') AND t3.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; +EXPLAIN SELECT t2.*, t4.DOCTYPENAME, t1.CONTENTSIZE,t1.MIMETYPE FROM t2 INNER JOIN t4 ON t2.DOCTYPEID = t4.DOCTYPEID LEFT OUTER JOIN t1 ON t2.DOCID = t1.DOCID WHERE t2.FOLDERID IN(SELECT t3_a.FOLDERID FROM t3 as t3_a WHERE t3_a.PARENTID IN(SELECT t3_b.FOLDERID FROM t3 as t3_b WHERE t3_b.PARENTID IN(SELECT t3_c.FOLDERID FROM t3 as t3_c WHERE t3_c.PARENTID IN(SELECT t3_d.FOLDERID FROM t3 as t3_d WHERE t3_d.PARENTID IN(SELECT t3_e.FOLDERID FROM t3 as t3_e WHERE t3_e.PARENTID='2f6161e879db43c1a5b82c21ddc49089' AND t3_e.FOLDERNAME = 'Level1') AND t3_d.FOLDERNAME = 'Level2') AND t3_c.FOLDERNAME = 'Level3') AND t3_b.FOLDERNAME = 'CopiedFolder') AND t3_a.FOLDERNAME = 'Movie Reviews') AND t2.DOCNAME = 'Last Discussion'; drop table t1, t2, t3, t4; # End of 4.1 tests diff --git a/mysql-test/main/subselect_mat.result b/mysql-test/main/subselect_mat.result index 271b3c18a30..25465fe650a 100644 --- a/mysql-test/main/subselect_mat.result +++ b/mysql-test/main/subselect_mat.result @@ -2404,6 +2404,21 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 32 test.t1.assignment_group 1 Using where; Using index 2 MATERIALIZED t2 ref idx3,idx4 idx4 35 const 2 Using index condition; Using where 2 MATERIALIZED t3_i eq_ref PRIMARY PRIMARY 32 test.t2.ugroup 1 Using index condition; Using where +set statement optimizer_prune_level=1 for explain SELECT t1.assignment_group +FROM t1, t3 +WHERE t1.assignment_group = t3.sys_id AND +t1.dispatch_group IN +(SELECT t2.ugroup +FROM t2, t3 t3_i +WHERE t2.ugroup = t3_i.sys_id AND +t3_i.type LIKE '59e22fb137032000158bbfc8bcbe5d52' AND +t2.user = '86826bf03710200044e0bfc8bcbe5d79'); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY <subquery3> ALL distinct_key NULL NULL NULL 2 +1 PRIMARY t1 ref idx1,idx2 idx1 35 test.t2.ugroup 2 Using where +1 PRIMARY t3 eq_ref PRIMARY PRIMARY 32 test.t1.assignment_group 1 Using where; Using index +3 MATERIALIZED t2 ref idx3,idx4 idx4 35 const 2 Using index condition; Using where +3 MATERIALIZED t3_i eq_ref PRIMARY PRIMARY 32 test.t2.ugroup 1 Using index condition; Using where SELECT t1.assignment_group FROM t1, t3 WHERE t1.assignment_group = t3.sys_id AND diff --git a/mysql-test/main/subselect_sj.result b/mysql-test/main/subselect_sj.result index ea6180e9022..b69471edce3 100644 --- a/mysql-test/main/subselect_sj.result +++ b/mysql-test/main/subselect_sj.result @@ -1056,10 +1056,10 @@ AND t1.val IN (SELECT t3.val FROM t3 WHERE t3.val LIKE 'a%' OR t3.val LIKE 'e%'); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 5 -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 13 func 1 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 13 func 1 -3 MATERIALIZED t3 ALL NULL NULL NULL NULL 5 Using where +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 13 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where +3 MATERIALIZED t3 ALL NULL NULL NULL NULL 5 Using where SELECT * FROM t1 WHERE t1.val IN (SELECT t2.val FROM t2 @@ -1610,9 +1610,9 @@ A.t1field IN (SELECT C.t2field FROM t2 C WHERE C.t2field IN (SELECT D.t2field FROM t2 D)); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY A index PRIMARY PRIMARY 4 NULL 3 Using index -1 PRIMARY B index NULL PRIMARY 4 NULL 3 Using index; Start temporary; End temporary 1 PRIMARY C eq_ref PRIMARY PRIMARY 4 test.A.t1field 1 Using index 1 PRIMARY D eq_ref PRIMARY PRIMARY 4 test.A.t1field 1 Using index +1 PRIMARY B index NULL PRIMARY 4 NULL 3 Using index; Start temporary; End temporary SELECT * FROM t1 A WHERE A.t1field IN (SELECT A.t1field FROM t2 B) AND @@ -2179,8 +2179,8 @@ explain SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t5 index a a 10 NULL 2 Using where; Using index; LooseScan -1 PRIMARY t4 ALL NULL NULL NULL NULL 3 -1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where; FirstMatch(t5) +1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where +1 PRIMARY t4 ALL NULL NULL NULL NULL 3 FirstMatch(t5) 1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; Using join buffer (flat, BNL join) SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); a @@ -2260,11 +2260,11 @@ alias1.c IN (SELECT SQ3_alias1.b FROM t2 AS SQ3_alias1 STRAIGHT_JOIN t2 AS SQ3_alias2) LIMIT 100; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY SQ3_alias1 ALL NULL NULL NULL NULL 20 Start temporary -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) -1 PRIMARY SQ3_alias2 index NULL PRIMARY 4 NULL 20 Using index; End temporary +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 1 PRIMARY alias2 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join) 1 PRIMARY t2 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join) +1 PRIMARY SQ3_alias1 ALL NULL NULL NULL NULL 20 Using where; Start temporary +1 PRIMARY SQ3_alias2 index NULL PRIMARY 4 NULL 20 Using index; End temporary 2 DERIVED t2 ALL NULL NULL NULL NULL 20 create table t3 as SELECT diff --git a/mysql-test/main/subselect_sj2.result b/mysql-test/main/subselect_sj2.result index 727dfcc4c40..6643aa13f83 100644 --- a/mysql-test/main/subselect_sj2.result +++ b/mysql-test/main/subselect_sj2.result @@ -466,11 +466,20 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and t1.b=t2.b); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where -1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 +1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2) Warnings: Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1 -Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b` +Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b` +select * from t0 +where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and +t1.b=t2.b); +a +0 +1 +2 +3 +4 update t1 set a=3, b=11 where a=4; update t2 set b=11 where a=3; select * from t0 where t0.a in @@ -759,10 +768,14 @@ c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch((sj-nest)) +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2) +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 3 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 +select 1 from t2 where +c2 in (select 1 from t3, t2) and +c1 in (select convert(c6,char(1)) from t2); +1 drop table t2, t3; # # BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3 diff --git a/mysql-test/main/subselect_sj2.test b/mysql-test/main/subselect_sj2.test index be2d91571e7..5b9ec409c5d 100644 --- a/mysql-test/main/subselect_sj2.test +++ b/mysql-test/main/subselect_sj2.test @@ -604,6 +604,9 @@ insert into t2 select * from t1; explain extended select * from t0 where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and t1.b=t2.b); +select * from t0 +where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and +t1.b=t2.b); # # BUG#46556 "Returning incorrect, empty results for some IN subqueries @@ -934,6 +937,9 @@ create table t2 (c1 tinytext,c2 text,c6 timestamp) engine=innodb; explain select 1 from t2 where c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2); +select 1 from t2 where + c2 in (select 1 from t3, t2) and + c1 in (select convert(c6,char(1)) from t2); drop table t2, t3; diff --git a/mysql-test/main/subselect_sj2_jcl6.result b/mysql-test/main/subselect_sj2_jcl6.result index 66882150ebd..83abb68ca51 100644 --- a/mysql-test/main/subselect_sj2_jcl6.result +++ b/mysql-test/main/subselect_sj2_jcl6.result @@ -477,11 +477,20 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and t1.b=t2.b); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where -1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan +1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2); Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan Warnings: Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1 -Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b` +Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b` +select * from t0 +where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and +t1.b=t2.b); +a +0 +1 +2 +3 +4 update t1 set a=3, b=11 where a=4; update t2 set b=11 where a=3; # Not anymore: @@ -772,10 +781,14 @@ c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join) -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch((sj-nest)); Using join buffer (incremental, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2); Using join buffer (incremental, BNL join) +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 3 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 +select 1 from t2 where +c2 in (select 1 from t3, t2) and +c1 in (select convert(c6,char(1)) from t2); +1 drop table t2, t3; # # BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3 diff --git a/mysql-test/main/subselect_sj2_mat.result b/mysql-test/main/subselect_sj2_mat.result index fe6bc0b9cbe..5d7e7d49da2 100644 --- a/mysql-test/main/subselect_sj2_mat.result +++ b/mysql-test/main/subselect_sj2_mat.result @@ -468,11 +468,20 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and t1.b=t2.b); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where -1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Start temporary -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 +1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using where; FirstMatch(t2) Warnings: Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1 -Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t2`.`b` = `test`.`t1`.`b` +Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where `test`.`t2`.`a` = `test`.`t0`.`a` and `test`.`t1`.`a` = `test`.`t0`.`a` and `test`.`t1`.`b` = `test`.`t2`.`b` +select * from t0 +where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and +t1.b=t2.b); +a +0 +1 +2 +3 +4 update t1 set a=3, b=11 where a=4; update t2 set b=11 where a=3; select * from t0 where t0.a in @@ -761,10 +770,14 @@ c2 in (select 1 from t3, t2) and c1 in (select convert(c6,char(1)) from t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch((sj-nest)) +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2) +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 3 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 +select 1 from t2 where +c2 in (select 1 from t3, t2) and +c1 in (select convert(c6,char(1)) from t2); +1 drop table t2, t3; # # BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3 @@ -1481,8 +1494,8 @@ t3.cat_id IN (SELECT cat_id FROM t2) AND t3.sack_id = 33479 AND t3.kit_id = 6; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 5 Using index -1 PRIMARY t2 ref cat_id cat_id 4 test.t3.cat_id 2 Using where; Using index; FirstMatch(t3) -1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t2.cat_id 1 Using where; Using index +1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.cat_id 1 Using index +1 PRIMARY t2 ref cat_id cat_id 4 test.t3.cat_id 2 Using where; Using index; FirstMatch(t1) SELECT count(*) FROM t1, t3 WHERE t1.cat_id = t3.cat_id AND t3.cat_id IN (SELECT cat_id FROM t2) AND @@ -1497,8 +1510,8 @@ t3.cat_id IN (SELECT cat_id FROM t4) AND t3.sack_id = 33479 AND t3.kit_id = 6; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 5 Using index -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.cat_id 1 Using index +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t4 index cat_id cat_id 4 NULL 19 Using index SELECT count(*) FROM t1, t3 WHERE t1.cat_id = t3.cat_id AND @@ -1513,8 +1526,8 @@ t3.cat_id IN (SELECT cat_id FROM t2) AND t3.sack_id = 33479 AND t3.kit_id = 6; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 ref PRIMARY PRIMARY 5 const,const 5 Using index -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t3.cat_id 1 Using index +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where 2 MATERIALIZED t2 index cat_id cat_id 4 NULL 19 Using index SELECT count(*) FROM t1, t3 WHERE t1.cat_id = t3.cat_id AND @@ -1542,9 +1555,9 @@ EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 ) WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary -1 PRIMARY t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) -1 PRIMARY t1 ref idx idx 2 test.t4.a4 1 100.00 Using index; End temporary +1 PRIMARY t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary +1 PRIMARY t1 ref idx idx 2 test.t4.a4 1 100.00 Using index +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) Warnings: Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b2` AS `b2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(`test`.`t2`.`a2` = `test`.`t4`.`a4`) where `test`.`t4`.`b4` = `test`.`t4`.`a4` and `test`.`t1`.`b1` = `test`.`t4`.`a4` @@ -1560,13 +1573,12 @@ EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 ) WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 3 100.00 +1 PRIMARY t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary 1 PRIMARY t1 ref idx idx 2 test.t4.a4 1 100.00 Using index +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00 -2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) Warnings: -Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b2` AS `b2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(`test`.`t1`.`b1` = `test`.`t4`.`a4` and `test`.`t2`.`a2` = `test`.`t4`.`a4`) where `test`.`t4`.`b4` = `test`.`t4`.`a4` and `test`.`t1`.`b1` = `test`.`t4`.`a4` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`b1` AS `b1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b2` AS `b2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t4`) left join `test`.`t2` on(`test`.`t2`.`a2` = `test`.`t4`.`a4`) where `test`.`t4`.`b4` = `test`.`t4`.`a4` and `test`.`t1`.`b1` = `test`.`t4`.`a4` SELECT * FROM t1 LEFT JOIN t2 ON ( b1 = a2 ) WHERE ( b1, b1 ) IN ( SELECT a4, b4 FROM t3, t4); a1 b1 a2 b2 @@ -1827,8 +1839,8 @@ SELECT t2.id FROM t2,t1 WHERE t2.id IN (SELECT t3.ref_id FROM t3,t1 where t3.id = t1.id) and t2.id = t1.id; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 30 Using index -1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t2.id 1 Using index +1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where 2 MATERIALIZED t3 ALL NULL NULL NULL NULL 14 2 MATERIALIZED t1 eq_ref PRIMARY PRIMARY 4 test.t3.id 1 Using index SELECT t2.id FROM t2,t1 @@ -1933,19 +1945,19 @@ AND t3.id_product IN (SELECT id_product FROM t2 t2_4 WHERE t2_4.id_t2 = 34 OR t2 AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 index PRIMARY PRIMARY 4 NULL 18 Using index -1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) -1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t3.id_product,const 1 Using where; Using index -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 4 func 1 Using where -1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join) -1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1 Using where -5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where -6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where +1 PRIMARY <subquery4> eq_ref distinct_key distinct_key 4 func 1 Using where +1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 4 func 1 Using where +1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join) +1 PRIMARY <subquery6> eq_ref distinct_key distinct_key 4 func 1 Using where 3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12 -4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 33 Using index condition; Using where 2 MATERIALIZED t2_1 ALL id_t2,id_product NULL NULL NULL 223 Using where +4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 33 Using index condition; Using where +5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where +6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 31 Using index condition; Using where set optimizer_switch='rowid_filter=default'; drop table t1,t2,t3,t4,t5; set global innodb_stats_persistent= @innodb_stats_persistent_save; diff --git a/mysql-test/main/subselect_sj_jcl6.result b/mysql-test/main/subselect_sj_jcl6.result index bddf3fdd268..6efa3fc12b1 100644 --- a/mysql-test/main/subselect_sj_jcl6.result +++ b/mysql-test/main/subselect_sj_jcl6.result @@ -1067,10 +1067,10 @@ AND t1.val IN (SELECT t3.val FROM t3 WHERE t3.val LIKE 'a%' OR t3.val LIKE 'e%'); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 5 -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 13 func 1 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 13 func 1 -3 MATERIALIZED t3 ALL NULL NULL NULL NULL 5 Using where +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 13 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where +3 MATERIALIZED t3 ALL NULL NULL NULL NULL 5 Using where SELECT * FROM t1 WHERE t1.val IN (SELECT t2.val FROM t2 @@ -1621,9 +1621,9 @@ A.t1field IN (SELECT C.t2field FROM t2 C WHERE C.t2field IN (SELECT D.t2field FROM t2 D)); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY A index PRIMARY PRIMARY 4 NULL 3 Using index -1 PRIMARY B index NULL PRIMARY 4 NULL 3 Using index; FirstMatch(A); Using join buffer (flat, BNL join) 1 PRIMARY C eq_ref PRIMARY PRIMARY 4 test.A.t1field 1 Using index 1 PRIMARY D eq_ref PRIMARY PRIMARY 4 test.A.t1field 1 Using index +1 PRIMARY B index NULL PRIMARY 4 NULL 3 Using index; FirstMatch(D); Using join buffer (flat, BNL join) SELECT * FROM t1 A WHERE A.t1field IN (SELECT A.t1field FROM t2 B) AND @@ -2190,8 +2190,8 @@ explain SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t5 index a a 10 NULL 2 Using where; Using index; LooseScan -1 PRIMARY t4 ALL NULL NULL NULL NULL 3 -1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where; FirstMatch(t5) +1 PRIMARY t2 ref b b 5 test.t5.b 2 Using where +1 PRIMARY t4 ALL NULL NULL NULL NULL 3 FirstMatch(t5) 1 PRIMARY t3 ALL NULL NULL NULL NULL 15 Using where; Using join buffer (flat, BNL join) SELECT * FROM t3 WHERE t3.a IN (SELECT t5.a FROM t2, t4, t5 WHERE t2.c = t5.a AND t2.b = t5.b); a @@ -2271,11 +2271,11 @@ alias1.c IN (SELECT SQ3_alias1.b FROM t2 AS SQ3_alias1 STRAIGHT_JOIN t2 AS SQ3_alias2) LIMIT 100; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY SQ3_alias1 ALL NULL NULL NULL NULL 20 Start temporary -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) -1 PRIMARY SQ3_alias2 index NULL PRIMARY 4 NULL 20 Using index; End temporary; Using join buffer (incremental, BNL join) -1 PRIMARY alias2 ALL NULL NULL NULL NULL 20 Using join buffer (incremental, BNL join) +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 20 +1 PRIMARY alias2 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join) 1 PRIMARY t2 ALL NULL NULL NULL NULL 20 Using join buffer (incremental, BNL join) +1 PRIMARY SQ3_alias1 ALL NULL NULL NULL NULL 20 Using where; Start temporary; Using join buffer (incremental, BNL join) +1 PRIMARY SQ3_alias2 index NULL PRIMARY 4 NULL 20 Using index; End temporary; Using join buffer (incremental, BNL join) 2 DERIVED t2 ALL NULL NULL NULL NULL 20 create table t3 as SELECT @@ -3382,8 +3382,8 @@ SELECT * FROM t0 WHERE t0.a IN (SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 Using where -1 PRIMARY t1 ref a a 5 test.t0.a 1 Start temporary; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using where; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan +1 PRIMARY t1 ref a a 5 test.t0.a 1 Using where; Start temporary; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan SELECT * FROM t0 WHERE t0.a IN (SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b); a diff --git a/mysql-test/main/subselect_sj_mat.result b/mysql-test/main/subselect_sj_mat.result index 2cc35c1896c..61a7ff25569 100644 --- a/mysql-test/main/subselect_sj_mat.result +++ b/mysql-test/main/subselect_sj_mat.result @@ -332,11 +332,11 @@ where (a1, a2) in (select b1, b2 from t2 where b1 > '0') and where (c1, c2) in (select b1, b2 from t2i where b2 > '0')); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 -1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 16 func,func 1 100.00 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00 +1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 16 func,func 1 100.00 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where 3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where 3 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where Warnings: Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and `test`.`t2`.`b1` > '0' and `test`.`t3`.`c2` > '0' select * from t1 @@ -353,11 +353,11 @@ where (a1, a2) in (select b1, b2 from t2i where b1 > '0') and where (c1, c2) in (select b1, b2 from t2i where b2 > '0')); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1i range it1i1,it1i2,it1i3 # # # 3 100.00 # -1 PRIMARY <subquery3> eq_ref distinct_key # # # 1 100.00 # 1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 # +1 PRIMARY <subquery3> eq_ref distinct_key # # # 1 100.00 # +2 MATERIALIZED t2i range it2i1,it2i2,it2i3 # # # 5 100.00 # 3 MATERIALIZED t3i range it3i1,it3i2,it3i3 # # # 4 100.00 # 3 MATERIALIZED t2i ref it2i1,it2i2,it2i3 # # # 1 100.00 # -2 MATERIALIZED t2i range it2i1,it2i2,it2i3 # # # 5 100.00 # Warnings: Note 1003 select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where `test`.`t2i`.`b1` = `test`.`t3i`.`c1` and `test`.`t2i`.`b2` = `test`.`t3i`.`c2` and `test`.`t2i`.`b1` > '0' and `test`.`t3i`.`c2` > '0' select * from t1i @@ -376,11 +376,11 @@ b2 in (select c2 from t3 where c2 LIKE '%03')) and where (c1, c2) in (select b1, b2 from t2i where b2 > '0')); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 -1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00 1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 16 func,func 1 100.00 +1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where 5 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where 5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3.c1,test.t3.c2 1 100.00 Using index -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where 4 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where 3 MATERIALIZED t3 ALL NULL NULL NULL NULL 4 100.00 Using where Warnings: @@ -402,15 +402,15 @@ b2 in (select c2 from t3 t3b where c2 LIKE '%03')) and where (c1, c2) in (select b1, b2 from t2i where b2 > '0')); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 -1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join) +1 PRIMARY <subquery5> eq_ref distinct_key distinct_key 16 func,func 1 100.00 5 MATERIALIZED t3c ALL NULL NULL NULL NULL 4 100.00 Using where 5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t3c.c1,test.t3c.c2 1 100.00 Using index 4 MATERIALIZED t3b ALL NULL NULL NULL NULL 4 100.00 Using where 3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where Warnings: Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1 -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where `test`.`t2i`.`b1` = `test`.`t3c`.`c1` and `test`.`t2`.`b1` = `test`.`t1`.`a1` and `test`.`t2i`.`b2` = `test`.`t3c`.`c2` and `test`.`t2`.`b2` = `test`.`t1`.`a2` and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where `test`.`t3a`.`c1` = `test`.`t1`.`a1` and <cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where `test`.`t3b`.`c2` like '%03' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery4>`.`c2`))))) and `test`.`t3c`.`c2` > '0' +Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where `test`.`t2`.`b1` = `test`.`t1`.`a1` and `test`.`t2i`.`b1` = `test`.`t3c`.`c1` and `test`.`t2`.`b2` = `test`.`t1`.`a2` and `test`.`t2i`.`b2` = `test`.`t3c`.`c2` and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where `test`.`t3a`.`c1` = `test`.`t1`.`a1` and <cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where `test`.`t3b`.`c2` like '%03' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery4>`.`c2`))))) and `test`.`t3c`.`c2` > '0' select * from t1 where (a1, a2) in (select b1, b2 from t2 where b2 in (select c2 from t3 t3a where c1 = a1) or @@ -435,19 +435,19 @@ where (a1, a2) in (select b1, b2 from t2i where b1 > '0') and where (c1, c2) in (select b1, b2 from t2i where b2 > '0'))); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL # # # 3 100.00 # -1 PRIMARY <subquery5> eq_ref distinct_key # # # 1 100.00 # 1 PRIMARY <subquery2> eq_ref distinct_key # # # 1 100.00 # +1 PRIMARY <subquery5> eq_ref distinct_key # # # 1 100.00 # +2 MATERIALIZED t2 ALL NULL # # # 5 100.00 # 5 MATERIALIZED t3 ALL NULL # # # 4 100.00 # 5 MATERIALIZED t2i ref it2i1,it2i2,it2i3 # # # 1 100.00 # -2 MATERIALIZED t2 ALL NULL # # # 5 100.00 # 4 MATERIALIZED t3 ALL NULL # # # 4 100.00 # 3 MATERIALIZED t3 ALL NULL # # # 4 100.00 # 7 UNION t1i range it1i1,it1i2,it1i3 # # # 3 100.00 # -7 UNION <subquery9> eq_ref distinct_key # # # 1 100.00 # 7 UNION <subquery8> eq_ref distinct_key # # # 1 100.00 # +7 UNION <subquery9> eq_ref distinct_key # # # 1 100.00 # +8 MATERIALIZED t2i range it2i1,it2i2,it2i3 # # # 5 100.00 # 9 MATERIALIZED t3i range it3i1,it3i2,it3i3 # # # 4 100.00 # 9 MATERIALIZED t2i ref it2i1,it2i2,it2i3 # # # 1 100.00 # -8 MATERIALIZED t2i range it2i1,it2i2,it2i3 # # # 5 100.00 # NULL UNION RESULT <union1,7> ALL NULL # # # NULL NULL # Warnings: Note 1003 (/* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where `test`.`t2i`.`b1` = `test`.`t3`.`c1` and `test`.`t2i`.`b2` = `test`.`t3`.`c2` and (<expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#3 */ select `test`.`t3`.`c2` from `test`.`t3` where `test`.`t3`.`c2` like '%02' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery3>`.`c2`)))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c2` from `test`.`t3` where `test`.`t3`.`c2` like '%03' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery4>`.`c2`))))) and `test`.`t3`.`c2` > '0') union (/* select#7 */ select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where `test`.`t2i`.`b1` = `test`.`t3i`.`c1` and `test`.`t2i`.`b2` = `test`.`t3i`.`c2` and `test`.`t2i`.`b1` > '0' and `test`.`t3i`.`c2` > '0') @@ -542,15 +542,15 @@ b2 in (select c2 from t3 t3b where c2 LIKE '%03')) and where (c1, c2) in (select b1, b2 from t2i where b2 > '0' or b2 = a2)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where +1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t1.a1,test.t1.a2 1 100.00 Using index; Start temporary 1 PRIMARY t3c ALL NULL NULL NULL NULL 4 100.00 Using where; End temporary; Using join buffer (flat, BNL join) -1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary; End temporary; Using join buffer (flat, BNL join) 4 MATERIALIZED t3b ALL NULL NULL NULL NULL 4 100.00 Using where 3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where Warnings: Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1 Note 1276 Field or reference 'test.t1.a2' of SELECT #6 was resolved in SELECT #1 -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where `test`.`t2i`.`b1` = `test`.`t1`.`a1` and `test`.`t3c`.`c1` = `test`.`t1`.`a1` and `test`.`t2`.`b1` = `test`.`t1`.`a1` and `test`.`t2i`.`b2` = `test`.`t1`.`a2` and `test`.`t3c`.`c2` = `test`.`t1`.`a2` and `test`.`t2`.`b2` = `test`.`t1`.`a2` and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where `test`.`t3a`.`c1` = `test`.`t1`.`a1` and <cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where `test`.`t3b`.`c2` like '%03' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery4>`.`c2`))))) +Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where `test`.`t2`.`b1` = `test`.`t1`.`a1` and `test`.`t2i`.`b1` = `test`.`t1`.`a1` and `test`.`t3c`.`c1` = `test`.`t1`.`a1` and `test`.`t2`.`b2` = `test`.`t1`.`a2` and `test`.`t2i`.`b2` = `test`.`t1`.`a2` and `test`.`t3c`.`c2` = `test`.`t1`.`a2` and (<expr_cache><`test`.`t2`.`b2`,`test`.`t1`.`a1`>(<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select `test`.`t3a`.`c2` from `test`.`t3` `t3a` where `test`.`t3a`.`c1` = `test`.`t1`.`a1` and <cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`))) or <expr_cache><`test`.`t2`.`b2`>(<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where `test`.`t3b`.`c2` like '%03' ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where `test`.`t2`.`b2` = `<subquery4>`.`c2`))))) explain extended select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01'); id select_type table type possible_keys key key_len ref rows filtered Extra @@ -2446,6 +2446,21 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 32 test.t1.assignment_group 1 Using where; Using index 2 MATERIALIZED t2 ref idx3,idx4 idx4 35 const 2 Using index condition; Using where 2 MATERIALIZED t3_i eq_ref PRIMARY PRIMARY 32 test.t2.ugroup 1 Using index condition; Using where +set statement optimizer_prune_level=1 for explain SELECT t1.assignment_group +FROM t1, t3 +WHERE t1.assignment_group = t3.sys_id AND +t1.dispatch_group IN +(SELECT t2.ugroup +FROM t2, t3 t3_i +WHERE t2.ugroup = t3_i.sys_id AND +t3_i.type LIKE '59e22fb137032000158bbfc8bcbe5d52' AND +t2.user = '86826bf03710200044e0bfc8bcbe5d79'); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY <subquery3> ALL distinct_key NULL NULL NULL 2 +1 PRIMARY t1 ref idx1,idx2 idx1 35 test.t2.ugroup 2 Using where +1 PRIMARY t3 eq_ref PRIMARY PRIMARY 32 test.t1.assignment_group 1 Using where; Using index +3 MATERIALIZED t2 ref idx3,idx4 idx4 35 const 2 Using index condition; Using where +3 MATERIALIZED t3_i eq_ref PRIMARY PRIMARY 32 test.t2.ugroup 1 Using index condition; Using where SELECT t1.assignment_group FROM t1, t3 WHERE t1.assignment_group = t3.sys_id AND diff --git a/mysql-test/main/subselect_sj_mat.test b/mysql-test/main/subselect_sj_mat.test index 6b343900dca..6a9c78adc52 100644 --- a/mysql-test/main/subselect_sj_mat.test +++ b/mysql-test/main/subselect_sj_mat.test @@ -2171,6 +2171,7 @@ eval $q; set optimizer_switch='materialization=on'; eval explain $q; +eval set statement optimizer_prune_level=1 for explain $q; eval $q; DROP TABLE t1,t2,t3; diff --git a/mysql-test/main/subselect_sj_nonmerged.result b/mysql-test/main/subselect_sj_nonmerged.result index 422af02c31a..a3e6c493930 100644 --- a/mysql-test/main/subselect_sj_nonmerged.result +++ b/mysql-test/main/subselect_sj_nonmerged.result @@ -77,8 +77,8 @@ explain select * from t4 where t4.a in (select max(t2.a) from t1, t2 group by t2.b) and t4.b in (select max(t2.a) from t1, t2 group by t2.b); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY <subquery3> ALL distinct_key NULL NULL NULL 5 -1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 5 Using join buffer (flat, BNL join) +1 PRIMARY <subquery2> ALL distinct_key NULL NULL NULL 5 +1 PRIMARY <subquery3> ALL distinct_key NULL NULL NULL 5 Using join buffer (flat, BNL join) 1 PRIMARY t4 eq_ref a a 10 <subquery2>.max(t2.a),<subquery3>.max(t2.a) 1 3 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 Using temporary 3 MATERIALIZED t1 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join) diff --git a/mysql-test/main/system_mysql_db.result b/mysql-test/main/system_mysql_db.result index 2c97d0c6809..b89381da5c3 100644 --- a/mysql-test/main/system_mysql_db.result +++ b/mysql-test/main/system_mysql_db.result @@ -154,8 +154,8 @@ proc CREATE TABLE `proc` ( `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '', `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE', PRIMARY KEY (`db`,`name`,`type`) @@ -182,8 +182,8 @@ event CREATE TABLE `event` ( `originator` int(10) unsigned NOT NULL, `time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM', `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, PRIMARY KEY (`db`,`name`) ) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events' diff --git a/mysql-test/main/system_mysql_db_fix40123.result b/mysql-test/main/system_mysql_db_fix40123.result index 57845704fa1..31a334878ec 100644 --- a/mysql-test/main/system_mysql_db_fix40123.result +++ b/mysql-test/main/system_mysql_db_fix40123.result @@ -14,8 +14,8 @@ Warning 1280 Name 'Host' ignored for PRIMARY key. INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); CREATE TABLE func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; -CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; -CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; +CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; +CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name varchar(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url varchar(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name varchar(64) not null, parent_category_id smallint unsigned null, url varchar(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; CREATE TABLE help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; @@ -192,8 +192,8 @@ proc CREATE TABLE `proc` ( `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '', `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE', PRIMARY KEY (`db`,`name`,`type`) @@ -220,8 +220,8 @@ event CREATE TABLE `event` ( `originator` int(10) unsigned NOT NULL, `time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM', `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, PRIMARY KEY (`db`,`name`) ) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events' diff --git a/mysql-test/main/system_mysql_db_fix40123.test b/mysql-test/main/system_mysql_db_fix40123.test index 08aac433433..5e4672ea4e8 100644 --- a/mysql-test/main/system_mysql_db_fix40123.test +++ b/mysql-test/main/system_mysql_db_fix40123.test @@ -33,8 +33,8 @@ CREATE TABLE user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) bina INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); CREATE TABLE func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; -CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; -CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; +CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; +CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name varchar(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url varchar(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name varchar(64) not null, parent_category_id smallint unsigned null, url varchar(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; CREATE TABLE help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; diff --git a/mysql-test/main/system_mysql_db_fix50030.result b/mysql-test/main/system_mysql_db_fix50030.result index 377a3790754..8055211e5b2 100644 --- a/mysql-test/main/system_mysql_db_fix50030.result +++ b/mysql-test/main/system_mysql_db_fix50030.result @@ -14,8 +14,8 @@ Warning 1280 Name 'Host' ignored for PRIMARY key. INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0, 0); CREATE TABLE func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; -CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; -CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; +CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; +CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url char(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name char(64) not null, parent_category_id smallint unsigned null, url char(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; CREATE TABLE help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; @@ -35,7 +35,7 @@ Warning 1280 Name 'TzIdTrTId' ignored for PRIMARY key. CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; Warnings: Warning 1280 Name 'TranTime' ignored for PRIMARY key. -CREATE TABLE proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; +CREATE TABLE proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp not null default now() on update now(), modified timestamp not null default 0, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; CREATE TABLE procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges'; CREATE TABLE servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'; INSERT INTO servers VALUES ('test','localhost','test','root','', 0,'','mysql','root'); @@ -196,8 +196,8 @@ proc CREATE TABLE `proc` ( `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '', `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE', PRIMARY KEY (`db`,`name`,`type`) @@ -224,8 +224,8 @@ event CREATE TABLE `event` ( `originator` int(10) unsigned NOT NULL, `time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM', `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, PRIMARY KEY (`db`,`name`) ) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events' diff --git a/mysql-test/main/system_mysql_db_fix50030.test b/mysql-test/main/system_mysql_db_fix50030.test index a9830471988..8fc049f8797 100644 --- a/mysql-test/main/system_mysql_db_fix50030.test +++ b/mysql-test/main/system_mysql_db_fix50030.test @@ -33,8 +33,8 @@ CREATE TABLE user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) bina INSERT INTO user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0, 0); CREATE TABLE func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; -CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; -CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; +CREATE TABLE tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; +CREATE TABLE columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp not null default now() on update now(), Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; CREATE TABLE help_topic ( help_topic_id int unsigned not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url char(128) not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; CREATE TABLE help_category ( help_category_id smallint unsigned not null, name char(64) not null, parent_category_id smallint unsigned null, url char(128) not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; CREATE TABLE help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; @@ -44,7 +44,7 @@ CREATE TABLE time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_ CREATE TABLE time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; CREATE TABLE time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, `Offset` int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; CREATE TABLE time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; -CREATE TABLE proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; +CREATE TABLE proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob DEFAULT '' NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob DEFAULT '' NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp not null default now() on update now(), modified timestamp not null default 0, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; CREATE TABLE procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) binary DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges'; CREATE TABLE servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'; INSERT INTO servers VALUES ('test','localhost','test','root','', 0,'','mysql','root'); diff --git a/mysql-test/main/system_mysql_db_fix50117.result b/mysql-test/main/system_mysql_db_fix50117.result index 2811e0fc660..214b7ee572d 100644 --- a/mysql-test/main/system_mysql_db_fix50117.result +++ b/mysql-test/main/system_mysql_db_fix50117.result @@ -176,8 +176,8 @@ proc CREATE TABLE `proc` ( `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT','TIME_ROUND_FRACTIONAL') NOT NULL DEFAULT '', `comment` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE', PRIMARY KEY (`db`,`name`,`type`) @@ -204,8 +204,8 @@ event CREATE TABLE `event` ( `originator` int(10) unsigned NOT NULL, `time_zone` char(64) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SYSTEM', `character_set_client` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `collation_connection` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, - `db_collation` char(32) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `collation_connection` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `db_collation` char(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, `body_utf8` longblob DEFAULT NULL, PRIMARY KEY (`db`,`name`) ) ENGINE=Aria DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci PAGE_CHECKSUM=1 TRANSACTIONAL=1 COMMENT='Events' diff --git a/mysql-test/main/table_elim.result b/mysql-test/main/table_elim.result index deff0623370..35098b10822 100644 --- a/mysql-test/main/table_elim.result +++ b/mysql-test/main/table_elim.result @@ -704,3 +704,302 @@ LIMIT 1; PostID Voted 1 NULL DROP TABLE t1,t2; +# +# MDEV-26278: Table elimination does not work across derived tables +# +create table t1 (a int, b int); +insert into t1 select seq, seq+10 from seq_1_to_10; +create table t11 ( +a int not null, +b int, +key(a) +); +insert into t11 select A.seq, A.seq+B.seq +from +seq_1_to_10 A, +seq_1_to_100 B; +create table t12 ( +pk int primary key, +col1 int +); +insert into t12 select seq, seq from seq_1_to_1000; +create view v2b as +select t11.a as a, count(*) as b +from t11 left join t12 on t12.pk=t11.b +group by t11.a; +# The whole v2b is eliminated +explain select t1.* from t1 left join v2b on v2b.a=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +# Check format JSON as well +explain format=JSON select t1.* from t1 left join v2b on t1.a=v2b.a; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "const_condition": "1", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + ] + } +} +# Elimination of a whole subquery +explain select t1.* from t1 left join +(select t11.a as a, count(*) as b +from t11 left join t12 on t12.pk=t11.b +group by t11.a) v2b on v2b.a=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +# In this case v2b cannot be eliminated (since v2b.b is not unique)! +explain select t1.* from t1 left join v2b on t1.a=v2b.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 8 test.t1.a 10 Using where +2 DERIVED t11 ALL NULL NULL NULL NULL 1000 Using temporary; Using filesort +# Check format JSON as well +explain format=JSON select t1.* from t1 left join v2b on t1.a=v2b.b; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "const_condition": "1", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + }, + { + "table": { + "table_name": "<derived2>", + "access_type": "ref", + "possible_keys": ["key0"], + "key": "key0", + "key_length": "8", + "used_key_parts": ["b"], + "ref": ["test.t1.a"], + "rows": 10, + "filtered": 100, + "attached_condition": "trigcond(t1.a = v2b.b and trigcond(t1.a is not null))", + "materialized": { + "query_block": { + "select_id": 2, + "const_condition": "1", + "filesort": { + "sort_key": "t11.a", + "temporary_table": { + "nested_loop": [ + { + "table": { + "table_name": "t11", + "access_type": "ALL", + "rows": 1000, + "filtered": 100 + } + } + ] + } + } + } + } + } + } + ] + } +} +create view v2c as +select t11.a as a, max(t12.col1) as b +from t11 left join t12 on t12.pk=t11.b +group by t11.a; +# The whole v2c is eliminated +explain select t1.* from t1 left join v2c on v2c.a=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +# Check format JSON as well +explain format=JSON select t1.* from t1 left join v2c on v2c.a=t1.a; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "const_condition": "1", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + } + ] + } +} +# In this case v2c cannot be eliminated (since v2c.b is not unique)! +explain select t1.* from t1 left join v2c on t1.a=v2c.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 10 Using where +2 DERIVED t11 ALL NULL NULL NULL NULL 1000 Using temporary; Using filesort +2 DERIVED t12 eq_ref PRIMARY PRIMARY 4 test.t11.b 1 Using where +# Check format JSON as well +explain format=JSON select t1.* from t1 left join v2c on t1.a=v2c.b; +EXPLAIN +{ + "query_block": { + "select_id": 1, + "const_condition": "1", + "nested_loop": [ + { + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 10, + "filtered": 100 + } + }, + { + "table": { + "table_name": "<derived2>", + "access_type": "ref", + "possible_keys": ["key0"], + "key": "key0", + "key_length": "5", + "used_key_parts": ["b"], + "ref": ["test.t1.a"], + "rows": 10, + "filtered": 100, + "attached_condition": "trigcond(trigcond(t1.a is not null))", + "materialized": { + "query_block": { + "select_id": 2, + "const_condition": "1", + "filesort": { + "sort_key": "t11.a", + "temporary_table": { + "nested_loop": [ + { + "table": { + "table_name": "t11", + "access_type": "ALL", + "rows": 1000, + "filtered": 100 + } + }, + { + "table": { + "table_name": "t12", + "access_type": "eq_ref", + "possible_keys": ["PRIMARY"], + "key": "PRIMARY", + "key_length": "4", + "used_key_parts": ["pk"], + "ref": ["test.t11.b"], + "rows": 1, + "filtered": 100, + "attached_condition": "trigcond(trigcond(t11.b is not null))" + } + } + ] + } + } + } + } + } + } + ] + } +} +# Create a view with multiple fields in the GROUP BY clause: +create view v2d as +select t11.a as a, t11.b as b, max(t12.col1) as max_col1 +from t11 left join t12 on t12.pk=t11.b +group by t11.a, t11.b; +# This one must not be eliminated since only one of the GROUP BY fields is bound: +explain select t1.* from t1 left join v2d on v2d.a=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 10 Using where +2 DERIVED t11 ALL a NULL NULL NULL 1000 Using temporary; Using filesort +2 DERIVED t12 eq_ref PRIMARY PRIMARY 4 test.t11.b 1 Using where +# This must be eliminated since both fields are bound: +explain select t1.* from t1 left join v2d on v2d.a=t1.a and v2d.b=t1.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +create table t13 (dt date, b int); +# Function year() in the GROUP BY list prevents treating this field +# as a unique key +create view v2e as +select year(t13.dt) as yyy, max(t12.col1) as max_col1 +from t13 join t12 on t12.pk=t13.b +group by yyy; +# No elimination here since function year() is used +explain select t1.* from t1 left join v2e on v2e.yyy=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 2 Using where +2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table +create table t2 (a int, b int, c int); +insert into t2 select A.seq, B.seq, 123 from seq_1_to_3 A, seq_1_to_3 B; +# No elimination here since not all fields of the derived table's +# GROUP BY are on the SELECT list so D.a is not unique +explain select t1.* from t1 left join +(select a, count(*) as cnt from t2 group by a, b) D on D.a=t1.a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 2 Using where +2 DERIVED t2 ALL NULL NULL NULL NULL 9 Using temporary; Using filesort +# Still no elimination 'cause field D.b is just an alias for t2.a +explain select t1.* from t1 left join +(select a, a as b, count(*) as cnt from t2 group by a, b) D on D.a=t1.a and D.b=t1.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +1 PRIMARY <derived2> ref key0 key0 10 test.t1.a,test.t1.b 2 Using where +2 DERIVED t2 ALL NULL NULL NULL NULL 9 Using temporary; Using filesort +Warnings: +Warning 1052 Column 'b' in group statement is ambiguous +# Now both a and b fields are on the SELECT list and they are bound to t1 +# so derived D must be eliminated +explain select t1.* from t1 left join +(select a as a1, b as b1, count(*) as cnt from t2 group by a, b) D +on D.a1=t1.a and D.b1=t1.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +# Different order of fields in GROUP BY and SELECT lists +# must not hamper the elimination +explain select t1.* from t1 left join +(select count(*) as cnt, b, a from t2 group by a, b) D on D.a=t1.a and D.b=t1.b; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 10 +drop view v2b, v2c, v2d, v2e; +drop table t1, t11, t12, t13, t2; +# +# End of MDEV-26278: Table elimination does not work across derived tables +# +# +# MDEV-28881: Server crashes in Dep_analysis_context::create_table_value/ +# check_func_dependency +# +CREATE TABLE t1 (a1 int, a2 int); +INSERT INTO t1 VALUES (0,276),(5,277),(NULL,278); +CREATE TABLE t2 ( a1 int, a2 int, KEY a2 (a2)); +INSERT INTO t2 VALUES (11,NULL),(185,0); +SELECT t1.* FROM t1 LEFT JOIN +( SELECT * FROM (SELECT t2.a1 AS a1, min(t2.a2) AS a2 FROM t2 +WHERE t2.a2 <> NULL +GROUP BY t2.a1) dt +) dt2 ON dt2.a2 = t1.a2; +a1 a2 +0 276 +5 277 +NULL 278 +DROP TABLE t1, t2; diff --git a/mysql-test/main/table_elim.test b/mysql-test/main/table_elim.test index e5770877e6f..70f91eb3d97 100644 --- a/mysql-test/main/table_elim.test +++ b/mysql-test/main/table_elim.test @@ -1,6 +1,7 @@ # # Table elimination (MWL#17) tests # +--source include/have_sequence.inc --disable_warnings drop table if exists t0, t1, t2, t3, t4, t5, t6; drop view if exists v1, v2; @@ -646,3 +647,140 @@ LIMIT 1; DROP TABLE t1,t2; --enable_view_protocol + +--echo # +--echo # MDEV-26278: Table elimination does not work across derived tables +--echo # +create table t1 (a int, b int); +insert into t1 select seq, seq+10 from seq_1_to_10; + +create table t11 ( + a int not null, + b int, + key(a) +); + +insert into t11 select A.seq, A.seq+B.seq +from + seq_1_to_10 A, + seq_1_to_100 B; +create table t12 ( + pk int primary key, + col1 int +); + +insert into t12 select seq, seq from seq_1_to_1000; + +create view v2b as +select t11.a as a, count(*) as b +from t11 left join t12 on t12.pk=t11.b +group by t11.a; + +--echo # The whole v2b is eliminated +explain select t1.* from t1 left join v2b on v2b.a=t1.a; + +--echo # Check format JSON as well +explain format=JSON select t1.* from t1 left join v2b on t1.a=v2b.a; + +--echo # Elimination of a whole subquery +explain select t1.* from t1 left join + (select t11.a as a, count(*) as b + from t11 left join t12 on t12.pk=t11.b + group by t11.a) v2b on v2b.a=t1.a; + +--echo # In this case v2b cannot be eliminated (since v2b.b is not unique)! +explain select t1.* from t1 left join v2b on t1.a=v2b.b; + +--echo # Check format JSON as well +explain format=JSON select t1.* from t1 left join v2b on t1.a=v2b.b; + +create view v2c as +select t11.a as a, max(t12.col1) as b +from t11 left join t12 on t12.pk=t11.b +group by t11.a; + +--echo # The whole v2c is eliminated +explain select t1.* from t1 left join v2c on v2c.a=t1.a; + +--echo # Check format JSON as well +explain format=JSON select t1.* from t1 left join v2c on v2c.a=t1.a; + +--echo # In this case v2c cannot be eliminated (since v2c.b is not unique)! +explain select t1.* from t1 left join v2c on t1.a=v2c.b; + +--echo # Check format JSON as well +explain format=JSON select t1.* from t1 left join v2c on t1.a=v2c.b; + +--echo # Create a view with multiple fields in the GROUP BY clause: +create view v2d as +select t11.a as a, t11.b as b, max(t12.col1) as max_col1 +from t11 left join t12 on t12.pk=t11.b +group by t11.a, t11.b; + +--echo # This one must not be eliminated since only one of the GROUP BY fields is bound: +explain select t1.* from t1 left join v2d on v2d.a=t1.a; + +--echo # This must be eliminated since both fields are bound: +explain select t1.* from t1 left join v2d on v2d.a=t1.a and v2d.b=t1.b; + +create table t13 (dt date, b int); + +--echo # Function year() in the GROUP BY list prevents treating this field +--echo # as a unique key +create view v2e as +select year(t13.dt) as yyy, max(t12.col1) as max_col1 +from t13 join t12 on t12.pk=t13.b +group by yyy; + +--echo # No elimination here since function year() is used +explain select t1.* from t1 left join v2e on v2e.yyy=t1.a; + +create table t2 (a int, b int, c int); +insert into t2 select A.seq, B.seq, 123 from seq_1_to_3 A, seq_1_to_3 B; + +--echo # No elimination here since not all fields of the derived table's +--echo # GROUP BY are on the SELECT list so D.a is not unique +explain select t1.* from t1 left join + (select a, count(*) as cnt from t2 group by a, b) D on D.a=t1.a; + +--echo # Still no elimination 'cause field D.b is just an alias for t2.a +explain select t1.* from t1 left join + (select a, a as b, count(*) as cnt from t2 group by a, b) D on D.a=t1.a and D.b=t1.b; + +--echo # Now both a and b fields are on the SELECT list and they are bound to t1 +--echo # so derived D must be eliminated +explain select t1.* from t1 left join + (select a as a1, b as b1, count(*) as cnt from t2 group by a, b) D + on D.a1=t1.a and D.b1=t1.b; + +--echo # Different order of fields in GROUP BY and SELECT lists +--echo # must not hamper the elimination +explain select t1.* from t1 left join + (select count(*) as cnt, b, a from t2 group by a, b) D on D.a=t1.a and D.b=t1.b; + + +drop view v2b, v2c, v2d, v2e; +drop table t1, t11, t12, t13, t2; + +--echo # +--echo # End of MDEV-26278: Table elimination does not work across derived tables +--echo # + +--echo # +--echo # MDEV-28881: Server crashes in Dep_analysis_context::create_table_value/ +--echo # check_func_dependency +--echo # + +CREATE TABLE t1 (a1 int, a2 int); +INSERT INTO t1 VALUES (0,276),(5,277),(NULL,278); + +CREATE TABLE t2 ( a1 int, a2 int, KEY a2 (a2)); +INSERT INTO t2 VALUES (11,NULL),(185,0); + +SELECT t1.* FROM t1 LEFT JOIN + ( SELECT * FROM (SELECT t2.a1 AS a1, min(t2.a2) AS a2 FROM t2 + WHERE t2.a2 <> NULL + GROUP BY t2.a1) dt + ) dt2 ON dt2.a2 = t1.a2; + +DROP TABLE t1, t2;
\ No newline at end of file diff --git a/mysql-test/main/timezone2.result b/mysql-test/main/timezone2.result index 806255f26f5..31b17fbc0d9 100644 --- a/mysql-test/main/timezone2.result +++ b/mysql-test/main/timezone2.result @@ -607,7 +607,7 @@ SET time_zone=DEFAULT; # MDEV-19961 MIN(timestamp_column) returns a wrong result in a GROUP BY query # SET time_zone='Europe/Moscow'; -CREATE OR REPLACE TABLE t1 (i INT, d TIMESTAMP); +CREATE OR REPLACE TABLE t1 (i INT, d TIMESTAMP NOT NULL DEFAULT NOW()); SET timestamp=1288477526 /* this is summer time */ ; INSERT INTO t1 VALUES (3,NULL); SET timestamp=1288477526+3599 /* this is winter time*/ ; @@ -629,7 +629,7 @@ SET time_zone=DEFAULT; # MDEV-20397 Support TIMESTAMP, DATETIME, TIME in ROUND() and TRUNCATE() # SET time_zone='Europe/Moscow'; -CREATE TABLE t1 (i INT, d TIMESTAMP(6)); +CREATE TABLE t1 (i INT, d TIMESTAMP(6) NOT NULL DEFAULT NOW()); SET timestamp=1288479599.999999 /* this is the last second in summer time */ ; INSERT INTO t1 VALUES (1,NULL); SET timestamp=1288479600.000000 /* this is the first second in winter time */ ; diff --git a/mysql-test/main/timezone2.test b/mysql-test/main/timezone2.test index 20c926a796c..b5045203903 100644 --- a/mysql-test/main/timezone2.test +++ b/mysql-test/main/timezone2.test @@ -573,7 +573,7 @@ SET time_zone=DEFAULT; --echo # SET time_zone='Europe/Moscow'; -CREATE OR REPLACE TABLE t1 (i INT, d TIMESTAMP); +CREATE OR REPLACE TABLE t1 (i INT, d TIMESTAMP NOT NULL DEFAULT NOW()); SET timestamp=1288477526 /* this is summer time */ ; INSERT INTO t1 VALUES (3,NULL); SET timestamp=1288477526+3599 /* this is winter time*/ ; @@ -590,7 +590,7 @@ SET time_zone=DEFAULT; --echo # SET time_zone='Europe/Moscow'; -CREATE TABLE t1 (i INT, d TIMESTAMP(6)); +CREATE TABLE t1 (i INT, d TIMESTAMP(6) NOT NULL DEFAULT NOW()); SET timestamp=1288479599.999999 /* this is the last second in summer time */ ; INSERT INTO t1 VALUES (1,NULL); SET timestamp=1288479600.000000 /* this is the first second in winter time */ ; diff --git a/mysql-test/main/trigger_null-8605.result b/mysql-test/main/trigger_null-8605.result index 10315988708..9dcd2994b79 100644 --- a/mysql-test/main/trigger_null-8605.result +++ b/mysql-test/main/trigger_null-8605.result @@ -183,7 +183,7 @@ a b c 1 NULL 1 2 2 NULL drop table t1; -create table t1 (a timestamp, b int auto_increment primary key); +create table t1 (a timestamp not null default now() on update now(), b int auto_increment primary key); create trigger trgi before insert on t1 for each row set new.a=if(new.a is null, '2000-10-20 10:20:30', NULL); set statement timestamp=777777777 for insert t1 (a) values (NULL); set statement timestamp=888888888 for insert t1 (a) values ('1999-12-11 10:9:8'); diff --git a/mysql-test/main/trigger_null-8605.test b/mysql-test/main/trigger_null-8605.test index 7645b61f5ad..c9a7cd5477d 100644 --- a/mysql-test/main/trigger_null-8605.test +++ b/mysql-test/main/trigger_null-8605.test @@ -152,7 +152,7 @@ drop table t1; --remove_file $datadir/test/mdev8605.txt # timestamps (on NULL = NOW()) -create table t1 (a timestamp, b int auto_increment primary key); +create table t1 (a timestamp not null default now() on update now(), b int auto_increment primary key); create trigger trgi before insert on t1 for each row set new.a=if(new.a is null, '2000-10-20 10:20:30', NULL); set statement timestamp=777777777 for insert t1 (a) values (NULL); set statement timestamp=888888888 for insert t1 (a) values ('1999-12-11 10:9:8'); diff --git a/mysql-test/main/type_temporal_mysql56_debug.result b/mysql-test/main/type_temporal_mysql56_debug.result index 24fbc511aef..5ee22aa5b7f 100644 --- a/mysql-test/main/type_temporal_mysql56_debug.result +++ b/mysql-test/main/type_temporal_mysql56_debug.result @@ -301,25 +301,25 @@ CALL mdev16542; # Original table Table Create Table t1 CREATE TABLE `t1` ( - `a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000' + `a0` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci # CREATE..SELECT and SHOW Table Create Table t2 CREATE TABLE `t2` ( - `a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000', + `a0` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a0)` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a1)` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a2)` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, @@ -332,13 +332,13 @@ t2 CREATE TABLE `t2` ( # ALTER..FORCE and SHOW Table Create Table t1 CREATE TABLE `t1` ( - `a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000' + `a0` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci # Setting @@global.mysql56_temporal_format=false @@ -346,13 +346,13 @@ t1 CREATE TABLE `t1` ( # CREATE..SELECT and SHOW Table Create Table t2 CREATE TABLE `t2` ( - `a0` timestamp /* mariadb-5.3 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000', + `a0` timestamp /* mariadb-5.3 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mariadb-5.3 */ NULL DEFAULT NULL, `COALESCE(a0)` timestamp /* mariadb-5.3 */ NULL DEFAULT NULL, `COALESCE(a1)` timestamp(1) /* mariadb-5.3 */ NULL DEFAULT NULL, `COALESCE(a2)` timestamp(2) /* mariadb-5.3 */ NULL DEFAULT NULL, @@ -365,13 +365,13 @@ t2 CREATE TABLE `t2` ( # ALTER..FORCE and SHOW Table Create Table t1 CREATE TABLE `t1` ( - `a0` timestamp /* mariadb-5.3 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mariadb-5.3 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000' + `a0` timestamp /* mariadb-5.3 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mariadb-5.3 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mariadb-5.3 */ NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci # Setting @@global.mysql56_temporal_format=true @@ -379,13 +379,13 @@ t1 CREATE TABLE `t1` ( # CREATE..SELECT and SHOW Table Create Table t2 CREATE TABLE `t2` ( - `a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000', + `a0` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a0)` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a1)` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, `COALESCE(a2)` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, @@ -398,13 +398,13 @@ t2 CREATE TABLE `t2` ( # ALTER..FORCE and SHOW Table Create Table t1 CREATE TABLE `t1` ( - `a0` timestamp /* mysql-5.6 */ NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), - `a1` timestamp(1) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0', - `a2` timestamp(2) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00', - `a3` timestamp(3) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000', - `a4` timestamp(4) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.0000', - `a5` timestamp(5) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.00000', - `a6` timestamp(6) /* mysql-5.6 */ NOT NULL DEFAULT '0000-00-00 00:00:00.000000' + `a0` timestamp /* mysql-5.6 */ NULL DEFAULT NULL, + `a1` timestamp(1) /* mysql-5.6 */ NULL DEFAULT NULL, + `a2` timestamp(2) /* mysql-5.6 */ NULL DEFAULT NULL, + `a3` timestamp(3) /* mysql-5.6 */ NULL DEFAULT NULL, + `a4` timestamp(4) /* mysql-5.6 */ NULL DEFAULT NULL, + `a5` timestamp(5) /* mysql-5.6 */ NULL DEFAULT NULL, + `a6` timestamp(6) /* mysql-5.6 */ NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci DROP TABLE t1; SET @@global.mysql56_temporal_format=DEFAULT; diff --git a/mysql-test/main/type_timestamp.result b/mysql-test/main/type_timestamp.result index 508dd56f694..09ba852e032 100644 --- a/mysql-test/main/type_timestamp.result +++ b/mysql-test/main/type_timestamp.result @@ -1145,7 +1145,7 @@ DROP TABLE t1; # MDEV-17972 Assertion `is_valid_value_slow()' failed in Datetime::Datetime # SET time_zone='+00:00'; -CREATE TABLE t1 (a TIMESTAMP(6)) ENGINE=MyISAM; +CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL) ENGINE=MyISAM; INSERT INTO t1 VALUES ('2001-01-01 10:20:30'); FLUSH TABLES; MYD diff --git a/mysql-test/main/type_timestamp.test b/mysql-test/main/type_timestamp.test index 3f4346bb17a..b5b1fb02f40 100644 --- a/mysql-test/main/type_timestamp.test +++ b/mysql-test/main/type_timestamp.test @@ -731,7 +731,7 @@ DROP TABLE t1; let $MYSQLD_DATADIR= `select @@datadir`; SET time_zone='+00:00'; -CREATE TABLE t1 (a TIMESTAMP(6)) ENGINE=MyISAM; +CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL) ENGINE=MyISAM; INSERT INTO t1 VALUES ('2001-01-01 10:20:30'); FLUSH TABLES; --remove_file $MYSQLD_DATADIR/test/t1.MYD diff --git a/mysql-test/main/type_timestamp_hires.result b/mysql-test/main/type_timestamp_hires.result index 94807e8c561..ac2d4392bee 100644 --- a/mysql-test/main/type_timestamp_hires.result +++ b/mysql-test/main/type_timestamp_hires.result @@ -276,19 +276,19 @@ create or replace table t1 (a timestamp(5) default current_timestamp); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT current_timestamp(5) + `a` timestamp(5) NULL DEFAULT current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) default current_timestamp()); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT current_timestamp(5) + `a` timestamp(5) NULL DEFAULT current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) default current_timestamp(2)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT current_timestamp(2) + `a` timestamp(5) NULL DEFAULT current_timestamp(2) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci insert t1 () values (); select * from t1; @@ -298,25 +298,25 @@ create or replace table t1 (a timestamp(5) default current_timestamp(5)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT current_timestamp(5) + `a` timestamp(5) NULL DEFAULT current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) default current_timestamp(6)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT current_timestamp(5) + `a` timestamp(5) NULL DEFAULT current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) on update current_timestamp); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000' ON UPDATE current_timestamp(5) + `a` timestamp(5) NULL DEFAULT NULL ON UPDATE current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) on update current_timestamp()); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000' ON UPDATE current_timestamp(5) + `a` timestamp(5) NULL DEFAULT NULL ON UPDATE current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) on update current_timestamp(3)); ERROR HY000: Invalid ON UPDATE clause for 'a' column @@ -324,13 +324,13 @@ create or replace table t1 (a timestamp(5) on update current_timestamp(5)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000' ON UPDATE current_timestamp(5) + `a` timestamp(5) NULL DEFAULT NULL ON UPDATE current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci create or replace table t1 (a timestamp(5) on update current_timestamp(6)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `a` timestamp(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000' ON UPDATE current_timestamp(5) + `a` timestamp(5) NULL DEFAULT NULL ON UPDATE current_timestamp(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci drop table t1; # diff --git a/mysql-test/main/user_var-binlog.result b/mysql-test/main/user_var-binlog.result index c07d6d42b98..6743f340a19 100644 --- a/mysql-test/main/user_var-binlog.result +++ b/mysql-test/main/user_var-binlog.result @@ -29,7 +29,7 @@ SET @`a b`:=_latin1 X'68656C6C6F' COLLATE `latin1_swedish_ci`/*!*/; use `test`/*!*/; SET TIMESTAMP=10000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; -SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/; +SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=1/*!*/; SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; diff --git a/mysql-test/main/variables.result b/mysql-test/main/variables.result index 3f367ef4599..f6817a2a4d2 100644 --- a/mysql-test/main/variables.result +++ b/mysql-test/main/variables.result @@ -1744,24 +1744,24 @@ drop function t1_max; # # Bug #59884: setting charset to 2048 crashes # -set session character_set_results = 2048; -ERROR 42000: Unknown character set: '2048' -set session character_set_client=2048; -ERROR 42000: Unknown character set: '2048' -set session character_set_connection=2048; -ERROR 42000: Unknown character set: '2048' -set session character_set_server=2048; -ERROR 42000: Unknown character set: '2048' -set session collation_server=2048; -ERROR HY000: Unknown collation: '2048' -set session character_set_filesystem=2048; -ERROR 42000: Unknown character set: '2048' -set session character_set_database=2048; -ERROR 42000: Unknown character set: '2048' -set session collation_connection=2048; -ERROR HY000: Unknown collation: '2048' -set session collation_database=2048; -ERROR HY000: Unknown collation: '2048' +set session character_set_results = 4096; +ERROR 42000: Unknown character set: '4096' +set session character_set_client=4096; +ERROR 42000: Unknown character set: '4096' +set session character_set_connection=4096; +ERROR 42000: Unknown character set: '4096' +set session character_set_server=4096; +ERROR 42000: Unknown character set: '4096' +set session collation_server=4096; +ERROR HY000: Unknown collation: '4096' +set session character_set_filesystem=4096; +ERROR 42000: Unknown character set: '4096' +set session character_set_database=4096; +ERROR 42000: Unknown character set: '4096' +set session collation_connection=4096; +ERROR HY000: Unknown collation: '4096' +set session collation_database=4096; +ERROR HY000: Unknown collation: '4096' set session rand_seed1=DEFAULT; ERROR 42000: Variable 'rand_seed1' doesn't have a default value set autocommit = value(v); diff --git a/mysql-test/main/variables.test b/mysql-test/main/variables.test index 495ab101352..c8b36925df6 100644 --- a/mysql-test/main/variables.test +++ b/mysql-test/main/variables.test @@ -1484,23 +1484,23 @@ drop function t1_max; --echo # --error ER_UNKNOWN_CHARACTER_SET -set session character_set_results = 2048; +set session character_set_results = 4096; --error ER_UNKNOWN_CHARACTER_SET -set session character_set_client=2048; +set session character_set_client=4096; --error ER_UNKNOWN_CHARACTER_SET -set session character_set_connection=2048; +set session character_set_connection=4096; --error ER_UNKNOWN_CHARACTER_SET -set session character_set_server=2048; +set session character_set_server=4096; --error ER_UNKNOWN_COLLATION -set session collation_server=2048; +set session collation_server=4096; --error ER_UNKNOWN_CHARACTER_SET -set session character_set_filesystem=2048; +set session character_set_filesystem=4096; --error ER_UNKNOWN_CHARACTER_SET -set session character_set_database=2048; +set session character_set_database=4096; --error ER_UNKNOWN_COLLATION -set session collation_connection=2048; +set session collation_connection=4096; --error ER_UNKNOWN_COLLATION -set session collation_database=2048; +set session collation_database=4096; # # Bug #16044655 CRASH: SETTING DEFAULT VALUE FOR SOME VARIABLES |