mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Manual merge from mysql-5.1-rep+2.
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
CREATE TABLE t1 (a VARCHAR(100));
|
||||
CREATE TEMPORARY TABLE t2 (a VARCHAR(100));
|
||||
# Test allow switching @@SESSION.binlog_format from MIXED to STATEMENT
|
||||
# when there are open temp tables and we are logging in statement based format.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
STATEMENT
|
||||
# Test allow switching @@SESSION.binlog_format from STATEMENT to
|
||||
# STATEMENT when there are open temp tables.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
STATEMENT
|
||||
INSERT INTO t1 VALUES ('statement based');
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
STATEMENT
|
||||
# Test allow switching @@SESSION.binlog_format from STATEMENT to
|
||||
# MIXED when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
# Test allow switching @@SESSION.binlog_format from MIXED to MIXED
|
||||
# when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
INSERT INTO t2 VALUES (UUID());
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
# Test forbit switching @@SESSION.binlog_format from MIXED to STATEMENT
|
||||
# when there are open temp tables and we are logging in row based format.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
ROW
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
# Test allow switching @@SESSION.binlog_format from ROW to MIXED
|
||||
# when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
MIXED
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
# Test allow switching @@SESSION.binlog_format from MIXED to ROW
|
||||
# when there are open temp tables.
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
ROW
|
||||
# Test allow switching @@SESSION.binlog_format from ROW to ROW
|
||||
# when there are open temp tables.
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
ROW
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
# Test forbit switching @@SESSION.binlog_format from ROW to STATEMENT
|
||||
# when there are open temp tables.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
ERROR HY000: Cannot switch out of the row-based binary log format when the session has open temporary tables
|
||||
SELECT @@SESSION.binlog_format;
|
||||
@@SESSION.binlog_format
|
||||
ROW
|
||||
DROP TEMPORARY TABLE t2;
|
||||
DROP TABLE t1;
|
@@ -0,0 +1,76 @@
|
||||
#
|
||||
# Bug #45855 row events in binlog after switch from binlog_fmt=mix to stmt with open tmp tbl
|
||||
# Bug #45856 can't switch from binlog_format=row to mix with open tmp tbl
|
||||
# This test verfies if the program will generate ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
|
||||
# error and forbid switching @@SESSION.binlog_format from MIXED or ROW to
|
||||
# STATEMENT when there are open temp tables and we are logging in row format.
|
||||
# There is no error in any other case.
|
||||
#
|
||||
|
||||
source include/have_binlog_format_mixed.inc;
|
||||
|
||||
SELECT @@SESSION.binlog_format;
|
||||
CREATE TABLE t1 (a VARCHAR(100));
|
||||
CREATE TEMPORARY TABLE t2 (a VARCHAR(100));
|
||||
|
||||
--echo # Test allow switching @@SESSION.binlog_format from MIXED to STATEMENT
|
||||
--echo # when there are open temp tables and we are logging in statement based format.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
--echo # Test allow switching @@SESSION.binlog_format from STATEMENT to
|
||||
--echo # STATEMENT when there are open temp tables.
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
INSERT INTO t1 VALUES ('statement based');
|
||||
SELECT @@SESSION.binlog_format;
|
||||
--echo # Test allow switching @@SESSION.binlog_format from STATEMENT to
|
||||
--echo # MIXED when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
--echo # Test allow switching @@SESSION.binlog_format from MIXED to MIXED
|
||||
--echo # when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
INSERT INTO t2 VALUES (UUID());
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
--echo # Test forbit switching @@SESSION.binlog_format from MIXED to STATEMENT
|
||||
--echo # when there are open temp tables and we are logging in row based format.
|
||||
--ERROR ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
--echo # Test allow switching @@SESSION.binlog_format from ROW to MIXED
|
||||
--echo # when there are open temp tables.
|
||||
SET SESSION binlog_format = MIXED;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
--echo # Test allow switching @@SESSION.binlog_format from MIXED to ROW
|
||||
--echo # when there are open temp tables.
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
--echo # Test allow switching @@SESSION.binlog_format from ROW to ROW
|
||||
--echo # when there are open temp tables.
|
||||
SET SESSION binlog_format = ROW;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
INSERT INTO t1 VALUES ('row based');
|
||||
--echo # Test forbit switching @@SESSION.binlog_format from ROW to STATEMENT
|
||||
--echo # when there are open temp tables.
|
||||
--ERROR ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
|
||||
SET SESSION binlog_format = STATEMENT;
|
||||
SELECT @@SESSION.binlog_format;
|
||||
|
||||
DROP TEMPORARY TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user