diff options
Diffstat (limited to 'storage/myisam/mi_search.c')
-rw-r--r-- | storage/myisam/mi_search.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/storage/myisam/mi_search.c b/storage/myisam/mi_search.c index 1dd6c6b5f0d..766e54bde30 100644 --- a/storage/myisam/mi_search.c +++ b/storage/myisam/mi_search.c @@ -28,9 +28,15 @@ int _mi_check_index(MI_INFO *info, int inx) { if (inx == -1) /* Use last index */ inx=info->lastinx; - if (inx < 0 || ! mi_is_key_active(info->s->state.key_map, inx)) + if (inx < 0) { - my_errno=HA_ERR_WRONG_INDEX; + my_errno= HA_ERR_WRONG_INDEX; + return -1; + } + if (!mi_is_key_active(info->s->state.key_map, inx)) + { + my_errno= info->s->state.state.records ? HA_ERR_WRONG_INDEX : + HA_ERR_END_OF_FILE; return -1; } if (info->lastinx != inx) /* Index changed */ |