diff options
author | Gleb Shchepa <gshchepa@mysql.com> | 2010-05-31 16:52:19 +0400 |
---|---|---|
committer | Gleb Shchepa <gshchepa@mysql.com> | 2010-05-31 16:52:19 +0400 |
commit | 3ca98f76695772bf8e55cac20e1d197a7b6e3615 (patch) | |
tree | a2e471c1c7859e245a55b668173deda4acb02b85 /tests/bug25714.c | |
parent | 5c72bee9d4b935015db83ff1b8b5baf72c975e32 (diff) | |
download | mariadb-git-3ca98f76695772bf8e55cac20e1d197a7b6e3615.tar.gz |
Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY
when it should use index
Sometimes the LEFT/RIGHT JOIN with an empty table caused an
unnecessary filesort.
Sample query, where t1.i1 is indexed and t3 is empty:
SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2
LEFT JOIN t3 ON t2.i2 = t3.i3
ORDER BY t1.i1 LIMIT 5;
The server erroneously used an item of empty outer-joined
table as a common constant of a Item_equal (multi-equivalence
expression).
By the fix for the bug 16590 the constant status of such
an item has been propagated to st_table::const_key_parts
map bits related to other Item_equal argument-related
key parts (those are obviously not constant in our case).
As far as test_if_skip_sort_order function skips constant
prefixes of testing keys, this caused an ignorance of
available indices, since some prefixes were marked as
constant by mistake.
Diffstat (limited to 'tests/bug25714.c')
0 files changed, 0 insertions, 0 deletions