mariadb/mysql-test/suite/galera/t/mdev-30653.test
Jan Lindström b3be3c2157 MDEV-30653 : With wsrep_mode=REPLICATE_ARIA only part of mixed-engine transactions is replicated
Replication of non-transactional engines is experimental and
uses TOI. This naturally means that if there is open transaction
with transactional engine it's changes will be rolled back.

Fixed by adding error message if non-transactional engine
is part of multi-engine transaction with warning.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
2024-10-23 04:00:52 +02:00

62 lines
1.3 KiB
Text

--source include/galera_cluster.inc
--source include/have_aria.inc
create table t1 (id serial, val int) engine=innodb;
create table t2 (id serial, val int) engine=aria;
insert into t1 values(1, 23);
insert into t2 values(2, 42);
call mtr.add_suppression("WSREP: Replication of non-transactional engines is experimental. Storage engine Aria for table 'test'.'t2' is not supported in Galera");
begin;
update t1 set val=24 where id=1;
update t2 set val=41 where id=2;
--error ER_ERROR_DURING_COMMIT
commit;
select * from t1;
select * from t2;
--connection node_2
select * from t1;
select * from t2;
--connection node_1
drop table t1, t2;
# case 2
SET GLOBAL wsrep_mode=REPLICATE_ARIA;
create table t1 (id serial, val int) engine=innodb;
create table t2 (id serial, val int) engine=aria;
insert into t1 values(1, 23);
insert into t2 values(2, 42);
begin;
update t1 set val=24 where id=1;
--error ER_ERROR_DURING_COMMIT
update t2 set val=41 where id=2;
commit;
select * from t1;
select * from t2;
--connection node_2
select * from t1;
select * from t2;
--connection node_1
drop table t1, t2;
# case 3
create table t2 (id serial, val int) engine=aria;
INSERT INTO t2 values(1,1);
UPDATE t2 set id=5,val=6 where id = 1;
SELECT * from t2;
--connection node_2
SELECT * from t2;
DROP TABLE t2;
--connection node_1
SET GLOBAL wsrep_mode=DEFAULT;