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
This commit is contained in:
unknown 2000-11-21 03:43:34 +02:00
commit 7c881e34ef
14 changed files with 60 additions and 38 deletions

View file

@ -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]);