mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 19:41:47 +01:00
Post-merge test case with wait_condition for Bug#28587
mysql-test/r/insert_update.result: Post-merge: add test case result for Bug#28587. mysql-test/t/insert_update.test: Post-merge: add test case for Bug#28587.
This commit is contained in:
parent
041be8f029
commit
97844e982b
2 changed files with 54 additions and 0 deletions
|
@ -407,3 +407,22 @@ select if( @stamp1 = @stamp2, "correct", "wrong");
|
||||||
if( @stamp1 = @stamp2, "correct", "wrong")
|
if( @stamp1 = @stamp2, "correct", "wrong")
|
||||||
correct
|
correct
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection: default
|
||||||
|
set low_priority_updates=1;
|
||||||
|
drop table if exists t1;
|
||||||
|
create table t1 (a int, b int, unique key t1$a (a));
|
||||||
|
lock table t1 read;
|
||||||
|
connection: update
|
||||||
|
set low_priority_updates=1;
|
||||||
|
show variables like 'low_priority_updates';
|
||||||
|
Variable_name Value
|
||||||
|
low_priority_updates ON
|
||||||
|
insert into t1 values (1, 2) ON DUPLICATE KEY UPDATE b = 2;;
|
||||||
|
connection: select
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
connection: default
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
drop table t1;
|
||||||
|
set low_priority_updates=default;
|
||||||
|
|
|
@ -306,3 +306,38 @@ insert into t1(f1) values(1) on duplicate key update f1=1;
|
||||||
select @stamp2:=f2 from t1;
|
select @stamp2:=f2 from t1;
|
||||||
select if( @stamp1 = @stamp2, "correct", "wrong");
|
select if( @stamp1 = @stamp2, "correct", "wrong");
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#28587 SELECT is blocked by INSERT waiting on read lock, even with low_priority_updates
|
||||||
|
#
|
||||||
|
--echo connection: default
|
||||||
|
set low_priority_updates=1;
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1;
|
||||||
|
--enable_warnings
|
||||||
|
create table t1 (a int, b int, unique key t1$a (a));
|
||||||
|
lock table t1 read;
|
||||||
|
connect (update,localhost,root,,);
|
||||||
|
connection update;
|
||||||
|
--echo connection: update
|
||||||
|
set low_priority_updates=1;
|
||||||
|
show variables like 'low_priority_updates';
|
||||||
|
let $ID= `select connection_id()`;
|
||||||
|
--send insert into t1 values (1, 2) ON DUPLICATE KEY UPDATE b = 2;
|
||||||
|
connection default;
|
||||||
|
# we must wait till the insert opens and locks the table
|
||||||
|
let $wait_condition=
|
||||||
|
select count(*) = 1 from information_schema.processlist
|
||||||
|
where state = "Locked" and id = $ID;
|
||||||
|
--source include/wait_condition.inc
|
||||||
|
connect (select,localhost,root,,);
|
||||||
|
--echo connection: select
|
||||||
|
select * from t1;
|
||||||
|
connection default;
|
||||||
|
--echo connection: default
|
||||||
|
select * from t1;
|
||||||
|
connection default;
|
||||||
|
disconnect update;
|
||||||
|
disconnect select;
|
||||||
|
drop table t1;
|
||||||
|
set low_priority_updates=default;
|
||||||
|
|
Loading…
Add table
Reference in a new issue