mysql5/mysql-5.7.27/mysql-test/t/temp_pool.test

43 lines
1.4 KiB
Plaintext

--source include/linux.inc
--source include/not_embedded.inc
--echo #
--echo # BUG#11747548:DETECT ORPHAN TEMP-POOL FILES, AND HANDLE GRACEFULLY.
--echo #
--echo #Set up.
#
# Note: We are explicitly using MyISAM engine here as the TC is trying
# to check for MyISAM files MYD/MYI. With InnoDB no such files are created
# instead intrinsic tables are stored in shared temporary tablespace.
#
let $internal_se = `select @@internal_tmp_disk_storage_engine`;
set global internal_tmp_disk_storage_engine = myisam;
CREATE TABLE pid_table(pid_no INT);
CREATE TABLE t1 (a BLOB);
INSERT INTO t1 VALUES (1), (2);
--echo #Create MYD and MYI files for intrinsic temp table.
--let $pid_file=`SELECT @@pid_file`
--replace_result $pid_file pid_file
--eval LOAD DATA LOCAL INFILE '$pid_file' INTO TABLE pid_table
--let $temp_file_MYD= `SELECT CONCAT('#sql_', LCASE(HEX(pid_no)), '_0', '.MYD') FROM pid_table`
--let $temp_file_MYI= `SELECT CONCAT('#sql_', LCASE(HEX(pid_no)), '_0', '.MYI') FROM pid_table`
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file_MYD
EOF
--write_file $MYSQLTEST_VARDIR/tmp/$temp_file_MYI
EOF
--echo #Reports an error since the temp file already exists.
--replace_regex /.*Can't create\/write *.*/Can't create or write to file/
--error 1
SELECT a FROM t1 ORDER BY rand(1);
--echo #With patch, the query executes successfully.
SELECT a FROM t1 ORDER BY rand(1);
--echo #cleanup
DROP TABLE t1, pid_table;
eval set global internal_tmp_disk_storage_engine = $internal_se;