############## mysql-test/t/innodb_rollback_segments_basic.test ############### # # # Variable Name: innodb_rollback_segments # # Scope: Global # # Access Type: Static # # Data Type: numeric # # # # # # Creation Date: 2011-07-05 # # Author: Sunny Bains # # Modified: Kevin Lewis 2015-12-15 # # innodb_undo_logs -> innodb_rollback_segments # # # # Description: Read-Write config global variable innodb_rollback_segments # # * Value check # # * Scope check # # # ############################################################################### SET @start_global_value = @@global.innodb_rollback_segments; SELECT @start_global_value; --echo # --echo # Default value is 128 and exists as global only --echo # SELECT @@GLOBAL.innodb_rollback_segments; SELECT @@GLOBAL.innodb_rollback_segments >=0; SELECT @@GLOBAL.innodb_rollback_segments <=128; SELECT COUNT(@@GLOBAL.innodb_rollback_segments); SELECT COUNT(@@innodb_rollback_segments); SHOW GLOBAL variables LIKE 'innodb_rollback_segments'; SHOW SESSION variables LIKE 'innodb_rollback_segments'; --echo # Expected below: error 'Variable is a GLOBAL variable' --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@SESSION.innodb_rollback_segments; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT COUNT(@@SESSION.innodb_rollback_segments); --Error ER_BAD_FIELD_ERROR SELECT innodb_rollback_segments = @@SESSION.innodb_rollback_segments; --Error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@LOCAL.innodb_rollback_segments; --Error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT COUNT(@@LOCAL.innodb_rollback_segments); --Error ER_BAD_FIELD_ERROR SELECT innodb_rollback_segments = @@LOCAL.innodb_rollback_segments; --echo # --echo # Check if accessing variable with and without GLOBAL point to same variable --echo # SELECT @@innodb_rollback_segments = @@GLOBAL.innodb_rollback_segments; --echo # --echo # Check if the value in GLOBAL table matches value in performance_schema --echo # --disable_warnings SELECT * FROM performance_schema.global_variables WHERE variable_name='innodb_rollback_segments'; SELECT * FROM performance_schema.session_variables WHERE variable_name='innodb_rollback_segments'; --enable_warnings --echo # --echo # Check if value can be set --echo # SET GLOBAL innodb_rollback_segments=100; SELECT @@global.innodb_rollback_segments; --disable_warnings SELECT * FROM performance_schema.global_variables WHERE variable_name='innodb_rollback_segments'; SELECT * FROM performance_schema.session_variables WHERE variable_name='innodb_rollback_segments'; --enable_warnings --error ER_GLOBAL_VARIABLE SET SESSION innodb_rollback_segments=101; --echo # --echo # Valid values are 1 - 128 --echo # --error ER_WRONG_TYPE_FOR_VAR SET GLOBAL innodb_rollback_segments=1.1; --error ER_WRONG_TYPE_FOR_VAR SET GLOBAL innodb_rollback_segments=1e1; --error ER_WRONG_TYPE_FOR_VAR SET GLOBAL innodb_rollback_segments="foo"; SET GLOBAL innodb_rollback_segments=-7; SELECT @@global.innodb_rollback_segments; SET GLOBAL innodb_rollback_segments=0; SELECT @@global.innodb_rollback_segments; SET GLOBAL innodb_rollback_segments=50; SELECT @@global.innodb_rollback_segments; SET GLOBAL innodb_rollback_segments=129; SELECT @@global.innodb_rollback_segments; --disable_warnings SELECT * FROM performance_schema.global_variables WHERE variable_name='innodb_rollback_segments'; --enable_warnings --echo # --echo # cleanup --echo # SET @@global.innodb_rollback_segments = @start_global_value; SELECT @@global.innodb_rollback_segments;