mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
7d1df207c4
This issue was caused by the bug fix for MDEV-30325 Wrong result upon range query using index condition The bug could happen in the case of several overlapping key ranges with OR
25 lines
1.1 KiB
Text
25 lines
1.1 KiB
Text
set default_storage_engine=Aria;
|
|
CREATE DATABASE dbt3_s001;
|
|
use dbt3_s001;
|
|
#
|
|
# MDEV-30325 Wrong result upon range query using index condition
|
|
#
|
|
SELECT COUNT(*) FROM lineitem force index (i_l_orderkey_quantity,i_l_shipdate) WHERE l_shipdate < '1994-01-01' AND l_orderkey < 800 OR l_quantity > 3 AND l_orderkey NOT IN ( 157, 1444 );
|
|
COUNT(*)
|
|
5658
|
|
SELECT COUNT(*) FROM lineitem ignore index (i_l_orderkey_quantity,i_l_shipdate) WHERE l_shipdate < '1994-01-01' AND l_orderkey < 800 OR l_quantity > 3 AND l_orderkey NOT IN ( 157, 1444 );
|
|
COUNT(*)
|
|
5658
|
|
#
|
|
# MDEV-30373 Wrong result with range access
|
|
#
|
|
explain SELECT COUNT(*) FROM lineitem WHERE l_orderkey BETWEEN 111 AND 262 OR ( l_orderkey BETWEEN 152 AND 672 AND l_linenumber BETWEEN 4 AND 9 );
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE lineitem range PRIMARY,i_l_orderkey,i_l_orderkey_quantity PRIMARY 8 NULL 506 Using where; Using index
|
|
SELECT COUNT(*) FROM lineitem WHERE l_orderkey BETWEEN 111 AND 262 OR ( l_orderkey BETWEEN 152 AND 672 AND l_linenumber BETWEEN 4 AND 9 );
|
|
COUNT(*)
|
|
293
|
|
DROP DATABASE dbt3_s001;
|
|
#
|
|
# End of 10.5 tests
|
|
#
|