summaryrefslogtreecommitdiff
path: root/myisam/mi_rprev.c
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-11-21 03:43:34 +0200
committerunknown <monty@donna.mysql.com>2000-11-21 03:43:34 +0200
commit7c881e34ef78cd541cb98738215c8f062024dbad (patch)
tree18fdf025bea7d918e304f45384902d822f68f2f6 /myisam/mi_rprev.c
parent675d1803db1ea6da10dda7ac05ec7800bf6a0d31 (diff)
downloadmariadb-git-7c881e34ef78cd541cb98738215c8f062024dbad.tar.gz
Fixed problem with auto-repair of MyISAM tables
Fixed bug in ISAM and MyISAM when updating from multiple-processes Docs/manual.texi: Updated changelog client/mysqladmin.c: Upgraded version number because the change of llstr() is visible extra/perror.c: Added new error message include/my_base.h: Added HA_ERR_CRASHED_ON_USAGE isam/rnext.c: Fixed bug when updating from multiple-processes isam/rprev.c: Fixed bug when updating from multiple-processes libmysql/libmysql.c: Fixed that mysql->options.client_flag was used properly myisam/mi_locking.c: Fixed bug when updating from multiple-processes myisam/mi_open.c: Fixed bug when updating from multiple-processes Added HA_ERR_CRASHED_ON_USAGE myisam/mi_rnext.c: Fixed bug when updating from multiple-processes myisam/mi_rprev.c: Fixed bug when updating from multiple-processes myisam/myisamchk.c: Added HA_ERR_CRASHED_ON_USAGE sql/sql_base.cc: Fixed problem with auto-repair of MyISAM tables sql/table.cc: Fixed problem with auto-repair of MyISAM tables
Diffstat (limited to 'myisam/mi_rprev.c')
-rw-r--r--myisam/mi_rprev.c5
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]);