summaryrefslogtreecommitdiff
path: root/myisam/mi_rnext.c
diff options
context:
space:
mode:
Diffstat (limited to 'myisam/mi_rnext.c')
-rw-r--r--myisam/mi_rnext.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/myisam/mi_rnext.c b/myisam/mi_rnext.c
index f7e7b61d934..f297740af60 100644
--- a/myisam/mi_rnext.c
+++ b/myisam/mi_rnext.c
@@ -25,7 +25,7 @@
int mi_rnext(MI_INFO *info, byte *buf, int inx)
{
- int error;
+ int error,changed;
uint flag;
DBUG_ENTER("mi_rnext");
@@ -39,10 +39,13 @@ int mi_rnext(MI_INFO *info, byte *buf, int inx)
DBUG_RETURN(my_errno);
if (info->s->concurrent_insert)
rw_rdlock(&info->s->key_root_lock[inx]);
+ changed=_mi_test_if_changed(info);
if (!flag)
+ {
error=_mi_search_first(info,info->s->keyinfo+inx,
info->s->state.key_root[inx]);
- else if (_mi_test_if_changed(info) == 0)
+ }
+ else if (!changed)
error=_mi_search_next(info,info->s->keyinfo+inx,info->lastkey,
info->lastkey_length,flag,
info->s->state.key_root[inx]);