diff options
Diffstat (limited to '')
-rw-r--r-- | mysql-test/suite/innodb/t/truncate.test | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/truncate.test b/mysql-test/suite/innodb/t/truncate.test new file mode 100644 index 00000000..436fc01b --- /dev/null +++ b/mysql-test/suite/innodb/t/truncate.test @@ -0,0 +1,81 @@ +--source include/have_innodb.inc + +CREATE TABLE t (a SERIAL) ENGINE=InnoDB; + +connect (dml,localhost,root); +# At the end of this statement, close_thread_tables() +# should add the open table handle to the table definition cache (tdc). +select * from t; + +connection default; +# This should purge the handle from the tdc; +# otherwise ha_innobase::truncate() would hang, +# waiting for the reference count to drop to 0. +TRUNCATE TABLE t; +disconnect dml; + +DROP TABLE t; + +--echo # +--echo # MDEV-17831 TRUNCATE TABLE removes ROW_FORMAT=COMPRESSED +--echo # +--disable_query_log +SET @save_innodb_read_only_compressed=@@GLOBAL.innodb_read_only_compressed; +SET GLOBAL innodb_read_only_compressed=OFF; +--enable_query_log +CREATE TABLE t1 (a SERIAL) ENGINE=InnoDB KEY_BLOCK_SIZE=4; +TRUNCATE TABLE t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # +SHOW TABLE STATUS; +--disable_query_log +SET GLOBAL innodb_read_only_compressed=@save_innodb_read_only_compressed; +--enable_query_log +DROP TABLE t1; + +--echo # +--echo # MDEV-17859 Operating system errors in file operations +--echo # after failed CREATE +--echo # +let $MYSQLD_DATADIR= `select @@datadir`; +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1); +call mtr.add_suppression("InnoDB: (Operating system )?[Ee]rror number"); +call mtr.add_suppression("InnoDB: Cannot create file '.*t1\\.ibd"); +FLUSH TABLES; +--move_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/hidden.frm +--error ER_TABLE_EXISTS_ERROR +CREATE TABLE t1 (a INT) ENGINE=InnoDB; +--move_file $MYSQLD_DATADIR/test/hidden.frm $MYSQLD_DATADIR/test/t1.frm +SELECT * FROM t1; +DROP TABLE t1; + +--echo # +--echo # MDEV-17885 TRUNCATE on temporary table causes ER_GET_ERRNO +--echo # +CREATE TEMPORARY TABLE t1 (a INT) ENCRYPTED=NO ENGINE=InnoDB; +INSERT INTO t1 VALUES(1); +TRUNCATE t1; +SELECT * FROM t1; +DROP TEMPORARY TABLE t1; + +--echo # +--echo # MDEV-23705 Assertion 'table->data_dir_path || !space' +--echo # +CREATE TABLE t(c INT) ENGINE=InnoDB; +ALTER TABLE t DISCARD TABLESPACE; +RENAME TABLE t TO u; +TRUNCATE u; +TRUNCATE u; +DROP TABLE u; + +--echo # +--echo # Test for a regression found during MDEV-25506 rewrite of DROP +--echo # +CREATE TEMPORARY TABLE t1 (a INT) ENGINE=InnoDB; +LOCK TABLE t1 READ; +TRUNCATE TABLE t1; +TRUNCATE TABLE t1; +UNLOCK TABLES; +DROP TEMPORARY TABLE t1; + +--echo # End of 10.6 tests |