summaryrefslogtreecommitdiff
path: root/mysql-test/suite/binlog/t/binlog_truncate_innodb.test
blob: 511b82bd717b9c03f9f19c324a067d6eb14d2bd3 (plain)
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
source include/have_log_bin.inc;
source include/have_innodb.inc;

let $engine = InnoDB;

SET @old_binlog_format=@@binlog_format;

SET BINLOG_FORMAT=ROW;
RESET MASTER;

source include/binlog_truncate.test;

--echo # Even though the isolation level might be permissive, truncate
--echo # table follows a stricter isolation as its locking is based on
--echo # (exclusive) metadata locks.

let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
source include/binlog_truncate.test;

let $before_truncate = SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
source include/binlog_truncate.test;

let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
source include/binlog_truncate.test;

let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
source include/binlog_truncate.test;

SET BINLOG_FORMAT=STATEMENT;
RESET MASTER;

source include/binlog_truncate.test;

--echo # Truncate is not supported for SBR if the isolation level is
--echo # READ UNCOMMITTED or READ COMMITTED. These specific isolation
--echo # levels are tested elsewhere.

let $before_truncate = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
source include/binlog_truncate.test;

let $before_truncate = SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
source include/binlog_truncate.test;

SET @@global.binlog_format = @old_binlog_format;
SET @@session.binlog_format = @old_binlog_format;