1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
# default value
RESET MASTER;
SET @start_global_value = @@global.enforce_gtid_consistency;
SELECT @start_global_value;
#
# exists as global only
#
select @@global.enforce_gtid_consistency;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
select @@session.enforce_gtid_consistency;
show global variables like 'enforce_gtid_consistency';
show session variables like 'enforce_gtid_consistency';
--disable_warnings
select * from performance_schema.global_variables where variable_name='enforce_gtid_consistency';
select * from performance_schema.session_variables where variable_name='enforce_gtid_consistency';
--enable_warnings
#
# show that it is global writable
# test all settable values
#
--disable_warnings
set global enforce_gtid_consistency= 1;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= 0;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= 2;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= ON;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= OFF;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= TRUE;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= FALSE;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
set global enforce_gtid_consistency= WARN;
select @@global.enforce_gtid_consistency;
show variables like 'enforce_gtid_consistency';
select variable_value from performance_schema.global_variables
where variable_name= 'enforce_gtid_consistency';
--enable_warnings
--error ER_GLOBAL_VARIABLE
set session enforce_gtid_consistency= 1;
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
select @@session.enforce_gtid_consistency;
--error ER_WRONG_VALUE_FOR_VAR
set global enforce_gtid_consistency= -1;
--error ER_WRONG_VALUE_FOR_VAR
set global enforce_gtid_consistency= 3;
--error ER_WRONG_VALUE_FOR_VAR
set global enforce_gtid_consistency= NULL;
--error ER_WRONG_VALUE_FOR_VAR
set global enforce_gtid_consistency= '';
set global enforce_gtid_consistency= default;
# can't set anything else than ON when gtid_mode=ON
set global enforce_gtid_consistency= ON;
set global gtid_mode=off_permissive;
set global gtid_mode=on_permissive;
set global gtid_mode=on;
--error ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON
set global enforce_gtid_consistency= WARN;
--error ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON
set global enforce_gtid_consistency= OFF;
set global enforce_gtid_consistency= ON;
set global enforce_gtid_consistency= TRUE;
set global enforce_gtid_consistency= 1;
set global gtid_mode=on_permissive;
set global gtid_mode=off_permissive;
# test enforce_gtid_consistency changes with autocommit off
CREATE TABLE t1 (a INT);
SET AUTOCOMMIT = 0;
## Confirm that enforce_gtid_consistency cannot be changed when a transaction
## is in progress and gtid_next is set to 'UUID:No'.
SET SESSION GTID_NEXT = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1';
INSERT INTO t1 VALUES (1);
# transaction in progress, gtid_mode variable cannot be changed
--error ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'off';
COMMIT;
## Confirm that enforce_gtid_consistency cannot be changed when gtid_mode is
## set to 'UUID:No'.
SET SESSION GTID_NEXT = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2';
# GTID_NEXT was set, enforce_gtid_consistency variable cannot be changed
--error ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'off';
COMMIT;
## Confirm that enforce_gtid_consistency cannot be changed during an anonymous
## transaction.
SET GTID_NEXT = 'ANONYMOUS';
--error ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'off';
COMMIT;
# Set back to default and cleanup
SET AUTOCOMMIT = 1;
SET SESSION GTID_NEXT = 'AUTOMATIC';
SET GLOBAL GTID_MODE = 'off';
DROP TABLE t1;
set global enforce_gtid_consistency= @start_global_value;
#
# See binlog_enforce_gtid_consistency.test for a comprehensive test case.
#
|