134 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			134 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								drop table if exists t1, t2;
							 | 
						||
| 
								 | 
							
								create table t1 (a int) engine=innodb;
							 | 
						||
| 
								 | 
							
								xa start 'test1';
							 | 
						||
| 
								 | 
							
								insert t1 values (10);
							 | 
						||
| 
								 | 
							
								xa end 'test1';
							 | 
						||
| 
								 | 
							
								xa prepare 'test1';
							 | 
						||
| 
								 | 
							
								xa rollback 'test1';
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								xa start 'test2';
							 | 
						||
| 
								 | 
							
								xa start 'test-bad';
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  ACTIVE state
							 | 
						||
| 
								 | 
							
								insert t1 values (20);
							 | 
						||
| 
								 | 
							
								xa prepare 'test2';
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  ACTIVE state
							 | 
						||
| 
								 | 
							
								xa end 'test2';
							 | 
						||
| 
								 | 
							
								xa prepare 'test2';
							 | 
						||
| 
								 | 
							
								xa commit 'test2';
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								20
							 | 
						||
| 
								 | 
							
								xa start 'testa','testb';
							 | 
						||
| 
								 | 
							
								insert t1 values (30);
							 | 
						||
| 
								 | 
							
								commit;
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  ACTIVE state
							 | 
						||
| 
								 | 
							
								xa end 'testa','testb';
							 | 
						||
| 
								 | 
							
								begin;
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  IDLE state
							 | 
						||
| 
								 | 
							
								create table t2 (a int);
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  IDLE state
							 | 
						||
| 
								 | 
							
								xa start 'testa','testb';
							 | 
						||
| 
								 | 
							
								ERROR XAE08: XAER_DUPID: The XID already exists
							 | 
						||
| 
								 | 
							
								xa start 'testa','testb', 123;
							 | 
						||
| 
								 | 
							
								ERROR XAE08: XAER_DUPID: The XID already exists
							 | 
						||
| 
								 | 
							
								xa start 0x7465737462, 0x2030405060, 0xb;
							 | 
						||
| 
								 | 
							
								insert t1 values (40);
							 | 
						||
| 
								 | 
							
								xa end 'testb',' 0@P`',11;
							 | 
						||
| 
								 | 
							
								xa prepare 'testb',0x2030405060,11;
							 | 
						||
| 
								 | 
							
								start transaction;
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  PREPARED state
							 | 
						||
| 
								 | 
							
								xa recover;
							 | 
						||
| 
								 | 
							
								formatID	gtrid_length	bqual_length	data
							 | 
						||
| 
								 | 
							
								11	5	5	testb 0@P`
							 | 
						||
| 
								 | 
							
								xa prepare 'testa','testb';
							 | 
						||
| 
								 | 
							
								xa recover;
							 | 
						||
| 
								 | 
							
								formatID	gtrid_length	bqual_length	data
							 | 
						||
| 
								 | 
							
								11	5	5	testb 0@P`
							 | 
						||
| 
								 | 
							
								1	5	5	testatestb
							 | 
						||
| 
								 | 
							
								xa commit 'testb',0x2030405060,11;
							 | 
						||
| 
								 | 
							
								ERROR XAE04: XAER_NOTA: Unknown XID
							 | 
						||
| 
								 | 
							
								xa rollback 'testa','testb';
							 | 
						||
| 
								 | 
							
								xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
							 | 
						||
| 
								 | 
							
								ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								20
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								drop table if exists t1;
							 | 
						||
| 
								 | 
							
								create table t1(a int, b int, c varchar(20), primary key(a)) engine = innodb;
							 | 
						||
| 
								 | 
							
								insert into t1 values(1, 1, 'a');
							 | 
						||
| 
								 | 
							
								insert into t1 values(2, 2, 'b');
							 | 
						||
| 
								 | 
							
								xa start 'a','b';
							 | 
						||
| 
								 | 
							
								update t1 set c = 'aa' where a = 1;
							 | 
						||
| 
								 | 
							
								xa start 'a','c';
							 | 
						||
| 
								 | 
							
								update t1 set c = 'bb' where a = 2;
							 | 
						||
| 
								 | 
							
								update t1 set c = 'bb' where a = 2;
							 | 
						||
| 
								 | 
							
								update t1 set c = 'aa' where a = 1;
							 | 
						||
| 
								 | 
							
								ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
							 | 
						||
| 
								 | 
							
								select count(*) from t1;
							 | 
						||
| 
								 | 
							
								count(*)
							 | 
						||
| 
								 | 
							
								2
							 | 
						||
| 
								 | 
							
								xa end 'a','c';
							 | 
						||
| 
								 | 
							
								ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected
							 | 
						||
| 
								 | 
							
								xa rollback 'a','c';
							 | 
						||
| 
								 | 
							
								xa start 'a','c';
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# BUG#51342 - more xid crashing
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1(a INT) ENGINE=InnoDB;
							 | 
						||
| 
								 | 
							
								XA START 'x';
							 | 
						||
| 
								 | 
							
								SET SESSION autocommit=0;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES(1);
							 | 
						||
| 
								 | 
							
								SET SESSION autocommit=1;
							 | 
						||
| 
								 | 
							
								ERROR XAE07: XAER_RMFAIL: The command cannot be executed when global transaction is in the  ACTIVE state
							 | 
						||
| 
								 | 
							
								SELECT @@autocommit;
							 | 
						||
| 
								 | 
							
								@@autocommit
							 | 
						||
| 
								 | 
							
								0
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES(1);
							 | 
						||
| 
								 | 
							
								XA END 'x';
							 | 
						||
| 
								 | 
							
								XA COMMIT 'x' ONE PHASE;
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								SET SESSION autocommit=1;
							 | 
						||
| 
								 | 
							
								End of 5.0 tests
							 | 
						||
| 
								 | 
							
								xa start 'a';
							 | 
						||
| 
								 | 
							
								xa end 'a';
							 | 
						||
| 
								 | 
							
								xa rollback 'a';
							 | 
						||
| 
								 | 
							
								xa start 'a';
							 | 
						||
| 
								 | 
							
								xa end 'a';
							 | 
						||
| 
								 | 
							
								xa rollback 'a';
							 | 
						||
| 
								 | 
							
								xa start 'a';
							 | 
						||
| 
								 | 
							
								xa end 'a';
							 | 
						||
| 
								 | 
							
								xa prepare 'a';
							 | 
						||
| 
								 | 
							
								xa commit 'a';
							 | 
						||
| 
								 | 
							
								xa start 'a';
							 | 
						||
| 
								 | 
							
								xa end 'a';
							 | 
						||
| 
								 | 
							
								xa prepare 'a';
							 | 
						||
| 
								 | 
							
								xa commit 'a';
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES(1),(2);
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=3 WHERE a=1;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=4 WHERE a=2;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=5 WHERE a=2;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=5 WHERE a=1;
							 | 
						||
| 
								 | 
							
								ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
							 | 
						||
| 
								 | 
							
								ROLLBACK;
							 | 
						||
| 
								 | 
							
								ROLLBACK;
							 | 
						||
| 
								 | 
							
								BEGIN;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=3 WHERE a=1;
							 | 
						||
| 
								 | 
							
								XA START 'xid1';
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=4 WHERE a=2;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=5 WHERE a=2;
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET a=5 WHERE a=1;
							 | 
						||
| 
								 | 
							
								ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
							 | 
						||
| 
								 | 
							
								XA END 'xid1';
							 | 
						||
| 
								 | 
							
								ERROR XA102: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected
							 | 
						||
| 
								 | 
							
								XA ROLLBACK 'xid1';
							 | 
						||
| 
								 | 
							
								XA START 'xid1';
							 | 
						||
| 
								 | 
							
								XA END 'xid1';
							 | 
						||
| 
								 | 
							
								XA ROLLBACK 'xid1';
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 |