From 3f619478f796eddbba6e39502fe941b285dd97b1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 20:00:34 +0200 Subject: Adding upstream version 1:10.11.6. Signed-off-by: Daniel Baumann --- mysql-test/suite/archive/discover.test | 144 +++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 mysql-test/suite/archive/discover.test (limited to 'mysql-test/suite/archive/discover.test') diff --git a/mysql-test/suite/archive/discover.test b/mysql-test/suite/archive/discover.test new file mode 100644 index 00000000..1bced9ed --- /dev/null +++ b/mysql-test/suite/archive/discover.test @@ -0,0 +1,144 @@ +-- source include/have_archive.inc +let $mysqld_datadir= `select @@datadir`; + +create table t1 (a int) engine=archive; +show create table t1; +insert t1 values (1); +show tables; + +--echo # +--echo # simple discover on use +--echo # +remove_file $mysqld_datadir/test/t1.frm; +flush tables; +insert t1 values (2); +select * from t1; +--list_files $mysqld_datadir/test + +--echo # +--echo # show tables +--echo # +create table t2 (a int) engine=archive; +select * from t2; +remove_file $mysqld_datadir/test/t1.frm; +flush tables; +show tables; +--list_files $mysqld_datadir/test + +--echo # +--echo # show full tables +--echo # +flush tables; +show full tables; +--list_files $mysqld_datadir/test + +--echo # +--echo # discover on truncate +--echo # +flush tables; +--error ER_ILLEGAL_HA +truncate table t1; +--list_files $mysqld_datadir/test + +--echo # +--echo # discover on rename +--echo # +remove_file $mysqld_datadir/test/t2.frm; +flush tables; +rename table t2 to t0; +--list_files $mysqld_datadir/test + +--echo # +--echo # discover on HA_ERR_TABLE_DEF_CHANGED +--echo # +copy_file $mysqld_datadir/test/t1.ARZ $MYSQL_TMP_DIR/t1.ARZ; +alter table t1 modify a int default 5; +remove_file $mysqld_datadir/test/t1.ARZ; +copy_file $MYSQL_TMP_DIR/t1.ARZ $mysqld_datadir/test/t1.ARZ; +remove_file $MYSQL_TMP_DIR/t1.ARZ; +show create table t1; + +--echo # +--echo # discover on drop +--echo # +remove_file $mysqld_datadir/test/t1.frm; +flush tables; +drop table t1; +--list_files $mysqld_datadir/test + +--echo # +--echo # discover of table non-existence on drop +--echo # +select * from t0; +remove_file $mysqld_datadir/test/t0.ARZ; +flush tables; +drop table t0; +--list_files $mysqld_datadir/test +show status like 'Handler_discover'; + +--echo # +--echo # Bug#45377: ARCHIVE tables aren't discoverable after OPTIMIZE +--echo # + +create table t1 (a int) engine=archive; +show create table t1; +insert into t1 values (1); +optimize table t1; +remove_file $mysqld_datadir/test/t1.frm; +flush tables; +insert into t1 values (2); +select * from t1 order by a; +show create table t1; +drop table t1; + +--echo # +--echo # BUG#58205 - Valgrind failure in fn_format when called from +--echo # archive_discover +--echo # +create table `a/../`(a int) engine=archive; +select * from `a/../`; flush tables; +remove_file $mysqld_datadir/test/a@002f@002e@002e@002f.frm; +drop table `a/../`; + +# +# MDEV-4441 DROP DATABASE with a newly created ARCHIVE table does not work +# +create database test1; +create table test1.t1 (i int) engine=archive; +drop database test1; + +# +# MDEV-4456 Reverse discovery of ARCHIVE table on SELECT after disappearance of ARZ file +# +create table t1 (a int) engine=archive; +select * from t1; +flush tables; +remove_file $mysqld_datadir/test/t1.ARZ; +--error ER_NO_SUCH_TABLE +select * from t1; +--list_files $mysqld_datadir/test + +# +# MDEV-4955 discover of table non-existence on CREATE +# +create table t1 (a int) engine=archive; +select * from t1; +flush tables; +remove_file $mysqld_datadir/test/t1.ARZ; +create table t1 (a int) engine=archive; +remove_file $mysqld_datadir/test/t1.frm; +flush tables; +--error ER_TABLE_EXISTS_ERROR +create table t1 (a int) engine=archive; +drop table t1; + +# +# MDEV-11317: Error in deleting non existing .frm for tables with disocvery +# + +CREATE OR REPLACE TABLE t1 ( pk INT AUTO_INCREMENT PRIMARY KEY ) ENGINE = ARCHIVE; +CREATE OR REPLACE TABLE t1 ( pk INT AUTO_INCREMENT PRIMARY KEY ) ENGINE = ARCHIVE; +DROP TABLE t1; +CREATE OR REPLACE TABLE t1 ( pk INT AUTO_INCREMENT PRIMARY KEY ) ENGINE = ARCHIVE; +SELECT * FROM t1; +DROP TABLE t1; -- cgit v1.2.3