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 Kasheff | 6 Jun |