mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
72ba96a48e
Tests with checking metadata or that cannot be run with the view-protocol are excluded from --view-protocol. For tests that do not allow the use of an additional connection, the util connection is disabled with "--disable_service_connection". Also cases with bugs for --view-protocol are disabled.
271 lines
7.6 KiB
Text
271 lines
7.6 KiB
Text
#
|
|
# Test of repair table
|
|
#
|
|
|
|
--source include/have_sequence.inc
|
|
--source include/default_charset.inc
|
|
|
|
call mtr.add_suppression("character set is multi-byte");
|
|
|
|
--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;
|
|
--replace_regex /Current myisam_sort_buffer_size.*/X/
|
|
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;
|
|
--replace_regex /Current myisam_sort_buffer_size.*/X/
|
|
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;
|
|
|
|
--echo # 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;
|
|
|
|
|
|
--echo #
|
|
--echo # Bug #48248 assert in MDL_ticket::upgrade_shared_lock_to_exclusive
|
|
--echo #
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE t1(a INT);
|
|
LOCK TABLES t1 READ;
|
|
REPAIR TABLE t1;
|
|
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo #
|
|
--echo # Test for bug #50784 "MDL: Assertion `m_tickets.is_empty() ||
|
|
--echo # m_tickets.front() == m_trans_sentinel'"
|
|
--echo #
|
|
--disable_warnings
|
|
drop tables if exists t1, t2;
|
|
--enable_warnings
|
|
create table t1 (i int);
|
|
create table t2 (j int);
|
|
set @@autocommit= 0;
|
|
repair table t1, t2;
|
|
set @@autocommit= default;
|
|
drop tables t1, t2;
|
|
|
|
--echo #
|
|
--echo # Check that we have decent error messages when using crashed
|
|
--echo # .frm file from MySQL 3.23
|
|
--echo #
|
|
|
|
--echo # Test with a saved table from 3.23
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
|
|
SET @save_global_character_set_server= @@global.character_set_server;
|
|
set @@global.character_set_server=@@character_set_server;
|
|
--copy_file std_data/host_old.frm $MYSQLD_DATADIR/test/t1.frm
|
|
--copy_file std_data/host_old.MYD $MYSQLD_DATADIR/test/t1.MYD
|
|
--copy_file std_data/host_old.MYI $MYSQLD_DATADIR/test/t1.MYI
|
|
|
|
--error ER_GET_ERRNO
|
|
select count(*) from t1;
|
|
check table t1;
|
|
repair table t1;
|
|
repair table t1 use_frm;
|
|
select count(*) from t1;
|
|
check table t1;
|
|
drop table t1;
|
|
|
|
set @@global.character_set_server=@save_global_character_set_server;
|
|
|
|
#
|
|
# MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW
|
|
#
|
|
create table t1 (a blob);
|
|
create view v1 as select * from t1;
|
|
repair view v1;
|
|
drop view v1;
|
|
drop table t1;
|
|
|
|
--echo # End of 5.5 tests
|
|
|
|
#
|
|
# MDEV-11539 test_if_reopen: Assertion `strcmp(share->unique_file_name,filename) || share->last_version' failed upon select from I_S
|
|
#
|
|
--disable_view_protocol
|
|
CREATE TABLE t1 (i INT) ENGINE=MyISAM;
|
|
INSERT t1 VALUES (1);
|
|
LOCK TABLE t1 WRITE;
|
|
REPAIR TABLE t1;
|
|
--disable_result_log
|
|
SELECT * FROM INFORMATION_SCHEMA.TABLES;
|
|
--enable_result_log
|
|
SELECT * FROM t1;
|
|
UNLOCK TABLES;
|
|
DROP TABLE t1;
|
|
--enable_view_protocol
|
|
--echo # End of 10.0 tests
|
|
|
|
#
|
|
# MDEV-17153 server crash on repair table ... use_frm
|
|
#
|
|
# Note, this test case doesn't crash, but shows spurios warnings
|
|
# unless the bug is fixed
|
|
#
|
|
create table t1 (a int, b varchar(200));
|
|
insert t1 select seq, repeat(200, seq) from seq_1_to_30;
|
|
delete from t1 where a % 13 = 0;
|
|
repair table t1 use_frm;
|
|
delete from t1 where a % 11 = 0;
|
|
repair table t1 extended use_frm;
|
|
delete from t1 where a % 7 = 0;
|
|
set myisam_repair_threads = 2;
|
|
repair table t1 use_frm;
|
|
set myisam_repair_threads = default;
|
|
drop table t1;
|
|
|
|
--echo # End of 10.2 tests
|