Commit 27390a8d authored by serg@serg.mysql.com's avatar serg@serg.mysql.com
Browse files

LOCK+modify+OPTIMIZE bugfix

parent 184ef91d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -46929,6 +46929,9 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.53
@itemize @bullet
@item
Fixed a bug that @code{OPTIMIZE} of locked and modified MyISAM table,
reported table corruption.
@item
Fixed a @code{BDB}-related @code{ALTER TABLE} bug with dropping a column
and shutting down immediately thereafter.
@item
+2 −0
Original line number Diff line number Diff line
@@ -36,3 +36,5 @@ table type possible_keys key key_len ref rows Extra
t1	ALL	NULL	NULL	NULL	NULL	4	
table	type	possible_keys	key	key_len	ref	rows	Extra
t1	ALL	NULL	NULL	NULL	NULL	4	
Table	Op	Msg_type	Msg_text
test.t1	optimize	status	OK
+11 −0
Original line number Diff line number Diff line
@@ -64,3 +64,14 @@ explain select a,b from t1 order by b;
explain select a,b from t1;
explain select a,b,c from t1;
drop table t1;

#
# Test of OPTIMIZE of locked and modified tables
#
CREATE TABLE t1 (a INT);
INSERT INTO  t1 VALUES (1), (2), (3);
LOCK TABLES t1 WRITE;
INSERT INTO  t1 VALUES (1), (2), (3);
OPTIMIZE TABLE t1;
DROP TABLE t1;
+1 −0
Original line number Diff line number Diff line
@@ -561,6 +561,7 @@ int ha_myisam::repair(THD *thd, MI_CHECK &param, bool optimize)
  }

  if (!optimize ||
      memcmp(file->state, & share->state.state, sizeof(MI_STATUS_INFO)) ||
      ((file->state->del || share->state.split != file->state->records) &&
       (!param.opt_rep_quick ||
	!(share->state.changed & STATE_NOT_OPTIMIZED_KEYS))))