mirror of
https://github.com/MariaDB/server.git
synced 2025-05-05 16:59:35 +03:00
Add bad checksum test Validate REPAIR VIEW {table} add mariadb-version to the frm Add tests for the binary logging of REPAIR VIEW
147 lines
5.2 KiB
Plaintext
147 lines
5.2 KiB
Plaintext
-- source include/have_log_bin.inc
|
|
|
|
set sql_log_bin=0;
|
|
--disable_warnings
|
|
drop table if exists t1,v1,v2,v3,v4,v1badcheck;
|
|
drop view if exists t1,v1,v2,v3,v4,v1badcheck;
|
|
--enable_warnings
|
|
|
|
create table t1(a int);
|
|
create table kv(k varchar(30) NOT NULL PRIMARY KEY,v varchar(50));
|
|
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1badcheck.frm $MYSQLD_DATADIR/test/v1badcheck.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
|
|
|
|
flush tables;
|
|
|
|
--replace_result $MYSQLTEST_VARDIR var
|
|
--exec $MYSQL_UPGRADE --force 2>&1
|
|
|
|
# "Phase 1/4: Fixing views - skipped - not required" expected
|
|
|
|
show create view v1;
|
|
show create view v2;
|
|
show create view v3;
|
|
|
|
# Now force a mariadb version to be added
|
|
|
|
set sql_log_bin=1;
|
|
REPAIR VIEW v1,v2;
|
|
REPAIR VIEW v1badcheck;
|
|
REPAIR NO_WRITE_TO_BINLOG VIEW v3;
|
|
set sql_log_bin=0;
|
|
|
|
--source include/show_binlog_events.inc
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
SELECT k from kv where k ='mariadb-version';
|
|
truncate table kv;
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
SELECT k from kv where k ='mariadb-version';
|
|
truncate table kv;
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
SELECT k from kv where k ='mariadb-version';
|
|
truncate table kv;
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
SELECT k from kv where k ='mariadb-version';
|
|
truncate table kv;
|
|
|
|
--disable_warnings
|
|
drop view if exists v1,v2,v3,v1badcheck;
|
|
--enable_warnings
|
|
|
|
# Make it look like a MySQL directory now
|
|
|
|
--copy_file $MYSQLD_DATADIR/mysql/event.MYI $MYSQLD_DATADIR/mysql/ev_bk.MYI
|
|
--copy_file $MYSQLD_DATADIR/mysql/event.MYD $MYSQLD_DATADIR/mysql/ev_bk.MYD
|
|
--copy_file $MYSQLD_DATADIR/mysql/event.frm $MYSQLD_DATADIR/mysql/ev_bk.frm
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYI
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYD
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYI $MYSQLD_DATADIR/mysql/event.MYI
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYD $MYSQLD_DATADIR/mysql/event.MYD
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.frm $MYSQLD_DATADIR/mysql/event.frm
|
|
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
|
|
|
|
flush tables;
|
|
|
|
create algorithm=temptable view v4 as select a from t1;
|
|
show create view v1;
|
|
show create view v2;
|
|
show create view v3;
|
|
show create view v4;
|
|
|
|
# here we test the fixing views does occur
|
|
--replace_result $MYSQLTEST_VARDIR var
|
|
--exec $MYSQL_UPGRADE --force 2>&1
|
|
|
|
show create view v1;
|
|
show create view v2;
|
|
show create view v3;
|
|
show create view v4;
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
SELECT k from kv where k ='mariadb-version';
|
|
truncate table kv;
|
|
|
|
--disable_warnings
|
|
drop view if exists v1,v2,v3;
|
|
--enable_warnings
|
|
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYI
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYD
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.frm
|
|
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYI $MYSQLD_DATADIR/mysql/event.MYI
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYD $MYSQLD_DATADIR/mysql/event.MYD
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.frm $MYSQLD_DATADIR/mysql/event.frm
|
|
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
|
|
--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
|
|
flush tables;
|
|
|
|
# check of binlog
|
|
--exec $MYSQL_CHECK --write-binlog --fix-view-algorithm --skip-fix-tables --all-databases 2>&1
|
|
|
|
--source include/show_binlog_events.inc
|
|
|
|
# back to mariadb default
|
|
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYI
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.MYD
|
|
--remove_file $MYSQLD_DATADIR/mysql/event.frm
|
|
--copy_file $MYSQLD_DATADIR/mysql/ev_bk.MYI $MYSQLD_DATADIR/mysql/event.MYI
|
|
--copy_file $MYSQLD_DATADIR/mysql/ev_bk.MYD $MYSQLD_DATADIR/mysql/event.MYD
|
|
--copy_file $MYSQLD_DATADIR/mysql/ev_bk.frm $MYSQLD_DATADIR/mysql/event.frm
|
|
--remove_file $MYSQLD_DATADIR/mysql/ev_bk.MYI
|
|
--remove_file $MYSQLD_DATADIR/mysql/ev_bk.MYD
|
|
--remove_file $MYSQLD_DATADIR/mysql/ev_bk.frm
|
|
flush tables;
|
|
|
|
drop table if exists kv;
|
|
drop view v1,v2,v3,v4;
|
|
drop table t1;
|
|
|