From f9d183b5dc8b414948b20296ff1f754bdcad5943 Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.(none)" <> Date: Sat, 17 May 2008 12:53:47 +0500 Subject: [PATCH] Bug #36705 key_buffer_size of >= 2G allocates all availabel virtual memory on 64-bit wondo. temporary variables of 'long' types were used to store ulong values, that causes init_key_cache to receive distorted parameters --- sql/handler.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index 40b85a0901c..0de772e366b 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2350,8 +2350,8 @@ int ha_init_key_cache(const char *name, KEY_CACHE *key_cache) if (!key_cache->key_cache_inited) { pthread_mutex_lock(&LOCK_global_system_variables); - long tmp_buff_size= (long) key_cache->param_buff_size; - long tmp_block_size= (long) key_cache->param_block_size; + ulong tmp_buff_size= (ulong) key_cache->param_buff_size; + uint tmp_block_size= (uint) key_cache->param_block_size; uint division_limit= key_cache->param_division_limit; uint age_threshold= key_cache->param_age_threshold; pthread_mutex_unlock(&LOCK_global_system_variables);