Commit c184cd63 authored by unknown's avatar unknown

Bug#25132 disabled query cache: Qcache_free_blocks = 1

The initial value of free memory blocks in 0. When the query cache is enabled 
a new memory block gets allocated and is assigned number 1. The free memory
block is later split each time query cache memory is allocated for new blocks.
This means that the free memory block counter won't be reduced to zero when
the number of allocated blocks are zero, but rather one. To avoid confusion
this patch changes this behavior so that the free memory block counter is
reset to zero when the query cache is disabled.
Note that when the query cache is enabled and resized the free memory block
counter was still calculated correctly.


mysql-test/r/query_cache.result:
  test case
mysql-test/t/query_cache.test:
  test case
sql/sql_cache.cc:
  Restore the memory block count to 0 for consistency.
parent a89ba0c6
......@@ -1650,6 +1650,16 @@ Variable_name Value
Qcache_queries_in_cache 1
DROP DATABASE bug30269;
DROP USER 'bug30269'@'localhost';
#
# Bug#25132 disabled query cache: Qcache_free_blocks = 1
#
set global query_cache_size=100000;
set global query_cache_size=0;
set global query_cache_type=0;
show status like 'Qcache_free_blocks';
Variable_name Value
Qcache_free_blocks 0
Restore default values.
set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
......
......@@ -1251,6 +1251,15 @@ DROP DATABASE bug30269;
disconnect bug30269;
DROP USER 'bug30269'@'localhost';
--echo #
--echo # Bug#25132 disabled query cache: Qcache_free_blocks = 1
--echo #
set global query_cache_size=100000;
set global query_cache_size=0;
set global query_cache_type=0;
show status like 'Qcache_free_blocks';
--echo Restore default values.
set GLOBAL query_cache_type=default;
set GLOBAL query_cache_limit=default;
set GLOBAL query_cache_min_res_unit=default;
......
......@@ -1794,6 +1794,7 @@ void Query_cache::make_disabled()
query_cache_size= 0;
queries_blocks= 0;
free_memory= 0;
free_memory_blocks= 0;
bins= 0;
steps= 0;
cache= 0;
......
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