mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-31407: Add aliases in opt_trace.test for long column name for removing "--disable-view-protocol"
Change tests: opt_trace.test opt_trace_index_merge.test opt_trace_ucs2.test
This commit is contained in:
@ -7452,8 +7452,8 @@ set optimizer_trace='enabled=on';
|
|||||||
explain select * from t1 force index (a_b) where a=2 and b=4;
|
explain select * from t1 force index (a_b) where a=2 and b=4;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref a_b a_b 10 const,const 1 Using index
|
1 SIMPLE t1 ref a_b a_b 10 const,const 1 Using index
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7481,8 +7481,8 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
|||||||
explain select * from t1 where a >= 900 and b between 10 and 20;
|
explain select * from t1 where a >= 900 and b between 10 and 20;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a_b a_b 10 NULL 107 Using where; Using index
|
1 SIMPLE t1 range a_b a_b 10 NULL 107 Using where; Using index
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7513,8 +7513,8 @@ insert into t1 select date_add(now(), interval a day), date_add(now(), interval
|
|||||||
explain select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
explain select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range start_date start_date 8 NULL 1000 Using index condition
|
1 SIMPLE t1 range start_date start_date 8 NULL 1000 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7553,8 +7553,8 @@ insert into t1 select a,a, a,a from ten;
|
|||||||
explain select * from t1 force index(a_b_c) where a between 1 and 4 and b < 50;
|
explain select * from t1 force index(a_b_c) where a between 1 and 4 and b < 50;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a_b_c a_b_c 8 NULL 4 Using index condition
|
1 SIMPLE t1 range a_b_c a_b_c 8 NULL 4 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7587,8 +7587,8 @@ INSERT INTO t1 VALUES (2, NULL);
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b IN (0xD95B94336A9946A39CF5B58CFE772D8C);
|
EXPLAIN SELECT * FROM t1 WHERE b IN (0xD95B94336A9946A39CF5B58CFE772D8C);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 17 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 17 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7616,8 +7616,8 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b IS NULL;
|
EXPLAIN SELECT * FROM t1 WHERE b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 17 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 17 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7653,8 +7653,8 @@ set optimizer_trace=1;
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7683,8 +7683,8 @@ ALTER TABLE t1 modify column b BINARY(10) AFTER i;
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7713,8 +7713,8 @@ ALTER TABLE t1 modify column b VARBINARY(10) AFTER i;
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 13 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7746,8 +7746,8 @@ INSERT INTO t1 VALUES (2, NULL);
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
|
1 SIMPLE t1 ref i_b i_b 11 const 1 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7782,8 +7782,8 @@ set optimizer_trace=1;
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 1003 const 1 Using where
|
1 SIMPLE t1 ref i_b i_b 1003 const 1 Using where
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7816,8 +7816,8 @@ set optimizer_trace=1;
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref i_b i_b 13 const 2 Using index condition
|
1 SIMPLE t1 ref i_b i_b 13 const 2 Using index condition
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7867,8 +7867,8 @@ EXPLAIN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -7926,8 +7926,8 @@ explain select * from t0 A, one_k B where A.a<5 and B.a<800;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A ALL NULL NULL NULL NULL 10 Using where
|
1 SIMPLE A ALL NULL NULL NULL NULL 10 Using where
|
||||||
1 SIMPLE B ALL NULL NULL NULL NULL 1000 Using where
|
1 SIMPLE B ALL NULL NULL NULL NULL 1000 Using where
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8021,8 +8021,8 @@ explain select * from t0 A, one_k B where A.a=B.b and B.a<800;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE A ALL NULL NULL NULL NULL 10 Using where
|
1 SIMPLE A ALL NULL NULL NULL NULL 10 Using where
|
||||||
1 SIMPLE B ref b b 5 test.A.a 1 Using where
|
1 SIMPLE B ref b b 5 test.A.a 1 Using where
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8131,8 +8131,8 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ref a a 258 const 1 Using where
|
1 SIMPLE t1 ref a a 258 const 1 Using where
|
||||||
SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
||||||
a
|
a
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -8193,8 +8193,8 @@ insert into t1 values (1,1),(1,5),(5,1),(5,5);
|
|||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
select * from t1 force index(kp1) where (kp1=2 and kp2 >=4);
|
select * from t1 force index(kp1) where (kp1=2 and kp2 >=4);
|
||||||
kp1 kp2
|
kp1 kp2
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8224,8 +8224,8 @@ EXPLAIN SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t2.b;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 10 Using where; Using temporary; Using filesort
|
1 SIMPLE t1 ALL a NULL NULL NULL 10 Using where; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 1
|
1 SIMPLE t2 ref a a 5 test.t1.a 1
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8379,8 +8379,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 0.22 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 0.22 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`a` between 1 and 5 and `test`.`t1`.`b` <= 5
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`a` between 1 and 5 and `test`.`t1`.`b` <= 5
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8402,8 +8402,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 100.00 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`a` <> 5
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`a` <> 5
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8422,8 +8422,8 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 15.62 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 100 15.62 Using where
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`b` >= 10 and `test`.`t1`.`b` < 25
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`b` >= 10 and `test`.`t1`.`b` < 25
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -8444,8 +8444,8 @@ SELECT sum(b), row_number() OVER (order by b) FROM t1 WHERE a = 101;
|
|||||||
sum(b) row_number() OVER (order by b)
|
sum(b) row_number() OVER (order by b)
|
||||||
NULL 1
|
NULL 1
|
||||||
UPDATE t1 SET b=10 WHERE a=1;
|
UPDATE t1 SET b=10 WHERE a=1;
|
||||||
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -403,13 +403,11 @@ create table t1 ( a int, b int, key a_b(a,b));
|
|||||||
insert into t1 select a,a from one_k;
|
insert into t1 select a,a from one_k;
|
||||||
set optimizer_trace='enabled=on';
|
set optimizer_trace='enabled=on';
|
||||||
|
|
||||||
#enable after fix MDEV-27871
|
|
||||||
--disable_view_protocol
|
|
||||||
explain select * from t1 force index (a_b) where a=2 and b=4;
|
explain select * from t1 force index (a_b) where a=2 and b=4;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
explain select * from t1 where a >= 900 and b between 10 and 20;
|
explain select * from t1 where a >= 900 and b between 10 and 20;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
drop table t0,t1;
|
drop table t0,t1;
|
||||||
|
|
||||||
@ -418,7 +416,7 @@ create table t1 (start_date date, end_date date, filler char(100), key(start_dat
|
|||||||
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
|
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
explain select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
explain select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1,one_k;
|
drop table t1,one_k;
|
||||||
|
|
||||||
create table ten(a int);
|
create table ten(a int);
|
||||||
@ -433,7 +431,7 @@ create table t1 (
|
|||||||
|
|
||||||
insert into t1 select a,a, a,a from ten;
|
insert into t1 select a,a, a,a from ten;
|
||||||
explain select * from t1 force index(a_b_c) where a between 1 and 4 and b < 50;
|
explain select * from t1 force index(a_b_c) where a between 1 and 4 and b < 50;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table ten,t1;
|
drop table ten,t1;
|
||||||
|
|
||||||
--echo # Ported test from MYSQL for ranges involving Binary column
|
--echo # Ported test from MYSQL for ranges involving Binary column
|
||||||
@ -443,10 +441,10 @@ INSERT INTO t1 VALUES (1, x'D95B94336A9946A39CF5B58CFE772D8C');
|
|||||||
INSERT INTO t1 VALUES (2, NULL);
|
INSERT INTO t1 VALUES (2, NULL);
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b IN (0xD95B94336A9946A39CF5B58CFE772D8C);
|
EXPLAIN SELECT * FROM t1 WHERE b IN (0xD95B94336A9946A39CF5B58CFE772D8C);
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b IS NULL;
|
EXPLAIN SELECT * FROM t1 WHERE b IS NULL;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
@ -459,22 +457,22 @@ INSERT INTO t1 VALUES (1, 'ab\n');
|
|||||||
INSERT INTO t1 VALUES (2, NULL);
|
INSERT INTO t1 VALUES (2, NULL);
|
||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
ALTER TABLE t1 modify column b BINARY(10) AFTER i;
|
ALTER TABLE t1 modify column b BINARY(10) AFTER i;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
ALTER TABLE t1 modify column b VARBINARY(10) AFTER i;
|
ALTER TABLE t1 modify column b VARBINARY(10) AFTER i;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
CREATE TABLE t1(i INT PRIMARY KEY, b CHAR(10), INDEX i_b(b));
|
CREATE TABLE t1(i INT PRIMARY KEY, b CHAR(10), INDEX i_b(b));
|
||||||
INSERT INTO t1 VALUES (1, 'ab\n');
|
INSERT INTO t1 VALUES (1, 'ab\n');
|
||||||
INSERT INTO t1 VALUES (2, NULL);
|
INSERT INTO t1 VALUES (2, NULL);
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
CREATE TABLE t1(i INT PRIMARY KEY, b blob , INDEX i_b(b));
|
CREATE TABLE t1(i INT PRIMARY KEY, b blob , INDEX i_b(b));
|
||||||
@ -482,7 +480,7 @@ INSERT INTO t1 VALUES (1, 'ab\n');
|
|||||||
INSERT INTO t1 VALUES (2, NULL);
|
INSERT INTO t1 VALUES (2, NULL);
|
||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b= 'ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10), INDEX i_b(b));
|
CREATE TABLE t1(i INT PRIMARY KEY, b VARCHAR(10), INDEX i_b(b));
|
||||||
@ -490,7 +488,7 @@ INSERT INTO t1 VALUES (1, 'ab\n');
|
|||||||
INSERT INTO t1 VALUES (2, 'ab\n');
|
INSERT INTO t1 VALUES (2, 'ab\n');
|
||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
EXPLAIN SELECT * FROM t1 WHERE b='ab\n';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t0(a int);
|
create table t0(a int);
|
||||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
@ -501,9 +499,8 @@ create table t1 (start_date date, end_date date, filler char(100), key(start_dat
|
|||||||
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
|
insert into t1 select date_add(now(), interval a day), date_add(now(), interval (a+7) day), 'data' from one_k;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
explain format=json select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
explain format=json select * from t1 force index(start_date) where start_date >= '2019-02-10' and end_date <'2019-04-01';
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t1, t0, one_k;
|
drop table t1, t0, one_k;
|
||||||
--enable_view_protocol
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-19776: Assertion `to_len >= 8' failed in convert_to_printable with optimizer trace enabled
|
--echo # MDEV-19776: Assertion `to_len >= 8' failed in convert_to_printable with optimizer trace enabled
|
||||||
@ -533,18 +530,15 @@ set optimizer_trace=1;
|
|||||||
--echo # (cost_for_plan is the same as best_access_path.cost for single-table SELECTs
|
--echo # (cost_for_plan is the same as best_access_path.cost for single-table SELECTs
|
||||||
--echo # but for joins using condition selectivity it is not as trivial. So,
|
--echo # but for joins using condition selectivity it is not as trivial. So,
|
||||||
--echo # now we are printing it)
|
--echo # now we are printing it)
|
||||||
#enable after fix MDEV-27871
|
|
||||||
--disable_view_protocol
|
|
||||||
explain select * from t0 A, one_k B where A.a<5 and B.a<800;
|
explain select * from t0 A, one_k B where A.a<5 and B.a<800;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
set join_cache_level=@tmp_jcl;
|
set join_cache_level=@tmp_jcl;
|
||||||
|
|
||||||
--echo # This shows post-join selectivity
|
--echo # This shows post-join selectivity
|
||||||
explain select * from t0 A, one_k B where A.a=B.b and B.a<800;
|
explain select * from t0 A, one_k B where A.a=B.b and B.a<800;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
drop table t0, one_k;
|
drop table t0, one_k;
|
||||||
--enable_view_protocol
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Assertion `to_len >= 8' failed in convert_to_printable
|
--echo # Assertion `to_len >= 8' failed in convert_to_printable
|
||||||
@ -556,9 +550,7 @@ insert into t1 values ('foo'), ('bar');
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
EXPLAIN SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
||||||
SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
SELECT * FROM t1 WHERE a= REPEAT('a', 0);
|
||||||
#enable after fix MDEV-27871
|
#enable after fix MDEV-27871
|
||||||
--disable_view_protocol
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
|
||||||
--enable_view_protocol
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -589,9 +581,7 @@ insert into t1 values (1,1),(1,5),(5,1),(5,5);
|
|||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
select * from t1 force index(kp1) where (kp1=2 and kp2 >=4);
|
select * from t1 force index(kp1) where (kp1=2 and kp2 >=4);
|
||||||
#enable after fix MDEV-27871
|
#enable after fix MDEV-27871
|
||||||
--disable_view_protocol
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
|
||||||
--enable_view_protocol
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -604,12 +594,10 @@ CREATE TABLE t2(a INT, b INT, key(a));
|
|||||||
INSERT INTO t2 SELECT seq, seq from seq_1_to_100;
|
INSERT INTO t2 SELECT seq, seq from seq_1_to_100;
|
||||||
|
|
||||||
#enable after fix MDEV-27871
|
#enable after fix MDEV-27871
|
||||||
--disable_view_protocol
|
|
||||||
SET OPTIMIZER_TRACE=1;
|
SET OPTIMIZER_TRACE=1;
|
||||||
EXPLAIN SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t2.b;
|
EXPLAIN SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t2.b;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.considered_execution_plans')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
--enable_view_protocol
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-22665: Print ranges in the optimizer trace created for non-indexed columns when
|
--echo # MDEV-22665: Print ranges in the optimizer trace created for non-indexed columns when
|
||||||
@ -620,15 +608,12 @@ CREATE TABLE t1(a INT, b INT);
|
|||||||
INSERT INTO t1 SELECT seq, seq from seq_1_to_100;
|
INSERT INTO t1 SELECT seq, seq from seq_1_to_100;
|
||||||
SET optimizer_trace=1;
|
SET optimizer_trace=1;
|
||||||
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
||||||
#enable after fix MDEV-27871
|
|
||||||
--disable_view_protocol
|
|
||||||
EXPLAIN EXTENDED SELECT * from t1 WHERE a between 1 and 5 and b <= 5;
|
EXPLAIN EXTENDED SELECT * from t1 WHERE a between 1 and 5 and b <= 5;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
EXPLAIN EXTENDED SELECT * from t1 WHERE a != 5;
|
EXPLAIN EXTENDED SELECT * from t1 WHERE a != 5;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
EXPLAIN EXTENDED SELECT * from t1 WHERE b >= 10 and b < 25;
|
EXPLAIN EXTENDED SELECT * from t1 WHERE b >= 10 and b < 25;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.selectivity_for_columns')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
--enable_view_protocol
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -639,10 +624,7 @@ drop table t1;
|
|||||||
CREATE TABLE t1( a INT, b INT, PRIMARY KEY( a ) );
|
CREATE TABLE t1( a INT, b INT, PRIMARY KEY( a ) );
|
||||||
SELECT sum(b), row_number() OVER (order by b) FROM t1 WHERE a = 101;
|
SELECT sum(b), row_number() OVER (order by b) FROM t1 WHERE a = 101;
|
||||||
UPDATE t1 SET b=10 WHERE a=1;
|
UPDATE t1 SET b=10 WHERE a=1;
|
||||||
#enable after fix MDEV-27871
|
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
--disable_view_protocol
|
|
||||||
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.range_scan_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
|
||||||
--enable_view_protocol
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
set optimizer_trace='enabled=off';
|
set optimizer_trace='enabled=off';
|
||||||
@ -784,9 +766,13 @@ select * from
|
|||||||
from t10 left join t11 on t11.col1=t10.col1
|
from t10 left join t11 on t11.col1=t10.col1
|
||||||
group by grp_id) T on T.grp_id=t1.b;
|
group by grp_id) T on T.grp_id=t1.b;
|
||||||
|
|
||||||
# Not sure how MDEV-27871 is related but this test uses this reason
|
# Enable after fix MDEV-31408
|
||||||
# all over the place:
|
# On the first creation of the view from information_schema.optimizer_trace
|
||||||
#enable after fix MDEV-27871
|
# everything is fine, but on the second creation of the view is
|
||||||
|
# from information_schema.optimizer_trace the result of select
|
||||||
|
# from this view is already returned NULL.
|
||||||
|
# That's why view-protocol is disabled here
|
||||||
|
|
||||||
--disable_view_protocol
|
--disable_view_protocol
|
||||||
|
|
||||||
select json_detailed(json_extract(trace, '$**.check_split_materialized')) as JS
|
select json_detailed(json_extract(trace, '$**.check_split_materialized')) as JS
|
||||||
|
@ -304,8 +304,8 @@ set optimizer_trace='enabled=on';
|
|||||||
explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 2 Using intersect(key1,key2,key3); Using where; Using index
|
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 2 Using intersect(key1,key2,key3); Using where; Using index
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -398,8 +398,8 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
|||||||
[]
|
[]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_access_plan":
|
"range_access_plan":
|
||||||
@ -443,8 +443,8 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary'))
|
|||||||
explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
@ -620,8 +620,8 @@ JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_access_plan":
|
"range_access_plan":
|
||||||
|
@ -119,17 +119,17 @@ insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, -1, -1, 'key1
|
|||||||
insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 100, 100, 'key4-key3');
|
insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 100, 100, 'key4-key3');
|
||||||
set optimizer_trace='enabled=on';
|
set optimizer_trace='enabled=on';
|
||||||
|
|
||||||
#check after fix MDEV-27871
|
# Enable after fix MDEV-31408
|
||||||
--disable_view_protocol
|
--disable_view_protocol
|
||||||
--echo # 3-way ROR-intersection
|
--echo # 3-way ROR-intersection
|
||||||
explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
|
|
||||||
--echo # ROR-union(ROR-intersection, ROR-range)
|
--echo # ROR-union(ROR-intersection, ROR-range)
|
||||||
explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.chosen_range_access_summary')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
--enable_view_protocol
|
--enable_view_protocol
|
||||||
|
|
||||||
drop table t0,t1;
|
drop table t0,t1;
|
||||||
|
@ -20,8 +20,8 @@ EXPLAIN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives'))
|
JS
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"range_scan_alternatives":
|
"range_scan_alternatives":
|
||||||
|
@ -6,8 +6,5 @@ insert into t1 values ('a', 'a');
|
|||||||
insert into t1 values ('a', 'a');
|
insert into t1 values ('a', 'a');
|
||||||
set optimizer_trace=1;
|
set optimizer_trace=1;
|
||||||
explain format=json select * from t1 force index(col1) where col1 >='a';
|
explain format=json select * from t1 force index(col1) where col1 >='a';
|
||||||
#enable after fix MDEV-27871
|
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) AS JS from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
||||||
--disable_view_protocol
|
|
||||||
select JSON_DETAILED(JSON_EXTRACT(trace, '$**.analyzing_range_alternatives')) from INFORMATION_SCHEMA.OPTIMIZER_TRACE;
|
|
||||||
--enable_view_protocol
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
Reference in New Issue
Block a user