###################### mysql-test\t\init_slave_func.test ##################### # # # Variable Name: init_slave # # Scope: GLOBAL # # Access Type: Dynamic # # Data Type: string # # Default Value: # # Range: # # # # # # Creation Date: 2008-03-08 # # Author: Rizwan # # Modified: HHunger 2008-09-29 Fixed the bug by inserting the usual wait and # # SQL-Satements to control master and slave, # # deleted the sleep and made improvements like: # # - Replaced the opt file by dynamic variables, # # - Made the tests independant of the initial # # values of the global variables, # # - Reduced the test to the needed test case to # # save run time, # # - Beautification. # # # # Description: Test Cases of Dynamic System Variable init_slave # # that checks the behavior of this variable # # # # Reference: # # http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html # # # ############################################################################### source include/master-slave.inc; --echo connection slave connection slave; # # save the current values SET @start_max_connections= @@global.max_connections; SET @start_init_slave= @@global.init_slave; # setting of a global value with an effect on the next start of the slave server # check that @@global.init_slave could be set let $my_init_slave= 'SET @@global.max_connections = @@global.max_connections + 1'; eval SET @@global.init_slave = $my_init_slave; # show the data type of the variable --disable_warnings DROP TABLE IF EXISTS t1; CREATE TEMPORARY TABLE t1 AS SELECT @@global.init_slave AS my_column; --enable_warnings DESCRIBE t1; DROP TABLE t1; # # check that the new setting of @@global.init_slave becomes immediately visible eval SELECT @@global.init_slave = $my_init_slave; --echo Expect 1 # wait for the slave threads have set the global variable. let $wait_timeout= 90; let $wait_condition= SELECT @@global.max_connections = @start_max_connections; --source include/wait_condition_sp.inc # check that the action in init_slave does not happen immediately SELECT @@global.max_connections= @start_max_connections; --echo Expect 1 # # reset of the server STOP SLAVE; --wait_for_slave_to_stop RESET MASTER; RESET SLAVE; START SLAVE; source include/wait_for_slave_to_start.inc; # # wait for the slave threads have set the global variable. let $wait_timeout= 90; let $wait_condition= SELECT @@global.max_connections = @start_max_connections + 1; --source include/wait_condition_sp.inc # check that the action in init_slave was executed and had the intended effect SELECT @@global.max_connections = @start_max_connections + 1; --echo Expect 1 # # Setting a variable(which is local to a session) and must not be visible SET @@global.init_slave = "SET @a=5"; # STOP SLAVE; --wait_for_slave_to_stop RESET MASTER; RESET SLAVE; START SLAVE; source include/wait_for_slave_to_start.inc; # SHOW VARIABLES LIKE 'init_slave'; # expect NULL SELECT @a; --echo Expect NULL # # Clean up SET @@global.max_connections= @start_max_connections; SET @@global.init_slave= @start_init_slave; ################################################## # End of functionality Testing for init_slave # ##################################################