mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Merge mysql.com:/home/jimw/my/mysql-5.0-12689
into mysql.com:/home/jimw/my/mysql-5.0-clean
This commit is contained in:
@@ -70,3 +70,27 @@ select timediff(b, a) >= '00:00:03' from t1;
|
|||||||
timediff(b, a) >= '00:00:03'
|
timediff(b, a) >= '00:00:03'
|
||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set global query_cache_size=1355776;
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (1),(1),(1);
|
||||||
|
create table t2 (a datetime default null, b datetime default null);
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(1);
|
||||||
|
a
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(a);
|
||||||
|
a
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(1);
|
||||||
|
a
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
select timediff(b, a) >= '00:00:03' from t2;
|
||||||
|
timediff(b, a) >= '00:00:03'
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
drop table t2;
|
||||||
|
drop table t1;
|
||||||
|
set global query_cache_size=default;
|
||||||
|
@@ -55,3 +55,26 @@ select sleep(3);
|
|||||||
update t1 set b = now();
|
update t1 set b = now();
|
||||||
select timediff(b, a) >= '00:00:03' from t1;
|
select timediff(b, a) >= '00:00:03' from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #12689: SLEEP() gets incorrectly cached/optimized-away
|
||||||
|
#
|
||||||
|
set global query_cache_size=1355776;
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (1),(1),(1);
|
||||||
|
create table t2 (a datetime default null, b datetime default null);
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(1);
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(a);
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
insert into t2 set a = now();
|
||||||
|
select a from t1 where sleep(1);
|
||||||
|
update t2 set b = now() where b is null;
|
||||||
|
select timediff(b, a) >= '00:00:03' from t2;
|
||||||
|
drop table t2;
|
||||||
|
drop table t1;
|
||||||
|
set global query_cache_size=default;
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
@@ -356,6 +356,7 @@ Item *create_func_sha(Item* a)
|
|||||||
|
|
||||||
Item *create_func_sleep(Item* a)
|
Item *create_func_sleep(Item* a)
|
||||||
{
|
{
|
||||||
|
current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
|
||||||
return new Item_func_sleep(a);
|
return new Item_func_sleep(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -893,7 +893,13 @@ class Item_func_sleep :public Item_int_func
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Item_func_sleep(Item *a) :Item_int_func(a) {}
|
Item_func_sleep(Item *a) :Item_int_func(a) {}
|
||||||
|
bool const_item() const { return 0; }
|
||||||
const char *func_name() const { return "sleep"; }
|
const char *func_name() const { return "sleep"; }
|
||||||
|
void update_used_tables()
|
||||||
|
{
|
||||||
|
Item_int_func::update_used_tables();
|
||||||
|
used_tables_cache|= RAND_TABLE_BIT;
|
||||||
|
}
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user