summaryrefslogtreecommitdiff
path: root/mysql-test/suite/galera/t/galera_sequences.test
blob: 613823d83e9053a3a1b25c89b09fbf69c64e1d71 (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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
--source include/galera_cluster.inc
--source include/have_innodb.inc

#
# MDEV-19353 : Alter Sequence do not replicate to another nodes with in Galera Cluster
#

--connection node_1
CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");
CALL mtr.add_suppression("WSREP: CREATE TABLE isolation failure");
--connection node_2

CALL mtr.add_suppression("SEQUENCES declared without `NOCACHE` will not behave correctly in galera cluster.");

--connection node_1
CREATE SEQUENCE `seq` start with 1 minvalue 1 maxvalue 1000000 increment by 0 cache 1000 nocycle ENGINE=InnoDB;
SHOW CREATE SEQUENCE seq;

--connection node_2
SHOW CREATE SEQUENCE seq;

--connection node_1
ALTER SEQUENCE seq MAXVALUE = 10000;
SHOW CREATE SEQUENCE seq;

--connection node_2
SHOW CREATE SEQUENCE seq;

--connection node_1
DROP SEQUENCE seq;
--error ER_NO_SUCH_TABLE
SHOW CREATE SEQUENCE seq;

--connection node_2
--error ER_NO_SUCH_TABLE
SHOW CREATE SEQUENCE seq;

#
# MDEV-18848 : Galera: 10.4 node crashed with Assertion `client_state.transaction().active()` after altering SEQUENCE table's engine to myisam and back to innodb
#
--connection node_1
CREATE SEQUENCE Seq1_1     START WITH 1     INCREMENT BY 1;
select NEXT VALUE FOR Seq1_1;
alter table Seq1_1 engine=myisam;
select NEXT VALUE FOR Seq1_1;
alter table Seq1_1 engine=innodb;
select NEXT VALUE FOR Seq1_1;

--connection node_2
SHOW CREATE SEQUENCE Seq1_1;
select NEXT VALUE FOR Seq1_1;

--connection node_1
DROP SEQUENCE Seq1_1;

#
# MDEV-24045 : Assertion client_state_.mode() != wsrep::client_state::m_toi failed in int wsrep::transaction::before_commit()
#

--connection node_1
CREATE TABLE t2 (d CHAR(1)KEY);
SET SESSION autocommit=0;
INSERT INTO t2 VALUES(1);
CREATE TEMPORARY SEQUENCE seq1 NOCACHE ENGINE=INNODB;
CREATE SEQUENCE seq2 NOCACHE ENGINE=INNODB;
COMMIT;
SET SESSION AUTOCOMMIT=1;
SHOW CREATE TABLE seq1;
--connection node_2
--error ER_NO_SUCH_TABLE
SHOW CREATE SEQUENCE seq1;
SHOW CREATE SEQUENCE seq2;
--connection node_1
SET SESSION autocommit=1;
DROP SEQUENCE seq1;
DROP SEQUENCE seq2;
DROP TABLE t2;
#
# Case2
#
SET SESSION AUTOCOMMIT=0;
SET SESSION wsrep_OSU_method='RSU';
CREATE TABLE t1(c1 VARCHAR(10));
INSERT INTO t1 (c1) VALUES('');
create temporary sequence sq1 NOCACHE engine=innodb;
create sequence sq2 NOCACHE engine=innodb;
COMMIT;
SHOW CREATE SEQUENCE sq1;
SHOW CREATE SEQUENCE sq2;
--connection node_2
--error ER_NO_SUCH_TABLE
SHOW CREATE SEQUENCE sq1;
--error ER_NO_SUCH_TABLE
SHOW CREATE SEQUENCE sq2;
--connection node_1
SET SESSION AUTOCOMMIT=1;
DROP TABLE t1;
DROP SEQUENCE sq1;
DROP SEQUENCE sq2;
SET SESSION wsrep_OSU_method='TOI';