mariadb/mysql-test/suite/galera/t/galera_toi_lock_exclusive.test
2015-07-14 16:05:29 -04:00

38 lines
1 KiB
Text

--source include/galera_cluster.inc
--source include/have_innodb.inc
#
# Ensure that ALTER LOCK=EXCLUSIVE works under TOI. It is difficult to check that concurrent operations
# are truly not possible, but at least we expect no hangs or deadlocks
#
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
# Start a transaction that is concurrent to the DDL. This is not strictly necessary for this test
# but does put more locks into play.
--connection node_2
SET AUTOCOMMIT=OFF;
START TRANSACTION;
INSERT INTO t1 VALUES (2);
--let $galera_connection_name = node_2a
--let $galera_server_number = 2
--source include/galera_connect.inc
--connection node_2a
ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE;
# In Galera, a concurrent transaction aborts in the face of ALTER
--connection node_2
--error ER_LOCK_DEADLOCK
COMMIT;
--connection node_1
INSERT INTO t1 VALUES (2, 2);
SELECT COUNT(*) = 2 FROM t1;
--connection node_2
INSERT INTO t1 VALUES (3, 3);
SELECT COUNT(*) = 3 FROM t1;
DROP TABLE t1;