summaryrefslogtreecommitdiff
path: root/mysql-test/main/trans_read_only.test
blob: 38b2a833216ee4fe3ca3584580c5aa4df919c155 (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
46
47
48
49
--source include/not_embedded.inc

--echo #
--echo # WL#5968: Implement START TRANSACTION READ (WRITE|ONLY);
--echo #

--echo #
--echo # Test9:  The --transaction-read-only startup option.

--echo # Check that the option was set by the .opt file.
SELECT @@tx_read_only;

--echo # Also for new connections.
connect (con1, localhost, root);
SELECT @@tx_read_only;
SET SESSION TRANSACTION READ WRITE;
SELECT @@tx_read_only;
disconnect con1;
--source include/wait_until_disconnected.inc

connection default;
SELECT @@tx_read_only;


--echo #
--echo # Test 10: SET TRANSACTION / START TRANSACTION + implicit commit.

SET SESSION TRANSACTION READ WRITE;
--disable_ps_protocol
SET TRANSACTION READ ONLY;
--echo # Since DDL does implicit commit before starting, SET TRANSACTION
--echo # will have no effect because the "next" transaction will already
--echo # be over before the DDL statement starts.
CREATE TABLE t1 (a INT);

START TRANSACTION READ ONLY;
--echo # The same happens with START TRANSACTION
DROP TABLE t1;
--enable_ps_protocol

--echo #
--echo # Test 11: INSERT DELAYED

CREATE TABLE t1(a INT);
START TRANSACTION READ ONLY;
--error ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION
INSERT DELAYED INTO t1 VALUES (1);
COMMIT;
DROP TABLE t1;