-
unknown authored
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.
489a3fe4