2005-04-04 00:50:05 +02:00
|
|
|
#
|
|
|
|
# WL#1756
|
|
|
|
#
|
|
|
|
-- source include/have_innodb.inc
|
|
|
|
--disable_warnings
|
|
|
|
drop table if exists t1, t2;
|
|
|
|
--enable_warnings
|
|
|
|
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;
|
|
|
|
|
|
|
|
xa start 'test2';
|
|
|
|
--error 1399
|
|
|
|
xa start 'test-bad';
|
|
|
|
insert t1 values (20);
|
|
|
|
--error 1399
|
|
|
|
xa prepare 'test2';
|
|
|
|
xa end 'test2';
|
|
|
|
xa prepare 'test2';
|
|
|
|
xa commit 'test2';
|
|
|
|
select * from t1;
|
|
|
|
|
|
|
|
xa start 'testa','testb';
|
|
|
|
insert t1 values (30);
|
2005-10-05 19:58:16 +02:00
|
|
|
|
|
|
|
--error 1399
|
|
|
|
commit;
|
|
|
|
|
2005-04-04 00:50:05 +02:00
|
|
|
xa end 'testa','testb';
|
|
|
|
|
2005-10-05 19:58:16 +02:00
|
|
|
--error 1399
|
|
|
|
begin;
|
|
|
|
--error 1399
|
|
|
|
create table t2 (a int);
|
|
|
|
|
2007-02-26 11:49:24 +01:00
|
|
|
connect (con1,localhost,root,,);
|
2005-04-04 00:50:05 +02:00
|
|
|
connection con1;
|
|
|
|
|
2005-08-13 08:42:35 +02:00
|
|
|
--error 1440
|
2005-08-12 21:15:01 +02:00
|
|
|
xa start 'testa','testb';
|
2005-10-05 16:38:53 +02:00
|
|
|
--error 1440
|
|
|
|
xa start 'testa','testb', 123;
|
2005-08-12 21:15:01 +02:00
|
|
|
|
2005-04-05 13:17:49 +02:00
|
|
|
# gtrid [ , bqual [ , formatID ] ]
|
2005-04-04 00:50:05 +02:00
|
|
|
xa start 0x7465737462, 0x2030405060, 0xb;
|
|
|
|
insert t1 values (40);
|
|
|
|
xa end 'testb',' 0@P`',11;
|
|
|
|
xa prepare 'testb',0x2030405060,11;
|
|
|
|
|
2005-10-05 19:58:16 +02:00
|
|
|
--error 1399
|
|
|
|
start transaction;
|
|
|
|
|
2005-04-04 00:50:05 +02:00
|
|
|
xa recover;
|
|
|
|
|
|
|
|
# uncomment the line below when binlog will be able to prepare
|
|
|
|
#disconnect con1;
|
|
|
|
connection default;
|
|
|
|
|
|
|
|
xa prepare 'testa','testb';
|
|
|
|
|
|
|
|
xa recover;
|
|
|
|
|
2005-08-12 21:15:01 +02:00
|
|
|
--error 1397
|
2005-04-04 00:50:05 +02:00
|
|
|
xa commit 'testb',0x2030405060,11;
|
|
|
|
xa rollback 'testa','testb';
|
|
|
|
|
|
|
|
--error 1064
|
|
|
|
xa start 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
|
|
|
|
|
|
|
|
select * from t1;
|
|
|
|
drop table t1;
|
|
|
|
|
2008-10-21 20:07:31 +02:00
|
|
|
disconnect con1;
|
|
|
|
|
|
|
|
#
|
|
|
|
# Bug#28323: Server crashed in xid cache operations
|
|
|
|
#
|
|
|
|
|
|
|
|
--disable_warnings
|
|
|
|
drop table if exists t1;
|
|
|
|
--enable_warnings
|
|
|
|
|
|
|
|
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');
|
|
|
|
|
|
|
|
connect (con1,localhost,root,,);
|
|
|
|
connect (con2,localhost,root,,);
|
|
|
|
|
|
|
|
--connection con1
|
|
|
|
xa start 'a','b';
|
|
|
|
update t1 set c = 'aa' where a = 1;
|
|
|
|
--connection con2
|
|
|
|
xa start 'a','c';
|
|
|
|
update t1 set c = 'bb' where a = 2;
|
|
|
|
--connection con1
|
|
|
|
--send update t1 set c = 'bb' where a = 2
|
|
|
|
--connection con2
|
|
|
|
--sleep 1
|
|
|
|
--error ER_LOCK_DEADLOCK
|
|
|
|
update t1 set c = 'aa' where a = 1;
|
|
|
|
select count(*) from t1;
|
|
|
|
--error ER_XA_RBDEADLOCK
|
|
|
|
xa end 'a','c';
|
|
|
|
xa rollback 'a','c';
|
|
|
|
--disconnect con2
|
|
|
|
|
|
|
|
connect (con3,localhost,root,,);
|
|
|
|
--connection con3
|
|
|
|
xa start 'a','c';
|
|
|
|
|
|
|
|
--disconnect con1
|
|
|
|
--disconnect con3
|
|
|
|
--connection default
|
2008-10-21 23:02:26 +02:00
|
|
|
drop table t1;
|
2008-10-21 20:07:31 +02:00
|
|
|
|
|
|
|
--echo End of 5.0 tests
|