mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +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'
|
||||
1
|
||||
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();
|
||||
select timediff(b, a) >= '00:00:03' from 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)
|
||||
{
|
||||
current_thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
|
||||
return new Item_func_sleep(a);
|
||||
}
|
||||
|
||||
|
@ -893,7 +893,13 @@ class Item_func_sleep :public Item_int_func
|
||||
{
|
||||
public:
|
||||
Item_func_sleep(Item *a) :Item_int_func(a) {}
|
||||
bool const_item() const { return 0; }
|
||||
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();
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user