• unknown's avatar
    Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables · 489a3fe4
    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
mf_keycache.c 89.1 KB