--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;