polardbxengine/mysql-test/suite/innodb/t/open_file_lru.test

85 lines
1.7 KiB
Plaintext

#
# Check the file open/close LRU code
#
--source include/have_debug.inc
--source include/big_test.inc
--source include/have_innodb_max_16k.inc
SET default_storage_engine=InnoDB;
--disable_query_log
SET @open_files = (select @@innodb_open_files);
SET @total_tables = @open_files + 250;
--enable_query_log
SELECT @total_tables;
CREATE DATABASE lru_test;
USE lru_test;
SET GLOBAL innodb_file_per_table = on;
DELIMITER |;
CREATE PROCEDURE create_tables(IN max_tables INT)
BEGIN
DECLARE i INT UNSIGNED DEFAULT 0;
WHILE i < max_tables DO
SET @name = CONCAT("t_", i);
SET @sql = CONCAT('CREATE TABLE ', @name, '(c INT) ENGINE=InnoDB');
PREPARE create_table FROM @sql;
EXECUTE create_table;
DEALLOCATE PREPARE create_table;
SET i = i + 1;
END WHILE;
END|
CREATE PROCEDURE ins(IN max_tables INT)
BEGIN
DECLARE i INT UNSIGNED DEFAULT 0;
WHILE i < max_tables DO
SET @name = CONCAT("t_", i);
SET @sql = CONCAT('INSERT INTO ', @name, ' VALUES(0)');
PREPARE insert_value FROM @sql;
EXECUTE insert_value;
DEALLOCATE PREPARE insert_value;
SET i = i + 1;
END WHILE;
END|
CREATE PROCEDURE sel(IN max_tables INT)
BEGIN
DECLARE i INT UNSIGNED DEFAULT 0;
WHILE i < max_tables DO
SET @name = CONCAT("t_", i);
SET @sql = CONCAT('SELECT * FROM ', @name);
PREPARE select_from FROM @sql;
EXECUTE select_from ;
DEALLOCATE PREPARE select_from;
SET i = i + 1;
END WHILE;
END|
DELIMITER ;|
CALL create_tables(@total_tables);
CALL ins(@total_tables);
CALL sel(@total_tables);
DROP PROCEDURE create_tables;
DROP PROCEDURE ins;
DROP PROCEDURE sel;
DROP DATABASE lru_test;
--disable_query_log
call mtr.add_suppression("Too many .* files are open the maximum allowed value is .*");
--enable_query_log