mirror of
https://github.com/MariaDB/server.git
synced 2025-07-02 14:22:51 +03:00
When a binlog is replayed into a server, e.g.: $ mysqlbinlog binlog.000001 | mysql it sets a pseudo slave mode on the client connection in order to server be able to read binlog events, there is, a format description event is needed to correctly read following events. Also this pseudo slave mode applies to the current connection replication rules that are needed to correctly apply binlog events. If a binlog dump is sourced on a connection, this pseudo slave mode will remains after it, what will apply unexpected rules from customer perspective to following commands. Added a new SET statement to binlog dump that will unset pseudo slave mode at the end of dump file.
120 lines
4.5 KiB
Plaintext
120 lines
4.5 KiB
Plaintext
SET @session_start_value = @@session.pseudo_slave_mode;
|
||
SELECT @session_start_value;
|
||
@session_start_value
|
||
0
|
||
'#--------------------FN_DYNVARS_156_01------------------------#'
|
||
SET @@session.pseudo_slave_mode = 0;
|
||
Warnings:
|
||
Warning 1231 'pseudo_slave_mode' change was ineffective.
|
||
SET @@session.pseudo_slave_mode = DEFAULT;
|
||
Warnings:
|
||
Warning 1231 'pseudo_slave_mode' change was ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
SET @@session.pseudo_slave_mode = 1;
|
||
SET @@session.pseudo_slave_mode = DEFAULT;
|
||
Warnings:
|
||
Warning 1231 Slave applier execution mode not active, statement ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
'#---------------------FN_DYNVARS_156_02-------------------------#'
|
||
SET pseudo_slave_mode = 1;
|
||
SELECT @@pseudo_slave_mode;
|
||
@@pseudo_slave_mode
|
||
1
|
||
SELECT session.pseudo_slave_mode;
|
||
ERROR 42S02: Unknown table 'session' in field list
|
||
SELECT local.pseudo_slave_mode;
|
||
ERROR 42S02: Unknown table 'local' in field list
|
||
SET session pseudo_slave_mode = 0;
|
||
Warnings:
|
||
Warning 1231 Slave applier execution mode not active, statement ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
'#--------------------FN_DYNVARS_156_03------------------------#'
|
||
SET @@session.pseudo_slave_mode = 0;
|
||
Warnings:
|
||
Warning 1231 'pseudo_slave_mode' change was ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
SET @@session.pseudo_slave_mode = 1;
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
1
|
||
'#--------------------FN_DYNVARS_156_04-------------------------#'
|
||
SET @@session.pseudo_slave_mode = -1;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of '-1'
|
||
SET @@session.pseudo_slave_mode = 2;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of '2'
|
||
SET @@session.pseudo_slave_mode = "T";
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of 'T'
|
||
SET @@session.pseudo_slave_mode = "Y";
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of 'Y'
|
||
SET @@session.pseudo_slave_mode = TR<54>E;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of 'TR<54>E'
|
||
SET @@session.pseudo_slave_mode = <20>N;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of '<27>N'
|
||
SET @@session.pseudo_slave_mode = OF;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of 'OF'
|
||
SET @@session.pseudo_slave_mode = <20>FF;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of '<27>FF'
|
||
SET @@session.pseudo_slave_mode = '<27>';
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of '<27>'
|
||
SET @@session.pseudo_slave_mode = NO;
|
||
ERROR 42000: Variable 'pseudo_slave_mode' can't be set to the value of 'NO'
|
||
'#-------------------FN_DYNVARS_156_05----------------------------#'
|
||
SET @@global.pseudo_slave_mode = 0;
|
||
ERROR HY000: Variable 'pseudo_slave_mode' is a SESSION variable and can't be used with SET GLOBAL
|
||
SELECT @@global.pseudo_slave_mode;
|
||
ERROR HY000: Variable 'pseudo_slave_mode' is a SESSION variable
|
||
'#----------------------FN_DYNVARS_156_06------------------------#'
|
||
SELECT count(VARIABLE_VALUE) FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='pseudo_slave_mode';
|
||
count(VARIABLE_VALUE)
|
||
1
|
||
'#----------------------FN_DYNVARS_156_07------------------------#'
|
||
SELECT IF(@@session.pseudo_slave_mode, "ON", "OFF") = VARIABLE_VALUE
|
||
FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
||
WHERE VARIABLE_NAME='pseudo_slave_mode';
|
||
IF(@@session.pseudo_slave_mode, "ON", "OFF") = VARIABLE_VALUE
|
||
1
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
1
|
||
SELECT VARIABLE_VALUE
|
||
FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
||
WHERE VARIABLE_NAME='pseudo_slave_mode';
|
||
VARIABLE_VALUE
|
||
ON
|
||
'#---------------------FN_DYNVARS_156_08-------------------------#'
|
||
SET @@session.pseudo_slave_mode = OFF;
|
||
Warnings:
|
||
Warning 1231 Slave applier execution mode not active, statement ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
SET @@session.pseudo_slave_mode = ON;
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
1
|
||
'#---------------------FN_DYNVARS_156_09----------------------#'
|
||
SET @@session.pseudo_slave_mode = TRUE;
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
1
|
||
SET @@session.pseudo_slave_mode = FALSE;
|
||
Warnings:
|
||
Warning 1231 Slave applier execution mode not active, statement ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|
||
SET @@session.pseudo_slave_mode = @session_start_value;
|
||
Warnings:
|
||
Warning 1231 'pseudo_slave_mode' change was ineffective.
|
||
SELECT @@session.pseudo_slave_mode;
|
||
@@session.pseudo_slave_mode
|
||
0
|