summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <dlenev@mysql.com>2005-04-11 00:30:23 +0400
committerunknown <dlenev@mysql.com>2005-04-11 00:30:23 +0400
commit3e0a62636725b4bfa958d1416d80a12d269b1b94 (patch)
tree399431c2e664a0e664adac3515c389e2d29de3a7
parentc6bb22936a220aca3d1b608f467f769d8f5cfab7 (diff)
downloadmariadb-git-3e0a62636725b4bfa958d1416d80a12d269b1b94.tar.gz
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. mysql-test/r/query_cache.result: Let us test that queries with CURRENT_USER() function are not cached. mysql-test/t/query_cache.test: Let us test that queries with CURRENT_USER() function are not cached. sql/item_create.cc: create_func_current_user(): We should not cache queries which use CURRENT_USER() function.
-rw-r--r--mysql-test/r/query_cache.result2
-rw-r--r--mysql-test/t/query_cache.test1
-rw-r--r--sql/item_create.cc1
3 files changed, 4 insertions, 0 deletions
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 85fe77b1f10..a472a1b75c0 100644
--- a/mysql-test/r/query_cache.result
+++ b/mysql-test/r/query_cache.result
@@ -299,6 +299,8 @@ select UNIX_TIMESTAMP() from t1;
UNIX_TIMESTAMP()
select USER() from t1;
USER()
+select CURRENT_USER() from t1;
+CURRENT_USER()
select benchmark(1,1) from t1;
benchmark(1,1)
show status like "Qcache_queries_in_cache";
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index 61fbadde1e1..89a9707a237 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -182,6 +182,7 @@ select LAST_INSERT_ID() from t1;
select RAND() from t1;
select UNIX_TIMESTAMP() from t1;
select USER() from t1;
+select CURRENT_USER() from t1;
select benchmark(1,1) from t1;
show status like "Qcache_queries_in_cache";
#
diff --git a/sql/item_create.cc b/sql/item_create.cc
index 6809d6892b0..877e63047d6 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -297,6 +297,7 @@ Item *create_func_current_user()
char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2];
uint length;
+ thd->safe_to_cache_query= 0;
length= (uint) (strxmov(buff, thd->priv_user, "@", thd->priv_host, NullS) -
buff);
return new Item_string(NullS, thd->memdup(buff, length), length);