summaryrefslogtreecommitdiff
path: root/mysql-test/t/index_merge_myisam.test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2020-05-27 23:10:55 +0200
committerSergei Golubchik <serg@mariadb.org>2020-05-27 23:10:55 +0200
commitc2a7dffc573f311029ed4696fb5bd88e5efba752 (patch)
tree9f04258d84a42954afb0b8e36486fd6f303cf90d /mysql-test/t/index_merge_myisam.test
parent520c3f69a6caed5524d3214a0339736d673c4c0c (diff)
parentf20c63264ab4170fc8e45093042bd2e7272ce9fc (diff)
downloadmariadb-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.test49
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 #