--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