1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# This is the test for bug #14169459.
--source include/have_innodb.inc
SET default_storage_engine=InnoDB;
--disable_query_log
# These values can change during the test
LET $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
# Set up some variables
LET $MYSQL_DATA_DIR = `select @@datadir`;
--enable_query_log
SET GLOBAL innodb_file_per_table=ON;
--echo #
--echo # Create a temporary table and drop it. Make sure the ibd file is gone.
--echo # Make sure a discarded table can be dropped with all files deleted.
--echo #
CREATE TEMPORARY TABLE t14169459_1 (a INT, b TEXT) engine=InnoDB;
CREATE TABLE t14169459_2 (a INT, b TEXT) engine=InnoDB;
INSERT INTO t14169459_1 VALUES (1, 'one'),(2, 'two');
INSERT INTO t14169459_2 VALUES (1, 'one'),(2, 'two');
SELECT * FROM t14169459_1;
SELECT * FROM t14169459_2;
SHOW CREATE TABLE t14169459_1;
SHOW CREATE TABLE t14169459_2;
--echo ### directory of MYSQL_DATA_DIR/test
--list_files $MYSQL_DATA_DIR/test
--echo ### directory of MYSQL_TMP_DIR/mysqld.1
--replace_regex /#sql[0-9a-f_]*/#sql<temporary>/
--list_files $MYSQL_TMP_DIR/mysqld.1 *.ibd
FLUSH TABLES t14169459_2 FOR EXPORT;
SELECT * FROM t14169459_2;
UNLOCK TABLES;
--echo ### directory of MYSQL_DATA_DIR/test
--list_files $MYSQL_DATA_DIR/test
ALTER TABLE t14169459_2 DISCARD TABLESPACE;
--error ER_TABLESPACE_DISCARDED
SELECT * FROM t14169459_2;
--echo ### directory of MYSQL_DATA_DIR/test
--list_files $MYSQL_DATA_DIR/test
--echo ### directory of MYSQL_TMP_DIR/mysqld.1
--replace_regex /#sql[0-9a-f_]*/#sql<temporary>/
--list_files $MYSQL_TMP_DIR/mysqld.1 *.ibd
#--file_exists $MYSQL_TMP_DIR/mysqld.1/#sql15f8_2_1.ibd
DROP TABLE t14169459_1;
DROP TABLE t14169459_2;
--echo ### directory of MYSQL_DATA_DIR/test
--list_files $MYSQL_DATA_DIR/test
--echo ### directory of MYSQL_TMP_DIR/mysqld.1
--replace_regex /#sql[0-9a-f_]*/#sql<temporary>/
--list_files $MYSQL_TMP_DIR/mysqld.1 *.ibd
-- disable_query_log
eval set global innodb_file_per_table=$innodb_file_per_table_orig;
-- enable_query_log