summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
-rw-r--r--sql/mysqld.cc21
4 files changed, 16 insertions, 9 deletions
diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result
index 6863534b2d8..8db57104477 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)
explain extended select benchmark(1,1) from t1;
diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test
index 6a3d22d2695..475ba466ea9 100644
--- a/mysql-test/t/query_cache.test
+++ b/mysql-test/t/query_cache.test
@@ -184,6 +184,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;
explain extended 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 35cc46989f7..b9073a6c0b3 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -303,6 +303,7 @@ Item *create_func_current_user()
char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2];
uint length;
+ thd->lex->safe_to_cache_query= 0;
length= (uint) (strxmov(buff, thd->priv_user, "@", thd->priv_host, NullS) -
buff);
return new Item_static_string_func("current_user()",
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 2d8a0eca877..2c44a789c79 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -788,15 +788,6 @@ void kill_mysql(void)
CloseHandle(hEvent);
*/
}
-#ifdef HAVE_SMEM
- /*
- Send event to smem_event_connect_request for aborting
- */
- if (!SetEvent(smem_event_connect_request))
- {
- DBUG_PRINT("error",("Got error: %ld from SetEvent of smem_event_connect_request",GetLastError()));
- }
-#endif
#endif
#elif defined(OS2)
pthread_cond_signal(&eventShutdown); // post semaphore
@@ -850,6 +841,18 @@ static void __cdecl kill_server(int sig_ptr)
else
sql_print_error(ER(ER_GOT_SIGNAL),my_progname,sig); /* purecov: inspected */
+#if defined(HAVE_SMEM) && defined(__WIN__)
+ /*
+ Send event to smem_event_connect_request for aborting
+ */
+ if (!SetEvent(smem_event_connect_request))
+ {
+ DBUG_PRINT("error",
+ ("Got error: %ld from SetEvent of smem_event_connect_request",
+ GetLastError()));
+ }
+#endif
+
#if defined(__NETWARE__) || (defined(USE_ONE_SIGNAL_HAND) && !defined(__WIN__) && !defined(OS2))
my_thread_init(); // If this is a new thread
#endif