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
|
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;
|