初版
This commit is contained in:
160
build/lib/mysql/mysql-test/t/repair.test
Normal file
160
build/lib/mysql/mysql-test/t/repair.test
Normal file
@@ -0,0 +1,160 @@
|
||||
#
|
||||
# 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;
|
||||
|
||||
Reference in New Issue
Block a user