################# mysql-test\t\innodb_max_dirty_pages_pct_func.test ########## # # # Variable Name: innodb_max_dirty_pages_pct # # Scope: GLOBAL # # Access Type: Dynamic # # Data Type: Numeric # # Default Value: 90 # # Range: 0-100 # # # # # # Creation Date: 2008-03-08 # # Author: Rizwan # # # #Description: Test Cases of Dynamic System Variable innodb_max_dirty_pages_pct# # that checks the behavior of this variable # # # # Reference: http://dev.mysql.com/doc/refman/5.1/en/ # # server-system-variables.html # # # ############################################################################### --source include/have_innodb.inc --echo '#--------------------FN_DYNVARS_044_02-------------------------#' ########################################################################### # Check if setting innodb_max_dirty_pages_pct is changed in new connection# ########################################################################### SET @@global.innodb_max_dirty_pages_pct = 80; --echo 'connect (con1,localhost,root,,,,)' connect (con1,localhost,root,,,,); --echo 'connection con1' connection con1; SELECT @@global.innodb_max_dirty_pages_pct; SET @@global.innodb_max_dirty_pages_pct = 70; --echo 'connect (con2,localhost,root,,,,)' connect (con2,localhost,root,,,,); --echo 'connection con2' connection con2; SELECT @@global.innodb_max_dirty_pages_pct; disconnect con2; disconnect con1; --echo '#--------------------FN_DYNVARS_044_02-------------------------#' ################################################################### # Begin the functionality Testing of innodb_max_dirty_pages_pct # ################################################################### --echo 'connection default' connection default; --disable_query_log --disable_warnings DROP PROCEDURE IF EXISTS add_records; DROP PROCEDURE IF EXISTS add_until; DROP PROCEDURE IF EXISTS check_pct; DROP FUNCTION IF EXISTS dirty_pct; DROP TABLE IF EXISTS t1; --enable_warnings DELIMITER //; CREATE PROCEDURE add_records(IN NUM INT) BEGIN START TRANSACTION; WHILE (NUM>0) DO INSERT INTO t1(b) VALUES('MYSQL'); SET NUM = NUM - 1; END WHILE; COMMIT; END// CREATE FUNCTION dirty_pct() RETURNS DECIMAL(20,17) BEGIN DECLARE res DECIMAL(20,17); DECLARE a1,b1 VARCHAR(256); DECLARE a2,b2 VARCHAR(256); DECLARE dirty CURSOR FOR SELECT * FROM information_schema.global_status WHERE variable_name LIKE 'Innodb_buffer_pool_pages_dirty' UNION SELECT * FROM information_schema.session_status WHERE variable_name LIKE 'Innodb_buffer_pool_pages_dirty'; DECLARE total CURSOR FOR SELECT * FROM information_schema.global_status WHERE variable_name LIKE 'Innodb_buffer_pool_pages_total' UNION SELECT * FROM information_schema.session_status WHERE variable_name LIKE 'Innodb_buffer_pool_pages_total'; OPEN dirty; OPEN total; FETCH dirty INTO a1, b1; FETCH total INTO a2, b2; SET res = ( CONVERT(b1,DECIMAL)*100)/CONVERT(b2,DECIMAL); CLOSE dirty; CLOSE total; RETURN res; END// CREATE PROCEDURE add_until(IN NUM DECIMAL) BEGIN DECLARE pct,last DECIMAL(20,17); SET pct = dirty_pct(); SET last = 0; WHILE (pct