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

38 lines
1.0 KiB
Plaintext

--source suite/xengine/include/have_xengine.inc
--source include/have_debug_sync.inc
# This is a test case to reproduce https://github.com/facebook/mysql-5.6/issues/162
# Expected output of the last select for update was (1,2,100) and (1,3,100), but
# currently it returns (1,2,1) and (1,3,1), which must be fixed.
connect (con, localhost, root,,);
connection default;
--disable_warnings
set debug_sync='RESET';
drop table if exists t1;
--enable_warnings
create table t1 (id1 int, id2 int, value int, primary key (id1, id2)) engine=xengine;
insert into t1 values (1, 1, 1),(1, 2, 1),(1, 3, 1), (2, 2, 2);
connection con;
set debug_sync='xengine.get_row_by_rowid SIGNAL parked WAIT_FOR go';
send update t1 set value=100 where id1=1;
connection default;
set debug_sync='now WAIT_FOR parked';
delete from t1 where id1=1 and id2=1;
set debug_sync='now SIGNAL go';
connection con;
reap;
select * from t1 where id1=1 for update;
# Cleanup
connection default;
disconnect con;
set debug_sync='RESET';
drop table t1;
--source suite/xengine/include/check_xengine_log_error.inc