127 lines
3.8 KiB
Plaintext
127 lines
3.8 KiB
Plaintext
--source suite/xengine/include/have_xengine.inc
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS test_commit_middle;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE test_commit_middle (id INT AUTO_INCREMENT PRIMARY KEY, c1 INT, index idx(c1)) ENGINE=xengine;
|
|
|
|
#set xengine_commit_in_the_middle=1;
|
|
#SET @save_xengine_bulk_load_size= @@xengine_bulk_load_size;
|
|
#set xengine_bulk_load_size = 100;
|
|
|
|
delimiter $$;
|
|
CREATE PROCEDURE fill_table(cnt int)
|
|
begin
|
|
declare i int default 0;
|
|
repeat insert into test_commit_middle(c1) values(i);
|
|
set i=i+1;
|
|
until i > cnt
|
|
end repeat;
|
|
end$$
|
|
delimiter ;$$
|
|
|
|
#for delete write_batch itertor is after baseIterator
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(10001,10001),(10002,10002),(10003,10003);
|
|
delete from test_commit_middle where id>0;
|
|
commit;
|
|
|
|
select * from test_commit_middle;
|
|
|
|
#for delete write_batch itertor is before baseIterator
|
|
delete from test_commit_middle;
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(1,1),(2,2),(3,3);
|
|
delete from test_commit_middle where id>0;
|
|
commit;
|
|
|
|
select * from test_commit_middle;
|
|
|
|
#for update write_batch itertor is after baseIterator
|
|
delete from test_commit_middle;
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(30001,30001),(30002,30002),(30003,30003);
|
|
update test_commit_middle set c1=c1+1;
|
|
commit;
|
|
|
|
select count(*) from test_commit_middle;
|
|
|
|
# for update write_batch itertor is before baseIterator
|
|
delete from test_commit_middle;
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(1,1),(2,2),(3,3);
|
|
update test_commit_middle set c1=c1+1;
|
|
commit;
|
|
|
|
select count(*) from test_commit_middle;
|
|
|
|
#for insert write_batch itertor is after baseIterator
|
|
delete from test_commit_middle;
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(50001,50001),(50002,50002),(50003,50003);
|
|
insert into test_commit_middle(c1) select c1 from test_commit_middle;
|
|
commit;
|
|
|
|
#for insert write_batch itertor is before baseIterator
|
|
delete from test_commit_middle;
|
|
call fill_table(5000);
|
|
begin;
|
|
insert into test_commit_middle values(1,1),(2,2),(3,3);
|
|
insert into test_commit_middle(c1) select c1 from test_commit_middle;
|
|
commit;
|
|
|
|
#for delete from two tables
|
|
CREATE TABLE t1 (id1 bigint(20),id2 bigint(20),id3 bigint(20),PRIMARY KEY (id1, id2, id3)) ENGINE=xengine;
|
|
CREATE TABLE t2 (id1 bigint(20),id2 bigint(20),PRIMARY KEY (id1, id2)) ENGINE=xengine;
|
|
|
|
#set xengine_commit_in_the_middle=1;
|
|
#set xengine_bulk_load_size = 100;
|
|
|
|
let $1 = 10000;
|
|
|
|
--disable_query_log
|
|
while ($1)
|
|
{
|
|
eval insert into t1 (id1, id2, id3) values (0,$1,0);
|
|
eval insert into t2 (id1, id2) values (0,$1);
|
|
dec $1;
|
|
}
|
|
--enable_query_log
|
|
|
|
DELETE t2, t1 FROM t2 LEFT JOIN t1 ON t2.id2 = t1.id2 AND t2.id1 = t1.id1 WHERE t2.id1 = 0;
|
|
select count(*) from t1;
|
|
select count(*) from t2;
|
|
|
|
#for commit_in_middle, get rows from write_batch
|
|
create table test_version (id int primary key auto_increment,seq_id int, gmt_create datetime,gmt_modified datetime,version int,status varchar(20));
|
|
insert into test_version (seq_id, gmt_create,gmt_modified,version,status) values (1111,NOW(),NOW(),0,'normal');
|
|
|
|
select id,seq_id,version,status from test_version;
|
|
|
|
set autocommit=off;
|
|
begin;
|
|
select id from test_version where seq_id = 1111 and status = 'normal';
|
|
update test_version set status = 'deleted', version = version + 1, gmt_modified = now() where id = 1 and version = 0;
|
|
insert into test_version (seq_id, gmt_create,gmt_modified,version,status) values (1111,NOW(),NOW(),0,'normal');
|
|
select id,seq_id,version,status from test_version;
|
|
commit;
|
|
select id,seq_id,version,status from test_version;
|
|
|
|
|
|
# Cleanup
|
|
#SET xengine_bulk_load_size= @save_xengine_bulk_load_size;
|
|
#SET xengine_commit_in_the_middle=0;
|
|
|
|
DROP TABLE test_commit_middle;
|
|
DROP PROCEDURE fill_table;
|
|
drop table t1;
|
|
drop table t2;
|
|
drop table test_version;
|
|
--source suite/xengine/include/check_xengine_log_error.inc
|