# # exists as a global only # # 2010-01-21 OBN - Added # # source include/not_embedded.inc; select @@global.rpl_semi_sync_master_enabled; SET @start_global_value = @@global.rpl_semi_sync_master_enabled; select @@global.rpl_semi_sync_master_enabled in (0,1); --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.rpl_semi_sync_master_enabled; show global variables like 'rpl_semi_sync_master_enabled'; show session variables like 'rpl_semi_sync_master_enabled'; select * from information_schema.global_variables where variable_name='rpl_semi_sync_master_enabled'; select * from information_schema.session_variables where variable_name='rpl_semi_sync_master_enabled'; # # show that it's writable # set global rpl_semi_sync_master_enabled=0; --error ER_GLOBAL_VARIABLE set session rpl_semi_sync_master_enabled=0; select @@global.rpl_semi_sync_master_enabled; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.rpl_semi_sync_master_enabled; show global variables like 'rpl_semi_sync_master_enabled'; show session variables like 'rpl_semi_sync_master_enabled'; select * from information_schema.global_variables where variable_name='rpl_semi_sync_master_enabled'; select * from information_schema.session_variables where variable_name='rpl_semi_sync_master_enabled'; set global rpl_semi_sync_master_enabled=1; --error ER_GLOBAL_VARIABLE set session rpl_semi_sync_master_enabled=1; select @@global.rpl_semi_sync_master_enabled; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.rpl_semi_sync_master_enabled; show global variables like 'rpl_semi_sync_master_enabled'; show session variables like 'rpl_semi_sync_master_enabled'; select * from information_schema.global_variables where variable_name='rpl_semi_sync_master_enabled'; select * from information_schema.session_variables where variable_name='rpl_semi_sync_master_enabled'; # # incorrect types # --error ER_WRONG_TYPE_FOR_VAR set global rpl_semi_sync_master_enabled=1.1; --error ER_WRONG_TYPE_FOR_VAR set global rpl_semi_sync_master_enabled=1e1; --error ER_WRONG_VALUE_FOR_VAR set global rpl_semi_sync_master_enabled="some text"; # # Test conflicting concurrent setting # --let $val_saved= `SELECT @@global.rpl_semi_sync_master_enabled` connect (con1,localhost,root,,); connect (con2,localhost,root,,); --let $iter=100 --disable_query_log while ($iter) { --connection con1 --send_eval SET @@global.rpl_semi_sync_master_enabled = $iter % 2 --connection con2 --send_eval SET @@global.rpl_semi_sync_master_enabled = ($iter + 1) % 2 --connection con1 reap; --connection con2 reap; --dec $iter } --enable_query_log disconnect con1; disconnect con2; --connection default --eval SET @@global.rpl_semi_sync_master_enabled = $val_saved # # Cleanup # SET @@global.rpl_semi_sync_master_enabled = @start_global_value; select @@global.rpl_semi_sync_master_enabled;