polardbxengine/mysql-test/suite/xengine/r/unique_check.result

103 lines
2.7 KiB
Plaintext

set debug_sync='RESET';
drop table if exists t1;
create table t1 (id int, value int, primary key (id)) engine=xengine;
create table t2 (id int, id2 int, value int, primary key (id), unique key (id2)) engine=xengine;
begin;
insert into t1 values (1,1);
set session xengine_lock_wait_timeout=50;
begin;
insert into t1 values (1,2);
commit;
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
commit;
select * from t1;
id value
1 1
truncate table t1;
begin;
insert into t2 values (1,1,1);
set transaction_isolation = 'READ-COMMITTED';
begin;
insert into t2 values (2,1,2);
commit;
ERROR 23000: Duplicate entry '1' for key 'id2'
commit;
select * from t2;
id id2 value
1 1 1
truncate table t2;
begin;
insert into t2 values (1,1,1);
set transaction_isolation = 'REPEATABLE-READ';
begin;
insert into t2 values (2,1,2);
commit;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
commit;
select * from t2;
id id2 value
1 1 1
truncate table t2;
begin;
insert into t1 values (1,1);
begin;
insert into t1 values (1,2);
rollback;
commit;
select * from t1;
id value
1 2
truncate table t1;
begin;
insert into t2 values (1,1,1);
begin;
insert into t2 values (2,1,2);
rollback;
commit;
select * from t2;
id id2 value
2 1 2
truncate table t2;
set debug_sync='xengine.update_write_row_after_unique_check SIGNAL parked1 WAIT_FOR go1';
insert into t1 values (1,1);
set debug_sync='xengine.update_write_row_after_unique_check SIGNAL parked2 WAIT_FOR go2';
insert into t2 values (1,1,1);
set debug_sync='now WAIT_FOR parked1';
set debug_sync='now WAIT_FOR parked2';
set session xengine_lock_wait_timeout=1;
insert into t1 values (1,2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
insert into t2 values (2,1,2);
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
set debug_sync='now SIGNAL go1';
set debug_sync='now SIGNAL go2';
insert into t1 values (1,2);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
insert into t2 values (2,1,2);
ERROR 23000: Duplicate entry '1' for key 'id2'
select * from t1;
id value
1 1
select * from t2;
id id2 value
1 1 1
set debug_sync='RESET';
drop table t1;
drop table t2;
drop table if exists t1;
drop table if exists t2;
drop table if exists t3;
create table t1 (id int, value int, primary key (id)) engine=xengine;
create table t2 (id int, id2 int, value int, primary key (id), unique key (id2)) engine=xengine;
create table t3 (id int, value int) engine=xengine;
SET @old_val = @@session.unique_checks;
set @@session.unique_checks = FALSE;
insert into t1 values (1, 1), (1, 2);
insert into t2 values (1, 1, 1), (1, 2, 1);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
insert into t3 values (1, 1), (1, 1);
set @@session.unique_checks = @old_val;
drop table t1;
drop table t2;
drop table t3;