mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
38 lines
1 KiB
Text
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;
|