mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
The test case for bug 28587 doesn't work with the embedded version,
the first query is not running while we are doing wait queries on a second connection.
This commit is contained in:
@ -105,3 +105,22 @@ DROP VIEW view_target2;
|
||||
DROP VIEW view_target3;
|
||||
DROP USER user20989@localhost;
|
||||
DROP DATABASE meow;
|
||||
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;
|
||||
|
@ -407,22 +407,3 @@ select if( @stamp1 = @stamp2, "correct", "wrong");
|
||||
if( @stamp1 = @stamp2, "correct", "wrong")
|
||||
correct
|
||||
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;
|
||||
|
@ -152,3 +152,38 @@ disconnect root;
|
||||
connection default;
|
||||
|
||||
DROP DATABASE meow;
|
||||
|
||||
#
|
||||
# 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;
|
||||
|
@ -306,38 +306,3 @@ insert into t1(f1) values(1) on duplicate key update f1=1;
|
||||
select @stamp2:=f2 from t1;
|
||||
select if( @stamp1 = @stamp2, "correct", "wrong");
|
||||
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;
|
||||
|
Reference in New Issue
Block a user