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 VIEW view_target3;
|
||||||
DROP USER user20989@localhost;
|
DROP USER user20989@localhost;
|
||||||
DROP DATABASE meow;
|
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")
|
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;
|
|
||||||
|
@ -152,3 +152,38 @@ disconnect root;
|
|||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
DROP DATABASE meow;
|
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 @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;
|
|
||||||
|
Reference in New Issue
Block a user