Loading mysql-test/r/query_cache.result +4 −4 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ select * from t1; a set GLOBAL query_cache_size=1024; Warnings: Warning 1282 Query cache failed to set size 1024; new query cache size is 0 Warning 1282 Query cache failed to set size 1024 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -572,7 +572,7 @@ select * from t1; a set GLOBAL query_cache_size=10240; Warnings: Warning 1282 Query cache failed to set size 10240; new query cache size is 0 Warning 1282 Query cache failed to set size 10240 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -580,7 +580,7 @@ select * from t1; a set GLOBAL query_cache_size=20480; Warnings: Warning 1282 Query cache failed to set size 20480; new query cache size is 0 Warning 1282 Query cache failed to set size 20480 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -588,7 +588,7 @@ select * from t1; a set GLOBAL query_cache_size=40960; Warnings: Warning 1282 Query cache failed to set size 40960; new query cache size is 0 Warning 1282 Query cache failed to set size 40960 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading sql/set_var.cc +1 −6 Original line number Diff line number Diff line Loading @@ -1342,12 +1342,7 @@ static void fix_net_retry_count(THD *thd __attribute__((unused)), static void fix_query_cache_size(THD *thd, enum_var_type type) { #ifdef HAVE_QUERY_CACHE ulong requested= query_cache_size; query_cache.resize(query_cache_size); if (requested != query_cache_size) push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_QC_RESIZE, ER(ER_WARN_QC_RESIZE), requested, query_cache_size); query_cache_size= query_cache.resize(query_cache_size); #endif } Loading sql/share/errmsg.txt +7 −7 Original line number Diff line number Diff line Loading @@ -4992,13 +4992,13 @@ ER_WRONG_NAME_FOR_CATALOG 42000 spa "Nombre de catalog incorrecto '%-.100s'" swe "Felaktigt katalog namn '%-.100s'" ER_WARN_QC_RESIZE eng "Query cache failed to set size %lu; new query cache size is %lu" ger "nderung der Query-Cache-Gre auf %lu fehlgeschlagen; neue Query-Cache-Gre ist %lu" por "Falha em Query cache para configurar tamanho %lu, novo tamanho de query cache %lu" rus " %lu, - %lu" spa "Query cache fallada para configurar tamao %lu, nuevo tamao de query cache es %lu" swe "Storleken av "Query cache" kunde inte sttas till %lu, ny storlek r %lu" ukr " Ԧ ͦ %lu, ͦ Ԧ - %lu" eng "Query cache failed to set size %lu (minimal value: %lu); new query cache size is %lu" ger "nderung der Query-Cache-Gre auf %lu (Minimale Zahl: %lu) fehlgeschlagen; neue Query-Cache-Gre ist %lu" por "Falha em Query cache para configurar tamanho %lu (Nmero mnimo: %lu), novo tamanho de query cache %lu" rus " %lu (minimal value: %lu), - %lu" spa "Query cache fallada para configurar tamao %lu (Nmero mnimo: %lu), nuevo tamao de query cache es %lu" swe "Storleken av "Query cache" kunde inte sttas till %lu (minsta vrde: %lu); ny storlek r %lu" ukr " Ԧ ͦ %lu (minimal value: %lu), ͦ Ԧ - %lu" ER_BAD_FT_COLUMN eng "Column '%-.64s' cannot be part of FULLTEXT index" ger "Feld '%-.64s' kann nicht Teil eines FULLTEXT-Index sein" Loading sql/sql_cache.cc +29 −0 Original line number Diff line number Diff line Loading @@ -816,6 +816,16 @@ ulong Query_cache::resize(ulong query_cache_size_arg) free_cache(); query_cache_size= query_cache_size_arg; ::query_cache_size= init_cache(); if (::query_cache_size != query_cache_size_arg) { push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_QC_RESIZE, ER(ER_WARN_QC_RESIZE), query_cache_size_arg, get_minimal_size_limit(), ::query_cache_size); } STRUCT_UNLOCK(&structure_guard_mutex); DBUG_RETURN(::query_cache_size); } Loading Loading @@ -1614,6 +1624,25 @@ void Query_cache::init() } /** Return the lowest possible query cache size. */ ulong Query_cache::get_minimal_size_limit() { ulong approx_additional_data_size= (sizeof(Query_cache) + sizeof(gptr)*(def_query_hash_size+ def_table_hash_size)); ulong data_size= (min_allocation_unit << QUERY_CACHE_MEM_BIN_STEP_PWR2 << QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2) + ALIGN_SIZE(1) - 1 + (1 << QUERY_CACHE_MEM_BIN_STEP_PWR2) - 1 + (1 << QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2) - 1; return(data_size + approx_additional_data_size); } ulong Query_cache::init_cache() { uint mem_bin_count, num, step; Loading sql/sql_cache.h +2 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,8 @@ class Query_cache void free_query_internal(Query_cache_block *point); ulong get_minimal_size_limit(); protected: /* The following mutex is locked when searching or changing global Loading Loading
mysql-test/r/query_cache.result +4 −4 Original line number Diff line number Diff line Loading @@ -564,7 +564,7 @@ select * from t1; a set GLOBAL query_cache_size=1024; Warnings: Warning 1282 Query cache failed to set size 1024; new query cache size is 0 Warning 1282 Query cache failed to set size 1024 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -572,7 +572,7 @@ select * from t1; a set GLOBAL query_cache_size=10240; Warnings: Warning 1282 Query cache failed to set size 10240; new query cache size is 0 Warning 1282 Query cache failed to set size 10240 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -580,7 +580,7 @@ select * from t1; a set GLOBAL query_cache_size=20480; Warnings: Warning 1282 Query cache failed to set size 20480; new query cache size is 0 Warning 1282 Query cache failed to set size 20480 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading @@ -588,7 +588,7 @@ select * from t1; a set GLOBAL query_cache_size=40960; Warnings: Warning 1282 Query cache failed to set size 40960; new query cache size is 0 Warning 1282 Query cache failed to set size 40960 (minimal value: 41297); new query cache size is 0 show global variables like "query_cache_size"; Variable_name Value query_cache_size 0 Loading
sql/set_var.cc +1 −6 Original line number Diff line number Diff line Loading @@ -1342,12 +1342,7 @@ static void fix_net_retry_count(THD *thd __attribute__((unused)), static void fix_query_cache_size(THD *thd, enum_var_type type) { #ifdef HAVE_QUERY_CACHE ulong requested= query_cache_size; query_cache.resize(query_cache_size); if (requested != query_cache_size) push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_QC_RESIZE, ER(ER_WARN_QC_RESIZE), requested, query_cache_size); query_cache_size= query_cache.resize(query_cache_size); #endif } Loading
sql/share/errmsg.txt +7 −7 Original line number Diff line number Diff line Loading @@ -4992,13 +4992,13 @@ ER_WRONG_NAME_FOR_CATALOG 42000 spa "Nombre de catalog incorrecto '%-.100s'" swe "Felaktigt katalog namn '%-.100s'" ER_WARN_QC_RESIZE eng "Query cache failed to set size %lu; new query cache size is %lu" ger "nderung der Query-Cache-Gre auf %lu fehlgeschlagen; neue Query-Cache-Gre ist %lu" por "Falha em Query cache para configurar tamanho %lu, novo tamanho de query cache %lu" rus " %lu, - %lu" spa "Query cache fallada para configurar tamao %lu, nuevo tamao de query cache es %lu" swe "Storleken av "Query cache" kunde inte sttas till %lu, ny storlek r %lu" ukr " Ԧ ͦ %lu, ͦ Ԧ - %lu" eng "Query cache failed to set size %lu (minimal value: %lu); new query cache size is %lu" ger "nderung der Query-Cache-Gre auf %lu (Minimale Zahl: %lu) fehlgeschlagen; neue Query-Cache-Gre ist %lu" por "Falha em Query cache para configurar tamanho %lu (Nmero mnimo: %lu), novo tamanho de query cache %lu" rus " %lu (minimal value: %lu), - %lu" spa "Query cache fallada para configurar tamao %lu (Nmero mnimo: %lu), nuevo tamao de query cache es %lu" swe "Storleken av "Query cache" kunde inte sttas till %lu (minsta vrde: %lu); ny storlek r %lu" ukr " Ԧ ͦ %lu (minimal value: %lu), ͦ Ԧ - %lu" ER_BAD_FT_COLUMN eng "Column '%-.64s' cannot be part of FULLTEXT index" ger "Feld '%-.64s' kann nicht Teil eines FULLTEXT-Index sein" Loading
sql/sql_cache.cc +29 −0 Original line number Diff line number Diff line Loading @@ -816,6 +816,16 @@ ulong Query_cache::resize(ulong query_cache_size_arg) free_cache(); query_cache_size= query_cache_size_arg; ::query_cache_size= init_cache(); if (::query_cache_size != query_cache_size_arg) { push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_QC_RESIZE, ER(ER_WARN_QC_RESIZE), query_cache_size_arg, get_minimal_size_limit(), ::query_cache_size); } STRUCT_UNLOCK(&structure_guard_mutex); DBUG_RETURN(::query_cache_size); } Loading Loading @@ -1614,6 +1624,25 @@ void Query_cache::init() } /** Return the lowest possible query cache size. */ ulong Query_cache::get_minimal_size_limit() { ulong approx_additional_data_size= (sizeof(Query_cache) + sizeof(gptr)*(def_query_hash_size+ def_table_hash_size)); ulong data_size= (min_allocation_unit << QUERY_CACHE_MEM_BIN_STEP_PWR2 << QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2) + ALIGN_SIZE(1) - 1 + (1 << QUERY_CACHE_MEM_BIN_STEP_PWR2) - 1 + (1 << QUERY_CACHE_MEM_BIN_FIRST_STEP_PWR2) - 1; return(data_size + approx_additional_data_size); } ulong Query_cache::init_cache() { uint mem_bin_count, num, step; Loading
sql/sql_cache.h +2 −0 Original line number Diff line number Diff line Loading @@ -245,6 +245,8 @@ class Query_cache void free_query_internal(Query_cache_block *point); ulong get_minimal_size_limit(); protected: /* The following mutex is locked when searching or changing global Loading