# # CACHE INDEX and LOAD INDEX INTO CACHE # --source have_engine.inc --source have_default_index.inc # Due to ancient MySQL bug#16111 we need to generate a unique cache name --let $cache_name = `SELECT CONNECTION_ID()` --let $cache_name = my_cache_$cache_name --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings let $create_definition = a $int_indexed_col, b $char_col, $default_index (a) ; --source create_table.inc if ($mysql_errname) { --let $functionality = Indexes on INT columns --source unexpected_result.inc } if (!$mysql_errname) { let $create_definition = a $int_col, b $char_indexed_col, $default_index (b) ; let $table_name = t2; --source create_table.inc if ($mysql_errname) { --let $functionality = Indexes on CHAR columns --source unexpected_result.inc } if (!$mysql_errname) { --replace_result $cache_name --let $error_codes = ER_UNKNOWN_KEY_CACHE eval CACHE INDEX t1 INDEX (a), t2 IN $cache_name; --source check_errors.inc if ($mysql_errname != ER_UNKNOWN_KEY_CACHE) { --let $functionality = Key cache or indexes --source unexpected_result.inc } --replace_result $cache_name eval SET GLOBAL $cache_name.key_buffer_size=128*1024; --replace_result $cache_name eval CACHE INDEX t1 INDEX (a), t2 IN $cache_name; if ($mysql_errname) { --let $functionality = Indexes --source unexpected_result.inc } LOAD INDEX INTO CACHE t1, t2; if ($mysql_errname) { --let $functionality = Indexes --source unexpected_result.inc } INSERT INTO t1 (a,b) VALUES (3,'c'),(4,'d'); --replace_result $cache_name eval SET GLOBAL $cache_name.key_buffer_size=8*1024; LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES; --replace_result $cache_name eval SET GLOBAL $cache_name.key_cache_age_threshold = 100, $cache_name.key_cache_block_size = 512, $cache_name.key_cache_division_limit = 1, $cache_name.key_cache_segments=2; INSERT INTO t1 (a,b) VALUES (5,'e'),(6,'f'); LOAD INDEX INTO CACHE t1; --replace_result $cache_name eval SET GLOBAL new_$cache_name.key_buffer_size=128*1024; --replace_result $cache_name eval CACHE INDEX t1 IN new_$cache_name; INSERT INTO t1 (a,b) VALUES (7,'g'),(8,'h'); LOAD INDEX INTO CACHE t1 IGNORE LEAVES; INSERT INTO t1 (a,b) VALUES (9,'i'); DROP TABLE t2; } DROP TABLE t1; } let $create_definition = a $int_indexed_col, b $char_indexed_col, $default_index (a), $default_index (b) ; --source create_table.inc if ($mysql_errname) { --let $functionality = Multiple keys or indexes on INT or CHAR columns --source unexpected_result.inc } if (!$mysql_errname) { --replace_result $cache_name eval CACHE INDEX t1 IN $cache_name; INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'); LOAD INDEX INTO CACHE t1; DROP TABLE t1; let $create_definition = a $int_indexed_col, b $char_indexed_col, $default_index a_b (a,b) ; --source create_table.inc if ($mysql_errname) { --let $functionality = Multi-part keys --source unexpected_result.inc } --replace_result $cache_name eval CACHE INDEX t1 IN $cache_name; INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'); LOAD INDEX INTO CACHE t1; DROP TABLE t1; } # Cleanup --replace_result $cache_name eval SET GLOBAL $cache_name.key_buffer_size=0; --replace_result $cache_name eval SET GLOBAL new_$cache_name.key_buffer_size=0; --source cleanup_engine.inc