polardbxengine/mysql-test/suite/xengine/t/scan_commit_in_middle_2.test

103 lines
2.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;
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 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;
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 insert into a select from a
CREATE TABLE test_commit_middle_2 (id INT AUTO_INCREMENT PRIMARY KEY, c1 INT, index idx(c1)) ENGINE=xengine;
delimiter $$;
CREATE PROCEDURE fill_table_2(cnt int)
begin
declare i int default 0;
repeat insert into test_commit_middle_2(c1) values(i);
set i=i+1;
until i > cnt
end repeat;
end$$
delimiter ;$$
call fill_table_2(10001);
begin;
insert into test_commit_middle_2(c1) select c1 from test_commit_middle_2;
select count(*) from test_commit_middle_2;
insert into test_commit_middle_2 values(90000,1);
delete from test_commit_middle_2 where id > 0;
select * from test_commit_middle_2 where id = 90000;
commit;
begin;
delete from test_commit_middle_2 where id > 0;
select * from test_commit_middle_2 where id = 90000;
commit;
#for insert into b select from a
truncate table test_commit_middle_2;
CREATE TABLE test_commit_middle_3 (id INT AUTO_INCREMENT PRIMARY KEY, c1 INT, index idx(c1)) ENGINE=xengine;
call fill_table_2(10001);
begin;
insert into test_commit_middle_3 select * from test_commit_middle_2;
select count(*) from test_commit_middle_3;
insert into test_commit_middle_3 values(90000,1);
delete from test_commit_middle_3 where id > 0;
select * from test_commit_middle_3 where id = 90000;
commit;
begin;
delete from test_commit_middle_3 where id > 0;
select * from test_commit_middle_3 where id = 90000;
commit;
# Cleanup
DROP TABLE test_commit_middle;
DROP TABLE test_commit_middle_2;
DROP TABLE test_commit_middle_3;
DROP PROCEDURE fill_table;
DROP PROCEDURE fill_table_2;
drop table t1;
drop table t2;
--source suite/xengine/include/check_xengine_log_error.inc