From 489a3fe4ee6b8243d026197f8f74a1e3aa30a4d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 31 May 2007 20:04:54 +0200 Subject: Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables Setting a key_cache_block_size which is not a power of 2 could corrupt MyISAM tables. A couple of computations in the key cache code use bit operations which do only work if key_cache_block_size is a power of 2. Replaced bit operations by arithmetic operations to make key cache able to handle block sizes that are not a power of 2. include/keycache.h: Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables Removed element 'key_cache_shift' from KEY_CACHE after the changes in mf_keycache.c made it unused. mysql-test/r/key_cache.result: Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables Added test result mysql-test/t/key_cache.test: Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables Added test mysys/mf_keycache.c: Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables Replaced bit operations by arithmetic operations to make key cache able to handle block sizes that are not a power of 2. --- include/keycache.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include') diff --git a/include/keycache.h b/include/keycache.h index dc763b8cc08..54c099fc474 100644 --- a/include/keycache.h +++ b/include/keycache.h @@ -46,7 +46,6 @@ typedef struct st_key_cache my_bool key_cache_inited; my_bool resize_in_flush; /* true during flush of resize operation */ my_bool can_be_used; /* usage of cache for read/write is allowed */ - uint key_cache_shift; ulong key_cache_mem_size; /* specified size of the cache memory */ uint key_cache_block_size; /* size of the page buffer of a cache block */ ulong min_warm_blocks; /* min number of warm blocks; */ -- cgit v1.2.1