summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorKristofer Pettersson <kristofer.pettersson@sun.com>2009-10-29 12:19:36 +0100
committerKristofer Pettersson <kristofer.pettersson@sun.com>2009-10-29 12:19:36 +0100
commitddcdacb297ffd42f38743321f7861451e77ce142 (patch)
treeee40d9b2a4d8b057cf54f1c758a85e0cbc092ab4 /mysql-test
parent42cdc4df8f4a2ed375d935d7d3dd8a877fa9e007 (diff)
downloadmariadb-git-ddcdacb297ffd42f38743321f7861451e77ce142.tar.gz
Bug#38551 query cache can still consume [very little] cpu time even when it is off.
When the query cache is disabled, the server shouldn't attempt to take the query cache mutex. By using the command line option --query_cache_type=0, the user can disable (backport from mysql-pe) mysql-test/t/query_cache_disabled-master.opt: * added test case for bug38551 mysql-test/t/query_cache_disabled.test: * added test case for bug38551 sql/set_var.cc: * Added before-trigger to verify that query_cache_type wasn't turned off or on during runtime. sql/set_var.h: * Changed order on how the enumeration is processed. By first projecting the character representation of the variable to a temporary integer we can have one function instead of two to check if the value is valid. sql/share/errmsg-utf8.txt: * Added error message for query cache disabled state sql/sql_cache.cc: * If the query cache is disabled at start up, shorten the execution path and avoid grabbing the query cache mutex each time the invalidate interface methods are called. sql/sql_cache.h: * Added new methods to set the query cache into a disabled state.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/t/query_cache_disabled-master.opt1
-rw-r--r--mysql-test/t/query_cache_disabled.test15
2 files changed, 16 insertions, 0 deletions
diff --git a/mysql-test/t/query_cache_disabled-master.opt b/mysql-test/t/query_cache_disabled-master.opt
new file mode 100644
index 00000000000..d7d47164883
--- /dev/null
+++ b/mysql-test/t/query_cache_disabled-master.opt
@@ -0,0 +1 @@
+--query_cache_type=0
diff --git a/mysql-test/t/query_cache_disabled.test b/mysql-test/t/query_cache_disabled.test
new file mode 100644
index 00000000000..cbc98bd94d6
--- /dev/null
+++ b/mysql-test/t/query_cache_disabled.test
@@ -0,0 +1,15 @@
+-- source include/have_query_cache.inc
+#
+# Bug#38551 query cache can still consume [very little] cpu time even when it is off.
+#
+SHOW GLOBAL VARIABLES LIKE 'query_cache_type';
+--error ER_QUERY_CACHE_DISABLED
+SET GLOBAL query_cache_type=ON;
+--error ER_QUERY_CACHE_DISABLED
+SET GLOBAL query_cache_type=DEMAND;
+--error ER_QUERY_CACHE_DISABLED
+SET GLOBAL query_cache_type=OFF;
+SET GLOBAL query_cache_size=1024*1024;
+SHOW GLOBAL VARIABLES LIKE 'query_cache_size';
+SET GLOBAL query_cache_size=0;
+