diff options
author | monty@donna.mysql.com <> | 2000-11-21 03:43:34 +0200 |
---|---|---|
committer | monty@donna.mysql.com <> | 2000-11-21 03:43:34 +0200 |
commit | b65dbb61143e7add58481dc4bc184c530a9a5582 (patch) | |
tree | 18fdf025bea7d918e304f45384902d822f68f2f6 /myisam/mi_rprev.c | |
parent | b7d81c037904a6d5d9e4a8602b1c9d5406a23a20 (diff) | |
download | mariadb-git-b65dbb61143e7add58481dc4bc184c530a9a5582.tar.gz |
Fixed problem with auto-repair of MyISAM tables
Fixed bug in ISAM and MyISAM when updating from multiple-processes
Diffstat (limited to 'myisam/mi_rprev.c')
-rw-r--r-- | myisam/mi_rprev.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/myisam/mi_rprev.c b/myisam/mi_rprev.c index 471eecc33f5..69d18b10287 100644 --- a/myisam/mi_rprev.c +++ b/myisam/mi_rprev.c @@ -25,7 +25,7 @@ int mi_rprev(MI_INFO *info, byte *buf, int inx) { - int error; + int error,changed; register uint flag; MYISAM_SHARE *share=info->s; DBUG_ENTER("mi_rprev"); @@ -38,12 +38,13 @@ int mi_rprev(MI_INFO *info, byte *buf, int inx) if (_mi_readinfo(info,F_RDLCK,1)) DBUG_RETURN(my_errno); + changed=_mi_test_if_changed(info); if (share->concurrent_insert) rw_rdlock(&share->key_root_lock[inx]); if (!flag) error=_mi_search_last(info, share->keyinfo+inx, share->state.key_root[inx]); - else if (_mi_test_if_changed(info) == 0) + else if (!changed) error=_mi_search_next(info,share->keyinfo+inx,info->lastkey, info->lastkey_length,flag, share->state.key_root[inx]); |