List:Internals« Previous MessageNext Message »
From:Zardosht Kasheff Date:June 6 2012 3:32am
Subject:question on semantics of "xa end"
View as plain text  
Hello all,

In mysql-test/t/xa.test, I see the following test copied below.

Why does the command "xa end 'a','c';" return an error? What are the
semantics of xa end? How is the storage engine supposed to ensure that
xa end returns that error? I don't see a handlerton function that maps
to xa end.

Thanks
-Zardosht

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';
Thread
question on semantics of "xa end"Zardosht Kasheff6 Jun