Commit 5412ee4f authored by unknown's avatar unknown

Bug#14616 - Freshly imported table returns error 124 when using LIMIT

Initialized usable_keys from table->keys_in_use instead of ~0
in test_if_skip_sort_order(). It was possible that a disabled
index was used for sorting.


mysql-test/r/myisam.result:
  Bug#14616 - Freshly imported table returns error 124 when using LIMIT
  The test result.
mysql-test/t/myisam.test:
  Bug#14616 - Freshly imported table returns error 124 when using LIMIT
  The test case.
parent fb4c949f
...@@ -462,3 +462,13 @@ select count(*) from t1 where a is null; ...@@ -462,3 +462,13 @@ select count(*) from t1 where a is null;
count(*) count(*)
2 2
drop table t1; drop table t1;
create table t1 (
c1 varchar(32),
key (c1)
) engine=myisam;
alter table t1 disable keys;
insert into t1 values ('a'), ('b');
select c1 from t1 order by c1 limit 1;
c1
a
drop table t1;
...@@ -446,3 +446,15 @@ explain select count(*) from t1 where a is null; ...@@ -446,3 +446,15 @@ explain select count(*) from t1 where a is null;
select count(*) from t1 where a is null; select count(*) from t1 where a is null;
drop table t1; drop table t1;
#
# Bug#14616 - Freshly imported table returns error 124 when using LIMIT
#
create table t1 (
c1 varchar(32),
key (c1)
) engine=myisam;
alter table t1 disable keys;
insert into t1 values ('a'), ('b');
select c1 from t1 order by c1 limit 1;
drop table t1;
...@@ -6003,8 +6003,12 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, ...@@ -6003,8 +6003,12 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
key_map usable_keys; key_map usable_keys;
DBUG_ENTER("test_if_skip_sort_order"); DBUG_ENTER("test_if_skip_sort_order");
/* Check which keys can be used to resolve ORDER BY */ /*
usable_keys= ~(key_map) 0; Check which keys can be used to resolve ORDER BY.
We must not try to use disabled keys.
*/
usable_keys= table->keys_in_use;
for (ORDER *tmp_order=order; tmp_order ; tmp_order=tmp_order->next) for (ORDER *tmp_order=order; tmp_order ; tmp_order=tmp_order->next)
{ {
if ((*tmp_order->item)->type() != Item::FIELD_ITEM) if ((*tmp_order->item)->type() != Item::FIELD_ITEM)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment