mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
08f192f81b
The problem was that we restored SQL_CACHE, SQL_NO_CACHE flags in SELECT statement from internal structures based on value set later at runtime, not the original value set by the user. The solution is to remember that original value.
35 lines
969 B
Text
35 lines
969 B
Text
stop slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
start slave;
|
|
create table t1(n int);
|
|
insert into t1 values(get_lock("lock",2));
|
|
select get_lock("lock",2);
|
|
get_lock("lock",2)
|
|
1
|
|
select release_lock("lock");
|
|
release_lock("lock")
|
|
1
|
|
select get_lock("lock",3);
|
|
get_lock("lock",3)
|
|
1
|
|
select * from t1;
|
|
n
|
|
1
|
|
select is_free_lock("lock"), is_used_lock("lock") = connection_id();
|
|
is_free_lock("lock") is_used_lock("lock") = connection_id()
|
|
0 1
|
|
explain extended select is_free_lock("lock"), is_used_lock("lock");
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1003 select is_free_lock(_latin1'lock') AS `is_free_lock("lock")`,is_used_lock(_latin1'lock') AS `is_used_lock("lock")`
|
|
select is_free_lock("lock2");
|
|
is_free_lock("lock2")
|
|
1
|
|
select is_free_lock(NULL);
|
|
is_free_lock(NULL)
|
|
NULL
|
|
drop table t1;
|