diff options
| author | Igor Babaev <igor@askmonty.org> | 2017-10-06 00:08:36 -0700 |
|---|---|---|
| committer | Igor Babaev <igor@askmonty.org> | 2017-10-06 00:08:36 -0700 |
| commit | dbeffabc83ed01112e09d7e782d44f044cfcb691 (patch) | |
| tree | 96e46e4f8728a38ee25e1ae72a4bfc05e9ae3ecd /mysql-test/t | |
| parent | e6862cf1ff3ab11189f5d312055eccb56212a300 (diff) | |
| download | mariadb-git-dbeffabc83ed01112e09d7e782d44f044cfcb691.tar.gz | |
Fixed the bug mdev-11574.
Do not build an index merge of two indexes when one index is
an infix of the other index.
Diffstat (limited to 'mysql-test/t')
| -rw-r--r-- | mysql-test/t/range_vs_index_merge.test | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/mysql-test/t/range_vs_index_merge.test b/mysql-test/t/range_vs_index_merge.test index 5d12d46c9e9..84b87579e85 100644 --- a/mysql-test/t/range_vs_index_merge.test +++ b/mysql-test/t/range_vs_index_merge.test @@ -1241,6 +1241,59 @@ WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 DROP TABLE t1; +--echo # +--echo # mdev-11574: do not build index merge of two indexes when +--echo # one index is an infix of the other index +--echo # + +set names utf8; + +CREATE DATABASE world; + +use world; + +--source include/world_schema.inc + +--disable_query_log +--disable_result_log +--disable_warnings +--source include/world.inc +--enable_warnings +--enable_result_log +--enable_query_log + +DROP INDEX Country ON City; +CREATE INDEX CountryName ON City(Country,Name); +CREATE INDEX Name ON City(Name); + +--disable_query_log +--disable_result_log +--disable_warnings +ANALYZE TABLE City; +--enable_warnings +--enable_result_log +--enable_query_log + +let $q= +select * from City +where + Country='FIN' AND Name IN ('Lahti','Imatra') OR + Country='RUS' AND Name IN ('St Petersburg', 'Moscow') OR + Country='SWE' AND Name IN ('Stockholm', 'Uppsala') OR + Country='DEU' AND Name IN ('Berlin', 'Bonn') OR + Country='BEL' AND Name IN ('Antwerpen', 'Gent') OR + Country='PRT' AND Name IN ('Braga', 'Porto') OR + Country='FRA' AND Name IN ('Paris', 'Marcel') OR + Country='POL' AND Name IN ('Warszawa', 'Wroclaw') OR + Country='NOR' AND Name IN ('Oslo', 'Bergen') OR + Country='ITA' AND Name IN ('Napoli', 'Venezia'); + +eval $q; +eval explain $q; + + +DROP DATABASE world; + #the following command must be the last one in the file set session optimizer_switch='index_merge_sort_intersection=default'; |
