mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
04bee0af2e
mysql_upgrade --help now also prints out --default options and variable values. mysql_upgrade now prints permission errors. mysql_upgrade doesn't print some non essential info if --silent is used. Added handler error message about incompatible versions Fixed that mysqlbug and mysql_install_db have the executable flag set. Removed executable flag for some non executable files. Changed in mysql_install_db askmonty.org to mariadb.com. Ensured that all client executables prints --default options the same way. Allow REPAIR ... USE_FRM for old .frm files if the are still compatible. Extended shown error for storage engine messages. client/mysql.cc: print_defaults() should be first (as in all other programs) client/mysql_upgrade.c: --help now also prints out --default options and variable values Print out error if wrong permissions Don't print info if --silent client/mysqladmin.cc: print_defaults() should be first (as in all other programs) client/mysqlbinlog.cc: Added print_defaults() to --help client/mysqlcheck.c: Added empty line in --help client/mysqlimport.c: Added empty line in --help client/mysqlshow.c: Made --help compatible client/mysqlslap.c: Made --help compatible client/mysqltest.cc: Added print_defaults() to --help include/handler_ername.h: Added handler error message include/my_base.h: Added handler error message mysql-test/r/mysql_upgrade.result: Updated results mysql-test/r/repair.result: Added test case for better error messages mysql-test/std_data/host_old.MYD: Added test case for better error messages mysql-test/std_data/host_old.MYI: Added test case for better error messages mysql-test/std_data/host_old.frm: Added test case for better error messages mysql-test/t/repair.test: Added test case for better error messages mysys/my_handler_errors.h: Added handler error message scripts/CMakeLists.txt: Fixed that mysqlbug and mysql_install_db have the executable flag set scripts/mysql_install_db.sh: askmonty.org -> mariadb.com sql/ha_partition.cc: Sometimes table_type() can be called for errors even if partition didn't manage to open any files sql/handler.cc: Write clear text for not handled, but defined error messages. sql/share/errmsg-utf8.txt: Extended shown error for storage engine messages sql/sql_admin.cc: Allow REPAIR ... USE_FRM for old .frm files if the are still compatible storage/myisam/ha_myisam.cc: Use new error message
210 lines
6 KiB
Text
210 lines
6 KiB
Text
#
|
|
# 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;
|
|
|
|
|
|
--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`;
|
|
--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_ERRMSG
|
|
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;
|