161 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			161 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # | ||
|  | # Test of repair table | ||
|  | # | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | create table t1 SELECT 1,"table 1"; | ||
|  | repair table t1 use_frm; | ||
|  | alter table t1 ENGINE=HEAP; | ||
|  | repair table t1 use_frm; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # disabled keys during repair | ||
|  | # | ||
|  | create table t1(id int PRIMARY KEY, st varchar(10), KEY st_key(st)); | ||
|  | insert into t1 values(1, "One"); | ||
|  | alter table t1 disable keys; | ||
|  | show keys from t1; | ||
|  | repair table t1 extended; | ||
|  | show keys from t1; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | 
 | ||
|  | # non-existent table | ||
|  | repair table t1 use_frm; | ||
|  | 
 | ||
|  | create table t1 engine=myisam SELECT 1,"table 1"; | ||
|  | flush tables; | ||
|  | let $MYSQLD_DATADIR= `select @@datadir`; | ||
|  | system echo 1 > $MYSQLD_DATADIR/test/t1.MYI ; | ||
|  | repair table t1; | ||
|  | repair table t1 use_frm; | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#18874 - Setting myisam_repair_threads > 1, index cardinality always 1 | ||
|  | # | ||
|  | CREATE TABLE t1(a INT, KEY(a)); | ||
|  | INSERT INTO t1 VALUES(1),(2),(3),(4),(5); | ||
|  | SET myisam_repair_threads=2; | ||
|  | REPAIR TABLE t1; | ||
|  | SHOW INDEX FROM t1; | ||
|  | SET myisam_repair_threads=@@global.myisam_repair_threads; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#22562 - REPAIR TABLE .. USE_FRM causes server crash on Windows and | ||
|  | #             server hangs on Linux | ||
|  | # | ||
|  | CREATE TABLE t1(a INT); | ||
|  | USE mysql; | ||
|  | REPAIR TABLE test.t1 USE_FRM; | ||
|  | USE test; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#23175 - MYISAM crash/repair failed during repair | ||
|  | # | ||
|  | CREATE TABLE t1(a CHAR(255), KEY(a)); | ||
|  | SET myisam_sort_buffer_size=4096; | ||
|  | INSERT INTO t1 VALUES | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'); | ||
|  | SET myisam_repair_threads=2; | ||
|  | REPAIR TABLE t1; | ||
|  | SET myisam_repair_threads=@@global.myisam_repair_threads; | ||
|  | SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#31174 - "Repair" command on MyISAM crashes with small  | ||
|  | #              myisam_sort_buffer_size | ||
|  | # | ||
|  | CREATE TABLE t1(a CHAR(255), KEY(a)); | ||
|  | SET myisam_sort_buffer_size=4496; | ||
|  | INSERT INTO t1 VALUES | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'), | ||
|  | ('0'),('0'),('0'),('0'),('0'),('0'),('0'); | ||
|  | SET myisam_repair_threads=2; | ||
|  | REPAIR TABLE t1; | ||
|  | SET myisam_repair_threads=@@global.myisam_repair_threads; | ||
|  | SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size; | ||
|  | DROP TABLE t1; | ||
|  | 
 | ||
|  | --echo End of 4.1 tests | ||
|  | 
 | ||
|  | # | ||
|  | # BUG#36055 - mysql_upgrade doesn't really 'upgrade' tables | ||
|  | # | ||
|  | 
 | ||
|  | --echo # Test with a saved table from 4.1 | ||
|  | let $MYSQLD_DATADIR= `select @@datadir`; | ||
|  | --copy_file std_data/bug36055.frm $MYSQLD_DATADIR/test/t1.frm | ||
|  | --copy_file std_data/bug36055.MYD $MYSQLD_DATADIR/test/t1.MYD | ||
|  | --copy_file std_data/bug36055.MYI $MYSQLD_DATADIR/test/t1.MYI | ||
|  | 
 | ||
|  | --replace_column 12 # 13 # | ||
|  | SHOW TABLE STATUS LIKE 't1'; | ||
|  | SELECT * FROM t1; | ||
|  | 
 | ||
|  | --echo # Run CHECK TABLE, it should indicate table need a REPAIR TABLE | ||
|  | CHECK TABLE t1 FOR UPGRADE; | ||
|  | 
 | ||
|  | --echo # REPAIR old table USE_FRM should fail | ||
|  | REPAIR TABLE t1 USE_FRM; | ||
|  | 
 | ||
|  | --echo # Run REPAIR TABLE to upgrade .frm file | ||
|  | REPAIR TABLE t1; | ||
|  | --replace_column 12 # 13 # | ||
|  | SHOW TABLE STATUS LIKE 't1'; | ||
|  | SELECT * FROM t1; | ||
|  | 
 | ||
|  | REPAIR TABLE t1 USE_FRM; | ||
|  | SELECT * FROM t1; | ||
|  | 
 | ||
|  | DROP TABLE t1; | ||
|  | # End of 5.0 tests | ||
|  | 
 | ||
|  | # | ||
|  | # Bug#18775 - Temporary table from alter table visible to other threads | ||
|  | # | ||
|  | # REPAIR TABLE ... USE_FRM on temporary table crashed the table or server. | ||
|  | --disable_warnings | ||
|  | DROP TABLE IF EXISTS tt1; | ||
|  | --enable_warnings | ||
|  | CREATE TEMPORARY TABLE tt1 (c1 INT); | ||
|  | REPAIR TABLE tt1 USE_FRM; | ||
|  | DROP TABLE tt1; | ||
|  | 
 |