Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
382 additions
and
217 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
SET SESSION STORAGE_ENGINE='InnoDB'; | ||
Warnings: | ||
Warning 1287 '@@storage_engine' is deprecated and will be removed in a future release. Please use '@@default_storage_engine' instead | ||
set @save_optimizer_switch_for_selectivity_test=@@optimizer_switch; | ||
set optimizer_switch='extended_keys=on'; | ||
drop table if exists t0,t1,t2,t3; | ||
select @@global.use_stat_tables; | ||
@@global.use_stat_tables | ||
COMPLEMENTARY | ||
select @@session.use_stat_tables; | ||
@@session.use_stat_tables | ||
COMPLEMENTARY | ||
set @save_use_stat_tables=@@use_stat_tables; | ||
set use_stat_tables='preferably'; | ||
set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; | ||
set @save_histogram_size=@@histogram_size; | ||
set @save_histogram_type=@@histogram_type; | ||
set join_cache_level=2; | ||
set @@global.histogram_size=0,@@local.histogram_size=0; | ||
set histogram_type='single_prec_hb'; | ||
set optimizer_use_condition_selectivity=3; | ||
# | ||
# MDEV-31067: selectivity_from_histogram >1.0 for a DOUBLE_PREC_HB histogram | ||
# | ||
create table t0(a int); | ||
insert into t0 select 1 from seq_1_to_78; | ||
create table t1(a int); | ||
insert into t1 select 1 from seq_1_to_26; | ||
create table t10 (a int); | ||
insert into t10 select 0 from t0, seq_1_to_4; | ||
insert into t10 select 8693 from t1; | ||
insert into t10 select 8694 from t1; | ||
insert into t10 select 8695 from t1; | ||
insert into t10 select 34783 from t1; | ||
insert into t10 select 34784 from t1; | ||
insert into t10 select 34785 from t1; | ||
insert into t10 select 34785 from t0, seq_1_to_8; | ||
insert into t10 select 65214 from t1; | ||
insert into t10 select 65215 from t1; | ||
insert into t10 select 65216 from t1; | ||
insert into t10 select 65216 from t0, seq_1_to_52; | ||
insert into t10 select 65217 from t1; | ||
insert into t10 select 65218 from t1; | ||
insert into t10 select 65219 from t1; | ||
insert into t10 select 65219 from t0; | ||
insert into t10 select 73913 from t1; | ||
insert into t10 select 73914 from t1; | ||
insert into t10 select 73915 from t1; | ||
insert into t10 select 73915 from t0, seq_1_to_40; | ||
insert into t10 select 78257 from t1; | ||
insert into t10 select 78258 from t1; | ||
insert into t10 select 78259 from t1; | ||
insert into t10 select 91300 from t1; | ||
insert into t10 select 91301 from t1; | ||
insert into t10 select 91302 from t1; | ||
insert into t10 select 91302 from t0, seq_1_to_6; | ||
insert into t10 select 91303 from t1; | ||
insert into t10 select 91304 from t1; | ||
insert into t10 select 91305 from t1; | ||
insert into t10 select 91305 from t0, seq_1_to_8; | ||
insert into t10 select 99998 from t1; | ||
insert into t10 select 99999 from t1; | ||
insert into t10 select 100000 from t1; | ||
set use_stat_tables=preferably; | ||
analyze table t10 persistent for all; | ||
Table Op Msg_type Msg_text | ||
test.t10 analyze status Engine-independent statistics collected | ||
test.t10 analyze status OK | ||
flush tables; | ||
set @tmp=@@optimizer_trace; | ||
set optimizer_trace=1; | ||
explain select * from t10 where a in (91303); | ||
id select_type table type possible_keys key key_len ref rows Extra | ||
1 SIMPLE t10 ALL NULL NULL NULL NULL 9984 Using where | ||
# Must have selectivity_from_histogram <= 1.0: | ||
select json_detailed(json_extract(trace, '$**.selectivity_for_columns')) as sel | ||
from information_schema.optimizer_trace; | ||
sel | ||
[ | ||
[ | ||
{ | ||
"column_name": "a", | ||
"ranges": | ||
["91303 <= a <= 91303"], | ||
"selectivity_from_histogram": 0.035714283 | ||
} | ||
] | ||
] | ||
set optimizer_trace=@tmp; | ||
drop table t0,t1,t10; | ||
set optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity; | ||
set histogram_size=@save_histogram_size; | ||
set use_stat_tables= @save_use_stat_tables; | ||
# | ||
# End of 10.4 tests | ||
# | ||
# | ||
# Clean up | ||
# | ||
set @@global.histogram_size=@save_histogram_size; | ||
set optimizer_switch=@save_optimizer_switch_for_selectivity_test; | ||
SET SESSION STORAGE_ENGINE=DEFAULT; | ||
Warnings: | ||
Warning 1287 '@@storage_engine' is deprecated and will be removed in a future release. Please use '@@default_storage_engine' instead |
Oops, something went wrong.