diff options
author | unknown <monty@donna.mysql.com> | 2000-11-21 03:43:34 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-11-21 03:43:34 +0200 |
commit | 7c881e34ef78cd541cb98738215c8f062024dbad (patch) | |
tree | 18fdf025bea7d918e304f45384902d822f68f2f6 /isam | |
parent | 675d1803db1ea6da10dda7ac05ec7800bf6a0d31 (diff) | |
download | mariadb-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 'isam')
-rw-r--r-- | isam/rnext.c | 5 | ||||
-rw-r--r-- | isam/rprev.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/isam/rnext.c b/isam/rnext.c index ebe00fc2fa1..451624bb42b 100644 --- a/isam/rnext.c +++ b/isam/rnext.c @@ -27,7 +27,7 @@ int nisam_rnext(N_INFO *info, byte *buf, int inx) { - int error; + int error,changed; uint flag; DBUG_ENTER("nisam_rnext"); @@ -40,10 +40,11 @@ int nisam_rnext(N_INFO *info, byte *buf, int inx) #ifndef NO_LOCKING if (_nisam_readinfo(info,F_RDLCK,1)) DBUG_RETURN(-1); #endif + changed=_nisam_test_if_changed(info); if (!flag) error=_nisam_search_first(info,info->s->keyinfo+inx, info->s->state.key_root[inx]); - else if (_nisam_test_if_changed(info) == 0) + else if (!changed) error=_nisam_search_next(info,info->s->keyinfo+inx,info->lastkey,flag, info->s->state.key_root[inx]); else diff --git a/isam/rprev.c b/isam/rprev.c index 18b1e31502c..50f22c838fd 100644 --- a/isam/rprev.c +++ b/isam/rprev.c @@ -27,7 +27,7 @@ int nisam_rprev(N_INFO *info, byte *buf, int inx) { - int error; + int error,changed; register uint flag; DBUG_ENTER("nisam_rprev"); @@ -40,9 +40,10 @@ int nisam_rprev(N_INFO *info, byte *buf, int inx) #ifndef NO_LOCKING if (_nisam_readinfo(info,F_RDLCK,1)) DBUG_RETURN(-1); #endif + changed=_nisam_test_if_changed(info); if (!flag) error=_nisam_search_last(info,info->s->keyinfo+inx,info->s->state.key_root[inx]); - else if (_nisam_test_if_changed(info) == 0) + else if (!changed) error=_nisam_search_next(info,info->s->keyinfo+inx,info->lastkey,flag, info->s->state.key_root[inx]); else |