mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
fe1f4ca8ce
Some tables where not eliminated when they could have been. This was caused because HA_KEYREAD_ONLY is not set anymore for InnoDB clustered index and the elimination code was depending on field->part_of_key_not_clustered which was not set if HA_KEYREAD_ONLY is not present. Fixed by moving out field->part_of_key and field->part_of_key_not_clustered from under HA_KEYREAD_ONLY (which they should never have been part of). Other things: - Fixed a bug in make_join_select() that caused range to be used when there where elminiated or constant tables present (Caused wrong change of plans in join_outer_innodb.test). This also affected show_explain.test and subselct_sj_mat.test where wrong 'range's where replaced with index scans. Reviewer: Sergei Petrunia <sergey@mariadb.com>
39 lines
1.5 KiB
Text
39 lines
1.5 KiB
Text
#
|
|
# This is generic tests using dbt3_s001 tables
|
|
# This file uses the Aria storage engine
|
|
#
|
|
|
|
set default_storage_engine=Aria;
|
|
|
|
CREATE DATABASE dbt3_s001;
|
|
use dbt3_s001;
|
|
--disable_query_log
|
|
--source include/dbt3_s001.inc
|
|
--enable_query_log
|
|
|
|
--echo #
|
|
--echo # MDEV-30325 Wrong result upon range query using index condition
|
|
--echo #
|
|
|
|
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 );
|
|
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 );
|
|
|
|
--echo #
|
|
--echo # MDEV-30373 Wrong result with range access
|
|
--echo #
|
|
|
|
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 );
|
|
|
|
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 );
|
|
|
|
--echo #
|
|
--echo # MDEV-30486 Table is not eliminated in bb-11.0
|
|
--echo #
|
|
|
|
explain SELECT c_custkey, c_name AS currency2 FROM partsupp LEFT JOIN part ON ( p_partkey = ps_partkey ) JOIN supplier ON (s_suppkey = ps_suppkey) JOIN lineitem ON ( ps_suppkey = l_suppkey ) JOIN orders ON ( l_orderkey = o_orderkey ) JOIN customer ON ( o_custkey = c_custkey ) HAVING c_custkey > 150;
|
|
|
|
DROP DATABASE dbt3_s001;
|
|
|
|
--echo #
|
|
--echo # End of 10.5 tests
|
|
--echo #
|