|
| 1 | +############# suite/sys_vars/t/innodb_log_optimize_ddl_basic.test ############# |
| 2 | +# # |
| 3 | +# Variable Name: innodb_log_optimize_ddl # |
| 4 | +# Scope: Global # |
| 5 | +# Access Type: Dynamic # |
| 6 | +# Data Type: boolean # |
| 7 | +# # |
| 8 | +# The variable was introduced by # |
| 9 | +# MDEV-16809 Allow full redo logging for ALTER TABLE # |
| 10 | +# # |
| 11 | +############################################################################### |
| 12 | + |
| 13 | +--source include/have_innodb.inc |
| 14 | + |
| 15 | +#### Reveal that the global innodb system variable exists |
| 16 | +SELECT COUNT(@@GLOBAL.innodb_log_optimize_ddl); |
| 17 | +--echo 1 Expected |
| 18 | + |
| 19 | +#### Reveal that no session innodb system variable exists |
| 20 | +--error ER_INCORRECT_GLOBAL_LOCAL_VAR |
| 21 | +SELECT COUNT(@@SESSION.innodb_log_optimize_ddl); |
| 22 | +--echo Expected error 'Variable is a GLOBAL variable' |
| 23 | + |
| 24 | +#### Display the default value |
| 25 | +SELECT @@GLOBAL.innodb_log_optimize_ddl; |
| 26 | + |
| 27 | +SELECT @@GLOBAL.innodb_log_optimize_ddl INTO @innodb_log_optimize_ddl_save; |
| 28 | +#### Check if the value can be set |
| 29 | +SET @@GLOBAL.innodb_log_optimize_ddl = ON; |
| 30 | +SET @@GLOBAL.innodb_log_optimize_ddl = OFF; |
| 31 | + |
| 32 | +#### Check if disallowed values are refused |
| 33 | +--error ER_WRONG_VALUE_FOR_VAR |
| 34 | +SET @@GLOBAL.innodb_log_optimize_ddl = 13; |
| 35 | +--error ER_WRONG_VALUE_FOR_VAR |
| 36 | +SET @@GLOBAL.innodb_log_optimize_ddl = 'ABC'; |
| 37 | + |
| 38 | +#### Check if the initial value was in the range of supported values |
| 39 | +# We use 0 and 1 in order to avoid a warning. |
| 40 | +SELECT @@GLOBAL.innodb_log_optimize_ddl = 0 |
| 41 | + OR @@GLOBAL.innodb_log_optimize_ddl = 1 AS col; |
| 42 | +--echo 1 Expected |
| 43 | + |
| 44 | +#### Check if the value presented without GLOBAL point is the same |
| 45 | +SELECT @@innodb_log_optimize_ddl = @@GLOBAL.innodb_log_optimize_ddl AS col; |
| 46 | +--echo 1 Expected |
| 47 | + |
| 48 | +#### Show the value presented in information_schema and SHOW VARIABLES |
| 49 | +# We do not want to get and than maybe suppress the print of |
| 50 | +# Warning 1292 Truncated incorrect DOUBLE value: 'OFF' |
| 51 | +# and so we simply print the value and do not compare. |
| 52 | +SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES |
| 53 | +WHERE VARIABLE_NAME='innodb_log_optimize_ddl'; |
| 54 | +SHOW VARIABLES WHERE VARIABLE_NAME='innodb_log_optimize_ddl'; |
| 55 | + |
| 56 | +#### Show that variants with @@local. and without @@ do not exist. |
| 57 | +--Error ER_INCORRECT_GLOBAL_LOCAL_VAR |
| 58 | +SELECT @@local.innodb_log_optimize_ddl; |
| 59 | +--echo Expected error 'Variable is a GLOBAL variable' |
| 60 | +--Error ER_BAD_FIELD_ERROR |
| 61 | +SELECT innodb_log_optimize_ddl; |
| 62 | + |
| 63 | +#### Restore the initial value |
| 64 | +SET GLOBAL innodb_log_optimize_ddl = @innodb_log_optimize_ddl_save; |
| 65 | + |
0 commit comments