mirror of https://github.com/MariaDB/server
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
255 lines
5.8 KiB
255 lines
5.8 KiB
--source include/galera_cluster.inc
|
|
--source include/have_sequence.inc
|
|
|
|
--disable_ps2_protocol
|
|
#
|
|
# Case 1: Separate transactions from few connections
|
|
#
|
|
--connection node_1
|
|
CREATE SEQUENCE s INCREMENT=0 CACHE=5 ENGINE=InnoDB;
|
|
CREATE TABLE t1 (f1 INT PRIMARY KEY DEFAULT NEXTVAL(s), f2 INT) ENGINE=InnoDB;
|
|
|
|
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
|
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
|
|
|
|
--connection node_1
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
COMMIT;
|
|
|
|
--connection node_2
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
COMMIT;
|
|
|
|
--connection node_2a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
COMMIT;
|
|
|
|
--connection node_1a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
COMMIT;
|
|
|
|
--connection node_2
|
|
SELECT LASTVAL(s);
|
|
--connection node_1
|
|
SELECT LASTVAL(s);
|
|
--connection node_2a
|
|
SELECT LASTVAL(s);
|
|
--connection node_1a
|
|
SELECT LASTVAL(s);
|
|
|
|
--connection node_1
|
|
SELECT * FROM t1;
|
|
--connection node_2
|
|
SELECT * FROM t1;
|
|
|
|
--connection node_1
|
|
DROP TABLE t1;
|
|
DROP SEQUENCE s;
|
|
|
|
#
|
|
# Case 2: All rollback
|
|
#
|
|
--connection node_1
|
|
CREATE SEQUENCE s INCREMENT=0 CACHE=5 ENGINE=InnoDB;
|
|
CREATE TABLE t1 (f1 INT PRIMARY KEY DEFAULT NEXTVAL(s), f2 INT) ENGINE=InnoDB;
|
|
|
|
--connection node_1
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
ROLLBACK;
|
|
|
|
--connection node_2
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
ROLLBACK;
|
|
|
|
--connection node_2a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
ROLLBACK;
|
|
|
|
--connection node_1a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
ROLLBACK;
|
|
|
|
--connection node_2
|
|
SELECT LASTVAL(s);
|
|
--connection node_1
|
|
SELECT LASTVAL(s);
|
|
--connection node_2a
|
|
SELECT LASTVAL(s);
|
|
--connection node_1a
|
|
SELECT LASTVAL(s);
|
|
|
|
--connection node_1
|
|
SELECT * FROM t1;
|
|
--connection node_2
|
|
SELECT * FROM t1;
|
|
|
|
--connection node_1
|
|
DROP TABLE t1;
|
|
DROP SEQUENCE s;
|
|
#
|
|
# Case 3: Mixed transactions
|
|
#
|
|
--connection node_1
|
|
CREATE SEQUENCE s INCREMENT=0 CACHE=5 ENGINE=InnoDB;
|
|
CREATE TABLE t1 (f1 INT PRIMARY KEY DEFAULT NEXTVAL(s), f2 INT) ENGINE=InnoDB;
|
|
|
|
--connection node_1
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
|
|
--connection node_1a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
|
|
--connection node_2a
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
|
|
--connection node_2
|
|
BEGIN;
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
INSERT INTO t1(f2) values (1);
|
|
|
|
--connection node_1
|
|
COMMIT;
|
|
--connection node_1a
|
|
ROLLBACK;
|
|
--connection node_2
|
|
--error ER_LOCK_DEADLOCK
|
|
COMMIT;
|
|
--connection node_2a
|
|
--error ER_LOCK_DEADLOCK
|
|
ROLLBACK;
|
|
|
|
--connection node_2
|
|
SELECT LASTVAL(s);
|
|
--connection node_1
|
|
SELECT LASTVAL(s);
|
|
--connection node_2a
|
|
SELECT LASTVAL(s);
|
|
--connection node_1a
|
|
SELECT LASTVAL(s);
|
|
|
|
--connection node_1
|
|
SELECT * FROM t1;
|
|
--connection node_2
|
|
SELECT * FROM t1;
|
|
|
|
--connection node_1
|
|
DROP TABLE t1;
|
|
DROP SEQUENCE s;
|