Commit 40ebf3b7 authored by unknown's avatar unknown

Bug #28897 UUID() returns non-unique values when query cache is enabled

Removed the ability to cache queries containing "UUID()".


mysql-test/r/query_cache.result:
  Added test to ensure "select UUID(), a from t1" is different each time.
mysql-test/t/query_cache.test:
  Added test to ensure "select UUID(), a from t1" is different each time.
sql/item_create.cc:
  Removed the ability to cache queries with UUID().
parent 5965e887
...@@ -1405,7 +1405,14 @@ Only MyISAM tables support collections 1 ...@@ -1405,7 +1405,14 @@ Only MyISAM tables support collections 1
Function MATCH ... AGAINST() is used to do a search 1 Function MATCH ... AGAINST() is used to do a search 1
Full-text search in MySQL implements vector space model 1 Full-text search in MySQL implements vector space model 1
drop function change_global; drop function change_global;
drop table t1;
set GLOBAL query_cache_type=default; set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default; set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default; set GLOBAL query_cache_min_res_unit=default;
set GLOBAL query_cache_size= default; set GLOBAL query_cache_size= default;
set GLOBAL query_cache_size=1000000;
create table t1 (a char);
insert into t1 values ('c');
a
drop table t1;
set GLOBAL query_cache_size= default;
...@@ -965,9 +965,33 @@ delimiter ;| ...@@ -965,9 +965,33 @@ delimiter ;|
select *, change_global() from t1; select *, change_global() from t1;
drop function change_global; drop function change_global;
drop table t1;
set GLOBAL query_cache_type=default; set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default; set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default; set GLOBAL query_cache_min_res_unit=default;
set GLOBAL query_cache_size= default; set GLOBAL query_cache_size= default;
#
# Bug #28897 UUID() returns non-unique values when query cache is enabled
#
set GLOBAL query_cache_size=1000000;
create table t1 (a char);
insert into t1 values ('c');
let $q1= `select UUID(), a from t1`;
let $q2= `select UUID(), a from t1`;
# disabling the logging of the query because the UUIDs are different each run.
--disable_query_log
eval select a from t1 where "$q1" = "$q2";
--enable_query_log
drop table t1;
set GLOBAL query_cache_size= default;
# End of 5.0 tests # End of 5.0 tests
...@@ -418,6 +418,7 @@ Item *create_func_unhex(Item* a) ...@@ -418,6 +418,7 @@ Item *create_func_unhex(Item* a)
Item *create_func_uuid(void) Item *create_func_uuid(void)
{ {
current_thd->lex->safe_to_cache_query= 0;
return new Item_func_uuid(); return new Item_func_uuid();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment