Fix for bug #9796 "Query Cache caches queries with CURRENT_USER()

function".

We should not cache queries using CURRENT_USER() function as we do it
for some other functions, e.g. USER() function.
This commit is contained in:
dlenev@mysql.com 2005-04-11 00:30:23 +04:00
parent 9dfc87e270
commit 06e3647274
3 changed files with 4 additions and 0 deletions

View File

@ -299,6 +299,8 @@ select UNIX_TIMESTAMP() from t1;
UNIX_TIMESTAMP() UNIX_TIMESTAMP()
select USER() from t1; select USER() from t1;
USER() USER()
select CURRENT_USER() from t1;
CURRENT_USER()
select benchmark(1,1) from t1; select benchmark(1,1) from t1;
benchmark(1,1) benchmark(1,1)
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";

View File

@ -182,6 +182,7 @@ select LAST_INSERT_ID() from t1;
select RAND() from t1; select RAND() from t1;
select UNIX_TIMESTAMP() from t1; select UNIX_TIMESTAMP() from t1;
select USER() from t1; select USER() from t1;
select CURRENT_USER() from t1;
select benchmark(1,1) from t1; select benchmark(1,1) from t1;
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
# #

View File

@ -297,6 +297,7 @@ Item *create_func_current_user()
char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2]; char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2];
uint length; uint length;
thd->safe_to_cache_query= 0;
length= (uint) (strxmov(buff, thd->priv_user, "@", thd->priv_host, NullS) - length= (uint) (strxmov(buff, thd->priv_user, "@", thd->priv_host, NullS) -
buff); buff);
return new Item_string(NullS, thd->memdup(buff, length), length); return new Item_string(NullS, thd->memdup(buff, length), length);