1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-18 23:03:28 +03:00

order_by.result:

result of the test case for FORCE INDEX on ORDER BY
order_by.test:
  test case for FORCE INDEX on ORDER BY
sql_select.cc:
  Changing behaviour that MySQL server takes FORCE INDEX clause into account when optimising ORDER BY clause
This commit is contained in:
Sinisa@sinisa.nasamreza.org
2004-03-26 17:01:13 +02:00
parent 2d970b2ea4
commit 09d26f0ff6
3 changed files with 32 additions and 3 deletions

View File

@ -6021,7 +6021,7 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
/* check if we can use a key to resolve the group */
/* Tables using JT_NEXT are handled here */
uint nr;
key_map keys=usable_keys;
key_map keys_to_use=~0,keys=usable_keys;
/*
If not used with LIMIT, only use keys if the whole query can be
@ -6029,7 +6029,17 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
retrieving all rows through an index.
*/
if (select_limit >= table->file->records)
keys&= (table->used_keys | table->file->keys_to_use_for_scanning());
keys_to_use= (table->used_keys |table->file->keys_to_use_for_scanning());
/*
We are adding here also the index speified in FORCE INDEX clause,
if any.
This is to allow users to use index in ORDER BY.
*/
if (table->force_index)
keys_to_use|= table->keys_in_use_for_query;
keys&= keys_to_use;
for (nr=0; keys ; keys>>=1, nr++)
{