diff options
author | Sergei Golubchik <serg@mariadb.org> | 2020-05-27 23:10:55 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2020-05-27 23:10:55 +0200 |
commit | c2a7dffc573f311029ed4696fb5bd88e5efba752 (patch) | |
tree | 9f04258d84a42954afb0b8e36486fd6f303cf90d /mysql-test/t/index_merge_myisam.test | |
parent | 520c3f69a6caed5524d3214a0339736d673c4c0c (diff) | |
parent | f20c63264ab4170fc8e45093042bd2e7272ce9fc (diff) | |
download | mariadb-git-10.0.tar.gz |
Merge tag 'mariadb-5.5.68' into 10.0bb-10.0-serg10.0
Diffstat (limited to 'mysql-test/t/index_merge_myisam.test')
-rw-r--r-- | mysql-test/t/index_merge_myisam.test | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/mysql-test/t/index_merge_myisam.test b/mysql-test/t/index_merge_myisam.test index 75beb9bd883..b4d9773b521 100644 --- a/mysql-test/t/index_merge_myisam.test +++ b/mysql-test/t/index_merge_myisam.test @@ -244,6 +244,55 @@ DROP TABLE t1; set optimizer_switch= @optimizer_switch_save; --echo # +--echo # MDEV-21932: ROR union with index_merge_sort_union=off +--echo # + +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +insert into t0 select a+10 from t0; +insert into t0 select a+20 from t0; +insert into t0 select a+40 from t0; +insert into t0 select a+80 from t0; +insert into t0 select a+160 from t0; +delete from t0 where a > 300; + +create table t1 ( + f1 int, f2 int, f3 int, f4 int, + primary key (f1), key (f3), key(f4) +) engine=myisam; +insert into t1 select a+100, a+100, a+100, a+100 from t0; +insert into t1 VALUES (9,0,2,6), (9930,0,0,NULL); +analyze table t1; + +set optimizer_switch='index_merge_sort_union=off'; +set optimizer_switch='index_merge_union=on'; + +let $q1= +select * from t1 + where (( f3 = 1 or f1 = 7 ) and f1 < 10) or + (f3 between 2 and 2 and ( f3 = 1 or f4 < 7 )); +eval explain $q1; +eval $q1; + +insert into t1 values (52,0,1,0),(53,0,1,0); +insert into t1 values (50,0,1,0),(51,0,1,0); +insert into t1 values (48,0,1,0),(49,0,1,0); +insert into t1 values (46,0,1,0),(47,0,1,0); +insert into t1 values (44,0,1,0),(45,0,1,0); +analyze table t1; + +let $q2= +select * from t1 + where (( f3 = 1 or f1 = 7 ) and f1 < 10) or + (f3 between 2 and 2 and ( f3 = 1 or f4 < 7 )); +eval explain $q2; +eval $q2; + +drop table t0,t1; + +set optimizer_switch= @optimizer_switch_save; + +--echo # --echo # MDEV-16695: Estimate for rows of derived tables is very high when we are using index_merge union --echo # |