=== modified file 'mysql-test/r/query_cache.result'
--- a/mysql-test/r/query_cache.result	2008-06-19 00:40:35 +0000
+++ b/mysql-test/r/query_cache.result	2008-07-16 22:29:22 +0000
@@ -564,7 +564,7 @@
 a
 set GLOBAL query_cache_size=1024;
 Warnings:
-Warning	1282	Query cache failed to set size 1024 (minimal value: 41297); new query cache size is 0
+Warning	1282	Query cache failed to set size 1024; new query cache size is 0
 show global variables like "query_cache_size";
 Variable_name	Value
 query_cache_size	0
@@ -572,7 +572,7 @@
 a
 set GLOBAL query_cache_size=10240;
 Warnings:
-Warning	1282	Query cache failed to set size 10240 (minimal value: 41297); new query cache size is 0
+Warning	1282	Query cache failed to set size 10240; new query cache size is 0
 show global variables like "query_cache_size";
 Variable_name	Value
 query_cache_size	0
@@ -580,7 +580,7 @@
 a
 set GLOBAL query_cache_size=20480;
 Warnings:
-Warning	1282	Query cache failed to set size 20480 (minimal value: 41297); new query cache size is 0
+Warning	1282	Query cache failed to set size 20480; new query cache size is 0
 show global variables like "query_cache_size";
 Variable_name	Value
 query_cache_size	0
@@ -588,7 +588,7 @@
 a
 set GLOBAL query_cache_size=40960;
 Warnings:
-Warning	1282	Query cache failed to set size 40960 (minimal value: 41297); new query cache size is 0
+Warning	1282	Query cache failed to set size 40960; new query cache size is 0
 show global variables like "query_cache_size";
 Variable_name	Value
 query_cache_size	0

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2008-06-19 00:40:35 +0000
+++ b/sql/set_var.cc	2008-07-16 22:29:22 +0000
@@ -1342,7 +1342,12 @@
 static void fix_query_cache_size(THD *thd, enum_var_type type)
 {
 #ifdef HAVE_QUERY_CACHE
-  query_cache_size= query_cache.resize(query_cache_size);
+  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);
 #endif
 }
 

=== modified file 'sql/share/errmsg.txt'
--- a/sql/share/errmsg.txt	2008-06-19 00:40:35 +0000
+++ b/sql/share/errmsg.txt	2008-07-16 22:29:22 +0000
@@ -4992,13 +4992,13 @@
 	spa "Nombre de catalog incorrecto '%-.100s'"
 	swe "Felaktigt katalog namn '%-.100s'"
 ER_WARN_QC_RESIZE  
-	eng "Query cache failed to set size %lu (minimal value: %lu); new query cache size is %lu"
-	ger "Änderung der Query-Cache-Größe auf %lu (Minimale Zahl: %lu) fehlgeschlagen; neue Query-Cache-Größe ist %lu"
-	por "Falha em Query cache para configurar tamanho %lu (Número mínimo: %lu), novo tamanho de query cache é %lu"
-	rus "ëÅÛ ÚÁÐÒÏÓÏ× ÎÅ ÍÏÖÅÔ ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ %lu (minimal value: %lu), ÎÏ×ÙÊ ÒÁÚÍÅÒ ËÅÛÁ ÚÐÒÏÓÏ× - %lu"
-	spa "Query cache fallada para configurar tamaño %lu (Número mínimo: %lu), nuevo tamaño de query cache es %lu"
-	swe "Storleken av "Query cache" kunde inte sättas till %lu (minsta värde: %lu); ny storlek är %lu"
-	ukr "ëÅÛ ÚÁÐÉÔ¦× ÎÅÓÐÒÏÍÏÖÅÎ ×ÓÔÁÎÏ×ÉÔÉ ÒÏÚÍ¦Ò %lu (minimal value: %lu), ÎÏ×ÉÊ ÒÏÚÍ¦Ò ËÅÛÁ ÚÁÐÉÔ¦× - %lu"
+	eng "Query cache failed to set size %lu; new query cache size is %lu"
+	ger "Änderung der Query-Cache-Größe auf %lu fehlgeschlagen; neue Query-Cache-Größe 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 tamaño %lu, nuevo tamaño de query cache es %lu"
+	swe "Storleken av "Query cache" kunde inte sättas till %lu, ny storlek är %lu"
+	ukr "ëÅÛ ÚÁÐÉÔ¦× ÎÅÓÐÒÏÍÏÖÅÎ ×ÓÔÁÎÏ×ÉÔÉ ÒÏÚÍ¦Ò %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"

=== modified file 'sql/sql_cache.cc'
--- a/sql/sql_cache.cc	2008-06-19 00:40:35 +0000
+++ b/sql/sql_cache.cc	2008-07-16 22:29:22 +0000
@@ -816,16 +816,6 @@
   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);
 }
@@ -1624,25 +1614,6 @@
 }
 
 
-/**
-  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;

=== modified file 'sql/sql_cache.h'
--- a/sql/sql_cache.h	2008-06-19 00:40:35 +0000
+++ b/sql/sql_cache.h	2008-07-16 22:29:22 +0000
@@ -245,8 +245,6 @@
 
   void free_query_internal(Query_cache_block *point);
 
-  ulong get_minimal_size_limit();
-
 protected:
   /*
     The following mutex is locked when searching or changing global


