Commit b65dbb61 authored by monty@donna.mysql.com's avatar monty@donna.mysql.com
Browse files

Fixed problem with auto-repair of MyISAM tables

Fixed bug in ISAM and MyISAM when updating from multiple-processes
parent b7d81c03
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -28015,10 +28015,10 @@ Give a variable a value. @code{--help} lists variables.
Only update the default database. This is useful for skipping updates to
other database in the update log.
@cindex pager option
@item --pager[=...]
Output type. Default is your ENV variable PAGER. Valid pagers are less,
more, cat [> filename], etc.  See interactive help (\h) also. This
option does not work in batch mode. Pager works only in UNIX.
@item @code{--pager[=...]}
Output type. Default is your @code{ENV} variable @code{PAGER}. Valid
pagers are less, more, cat [> filename], etc.  See interactive help (\h)
also. This option does not work in batch mode. Pager works only in UNIX.
@cindex password option
@item -p[password], --password[=...]
Password to use when connecting to server. If password is not given on
@@ -28148,12 +28148,11 @@ mysql> select * from mails where length(txt) < 300 limit 300,1\G
  msg_nro: 3068
     date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Michael Widenius <monty@monty.pp.sci.fi>
    reply: monty@mysql.com
  mail_to: "Thimble Smith" <tim@mysql.com>
       cc: mysql_all@mysql.com
mail_from: Monty
    reply: monty@@no.spam.com
  mail_to: "Thimble Smith" <tim@@no.spam.com>
      sbj: UTF-8
      txt: >>>>> "Thimble" == Thimble Smith <tim@mysql.com> writes:
      txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi.  I think this is a good idea.  Is anyone familiar with UTF-8
Thimble> or Unicode?  Otherwise I'll put this on my TODO list and see what
@@ -28166,8 +28165,6 @@ Monty
     file: inbox-jani-1
     hash: 190402944
1 row in set (0.09 sec)
mysql>
@end example
For logging, one can use the @code{tee} option. The @code{tee} can be
@@ -38808,11 +38805,16 @@ though, so Version 3.23 is not released as a stable version yet.
@appendixsubsec Changes in release 3.23.28
@itemize @bullet
@item
Fixed a major performance bug in the table locking code when you
constantly had a LOT of @code{SELECT} running on a table on which you
also did a lot of @code{UPDATE} and @code{INSERT}.  The symptom was that
the @code{UPDATE} and @code{INSERT} queries was locked a long time
while @code{SELECT} statements where executed without locks.
Fixed crash when automatic repair of @code{MyISAM} table failed.
@item
Fixed a major performance bug in the table locking code when one
constantly had a LOT of @code{SELECT}, @code{UPDATE} and @code{INSERT}
statements running. The symptom was that the @code{UPDATE} and
@code{INSERT} queries was locked a long time while new @code{SELECT}
statements where executed without locks.
@item
When reading options_files with @code{mysql_options()} the
@code{return-found-rows} option was ignored.
@item
One can now specify @code{interactive-timeout} in the option file that
is read by @code{mysql_options()}. This makes it possible to force
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
#include <my_pthread.h>				/* because of signal()	*/
#endif

#define ADMIN_VERSION "8.11"
#define ADMIN_VERSION "8.12"
#define MAX_MYSQL_VAR 64
#define MAX_TIME_TO_WAIT 3600			/* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ static HA_ERRORS ha_errlist[]=
  { 142,"Unknown character set used"},
  { 143,"Conflicting table definition between MERGE and mapped table"},
  { 144,"Table is crashed and last repair failed"},
  { 145,"Table was marked as crashed and should be repaired"},
  { 0,NullS },
};

+1 −0
Original line number Diff line number Diff line
@@ -207,6 +207,7 @@ enum ha_base_keytype {
#define HA_ERR_UNKNOWN_CHARSET	 142	/* Can't open charset */
#define HA_ERR_WRONG_TABLE_DEF	 143
#define HA_ERR_CRASHED_ON_REPAIR 144	/* Last (automatic?) repair failed */
#define HA_ERR_CRASHED_ON_USAGE  145	/* Table must be repaired */

	/* Other constants */

+3 −2
Original line number Diff line number Diff line
@@ -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
Loading