Commit fd0989e7 authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua
Browse files

fixed query cahe resize bug

parent 28142456
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -490,3 +490,19 @@ drop table t1;
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	0
set GLOBAL query_cache_size=1000;
show global variables like "query_cache_size";
Variable_name	Value
query_cache_size	0
set GLOBAL query_cache_size=1100;
set GLOBAL query_cache_size=1200;
set GLOBAL query_cache_size=1300;
set GLOBAL query_cache_size=1400;
set GLOBAL query_cache_size=1500;
set GLOBAL query_cache_size=1600;
set GLOBAL query_cache_size=1700;
set GLOBAL query_cache_size=1800;
set GLOBAL query_cache_size=1900;
show global variables like "query_cache_size";
Variable_name	Value
query_cache_size	1024
+16 −0
Original line number Diff line number Diff line
@@ -336,3 +336,19 @@ select a from t1;
show status like "Qcache_queries_in_cache";
drop table t1;
show status like "Qcache_queries_in_cache";

#
# Test of query cache resizing
#
set GLOBAL query_cache_size=1000;
show global variables like "query_cache_size";
set GLOBAL query_cache_size=1100;
set GLOBAL query_cache_size=1200;
set GLOBAL query_cache_size=1300;
set GLOBAL query_cache_size=1400;
set GLOBAL query_cache_size=1500;
set GLOBAL query_cache_size=1600;
set GLOBAL query_cache_size=1700;
set GLOBAL query_cache_size=1800;
set GLOBAL query_cache_size=1900;
show global variables like "query_cache_size";
+1 −1
Original line number Diff line number Diff line
@@ -467,7 +467,7 @@ struct show_var_st init_vars[]= {
  {sys_read_buff_size.name,   (char*) &sys_read_buff_size,	    SHOW_SYS},
  {sys_read_rnd_buff_size.name,(char*) &sys_read_rnd_buff_size,	    SHOW_SYS},
  {sys_rpl_recovery_rank.name,(char*) &sys_rpl_recovery_rank,       SHOW_SYS},
#ifdef HAVE_QUERTY_CACHE
#ifdef HAVE_QUERY_CACHE
  {sys_query_cache_limit.name,(char*) &sys_query_cache_limit,	    SHOW_SYS},
  {sys_query_cache_size.name, (char*) &sys_query_cache_size,	    SHOW_SYS},
  {sys_query_cache_type.name, (char*) &sys_query_cache_type,        SHOW_SYS},
+3 −2
Original line number Diff line number Diff line
@@ -1276,10 +1276,11 @@ ulong Query_cache::init_cache()
  query_cache_size -= additional_data_size;

  STRUCT_LOCK(&structure_guard_mutex);
  if (query_cache_size	<= min_allocation_unit)
  if (max_mem_bin_size	<= min_allocation_unit)
  {
    DBUG_PRINT("qcache",
	       (" query_cache_size <= min_allocation_unit => cache disabled"));
	       (" max bin size (%lu) <= min_allocation_unit => cache disabled",
		max_mem_bin_size));
    STRUCT_UNLOCK(&structure_guard_mutex);
    goto err;
  }