@@ -219,4 +219,31 @@ set global key_cache_block_size= @my_key_cache_block_size;
219219set @@global.key_buffer_size=0;
220220select @@global.key_buffer_size;
221221
222+ #
223+ # Bug#28478 - Improper key_cache_block_size corrupts MyISAM tables
224+ #
225+ SET @bug28478_key_cache_block_size= @@global.key_cache_block_size;
226+ SET GLOBAL key_cache_block_size= 1536;
227+ CREATE TABLE t1 (
228+ id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
229+ c1 CHAR(150),
230+ c2 CHAR(150),
231+ c3 CHAR(150),
232+ KEY(c1, c2, c3)
233+ ) ENGINE= MyISAM;
234+ INSERT INTO t1 (c1, c2, c3) VALUES
235+ ('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e'), ('d', 'e', 'f'),
236+ ('e', 'f', 'g'), ('f', 'g', 'h'), ('g', 'h', 'i'), ('h', 'i', 'j'),
237+ ('i', 'j', 'k'), ('j', 'k', 'l'), ('k', 'l', 'm'), ('l', 'm', 'n'),
238+ ('m', 'n', 'o'), ('n', 'o', 'p'), ('o', 'p', 'q'), ('p', 'q', 'r'),
239+ ('q', 'r', 's'), ('r', 's', 't'), ('s', 't', 'u'), ('t', 'u', 'v'),
240+ ('u', 'v', 'w'), ('v', 'w', 'x'), ('w', 'x', 'y'), ('x', 'y', 'z');
241+ INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
242+ INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
243+ INSERT INTO t1 (c1, c2, c3) SELECT c1, c2, c3 from t1;
244+ CHECK TABLE t1;
245+ SHOW VARIABLES LIKE 'key_cache_block_size';
246+ SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
247+ DROP TABLE t1;
248+
222249# End of 4.1 tests
0 commit comments