summaryrefslogtreecommitdiff
path: root/include/keycache.h
diff options
context:
space:
mode:
authorunknown <istruewing@chilla.local>2007-05-31 20:04:54 +0200
committerunknown <istruewing@chilla.local>2007-05-31 20:04:54 +0200
commit489a3fe4ee6b8243d026197f8f74a1e3aa30a4d8 (patch)
treefa7a327a0b4ab782ce7e0cdffe5bd4bd41b7f163 /include/keycache.h
parentb9ec849bb28a149652602de342300022416eca46 (diff)
downloadmariadb-git-489a3fe4ee6b8243d026197f8f74a1e3aa30a4d8.tar.gz
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.
Diffstat (limited to 'include/keycache.h')
-rw-r--r--include/keycache.h1
1 files changed, 0 insertions, 1 deletions
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; */