diff options
| author | Monty <monty@mariadb.org> | 2023-01-27 19:36:02 +0200 |
|---|---|---|
| committer | Monty <monty@mariadb.org> | 2023-02-10 12:59:37 +0200 |
| commit | fe1f4ca8ced02aad38fa3e71da67b2a172787bda (patch) | |
| tree | 00c4f77814079761438deb9c8661e68c594f045d /mysql-test/main/range_aria_dbt3.test | |
| parent | 01c82173dd8b6ea627dec949dbc57dfcc94a656d (diff) | |
| download | mariadb-git-fe1f4ca8ced02aad38fa3e71da67b2a172787bda.tar.gz | |
MDEV-30486 Table is not eliminated in bb-11.0
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>
Diffstat (limited to 'mysql-test/main/range_aria_dbt3.test')
| -rw-r--r-- | mysql-test/main/range_aria_dbt3.test | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mysql-test/main/range_aria_dbt3.test b/mysql-test/main/range_aria_dbt3.test index 141bf43885b..b373d5b999b 100644 --- a/mysql-test/main/range_aria_dbt3.test +++ b/mysql-test/main/range_aria_dbt3.test @@ -26,6 +26,12 @@ explain SELECT COUNT(*) FROM lineitem WHERE l_orderkey BETWEEN 111 AND 262 OR ( 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 # |
