mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +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;
 | 
