Loading mysql-test/r/drop.result +2 −2 Original line number Diff line number Diff line Loading @@ -30,13 +30,13 @@ table7, table8, table9, table10, table11, table12, table13, table14, table15, table16, table17, table18, table19, table20, table21, table22, table23, table24, table25, table26, table27, table28; ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table' ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table' drop table table1, table2, table3, table4, table5, table6, table7, table8, table9, table10, table11, table12, table13, table14, table15, table16, table17, table18, table19, table20, table21, table22, table23, table24, table25, table26, table27, table28, table29, table30; ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table' ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table' use test; drop database mysqltest; flush tables with read lock; Loading mysql-test/r/innodb-replace.result +1 −0 Original line number Diff line number Diff line drop table if exists t1; create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb; select * from t1; c1 c2 stamp Loading mysql-test/t/innodb-replace.test +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ # embedded server ignores 'delayed', so skip this -- source include/not_embedded.inc --disable_warnings drop table if exists t1; --enable_warnings # # Bug #1078 # Loading mysys/default.c +35 −27 Original line number Diff line number Diff line Loading @@ -402,33 +402,48 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, continue; /* Configuration File Directives */ if ((*ptr == '!') && (recursion_level < max_recursion_level)) if ((*ptr == '!')) { if (recursion_level >= max_recursion_level) { for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; fprintf(stderr, "Warning: skipping '%s' directive as maximum include" "recursion level was reached in file %s at line %d\n", ptr, name, line); continue; } /* skip over `!' and following whitespace */ for (++ptr; my_isspace(&my_charset_latin1, ptr[0]); ptr++) {} if ((!strncmp(ptr, includedir_keyword, sizeof(includedir_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1])) if ((!strncmp(ptr, includedir_keyword, sizeof(includedir_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1])) { /* skip over "includedir" and following whitespace */ for (ptr+= sizeof(includedir_keyword) - 1; my_isspace(&my_charset_latin1, ptr[0]); ptr++) {} /* trim trailing whitespace from directory name */ end= ptr + strlen(ptr) - 1; /* fgets() stores the newline character in the buffer */ if ((end[0] == '\n') || (end[0] == '\r') || my_isspace(&my_charset_latin1, end[0])) { for (; my_isspace(&my_charset_latin1, *(end - 1)); end--) /* trim trailing whitespace from directory name The -1 below is for the newline added by fgets() Note that my_isspace() is true for \r and \n */ for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; } /* print error msg if there is nothing after !includedir directive */ if (end == ptr) if (end <= ptr) { fprintf(stderr, "error: Wrong !includedir directive in config " Loading Loading @@ -468,8 +483,8 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, my_dirend(search_dir); } else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword) - 1])) else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword)-1])) { /* skip over `include' and following whitespace */ for (ptr+= sizeof(include_keyword) - 1; Loading @@ -477,12 +492,13 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, {} /* trim trailing whitespace from filename */ end= ptr + strlen(ptr) - 1; for (; my_isspace(&my_charset_latin1, *(end - 1)) ; end--) for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; if (end == ptr) if (end <= ptr) { fprintf(stderr, "error: Wrong !include directive in config " Loading @@ -497,14 +513,6 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, continue; } else if (recursion_level >= max_recursion_level) { fprintf(stderr, "warning: skipping !include directive as maximum include" "recursion level was reached in file %s at line %d\n", name, line); } if (*ptr == '[') /* Group name */ { Loading mysys/mf_keycache.c +7 −4 Original line number Diff line number Diff line Loading @@ -1025,7 +1025,7 @@ static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count) for a too long time (this time is determined by parameter age_threshold). */ static inline void unreg_request(KEY_CACHE *keycache, static void unreg_request(KEY_CACHE *keycache, BLOCK_LINK *block, int at_end) { if (! --block->requests) Loading @@ -1045,10 +1045,13 @@ static inline void unreg_request(KEY_CACHE *keycache, } link_block(keycache, block, hot, (my_bool)at_end); block->last_hit_time= keycache->keycache_time; if (++keycache->keycache_time - keycache->used_ins->last_hit_time > keycache->keycache_time++; block= keycache->used_ins; /* Check if we should link a hot block to the warm block */ if (block && keycache->keycache_time - block->last_hit_time > keycache->age_threshold) { block= keycache->used_ins; unlink_block(keycache, block); link_block(keycache, block, 0, 0); if (block->temperature != BLOCK_WARM) Loading Loading
mysql-test/r/drop.result +2 −2 Original line number Diff line number Diff line Loading @@ -30,13 +30,13 @@ table7, table8, table9, table10, table11, table12, table13, table14, table15, table16, table17, table18, table19, table20, table21, table22, table23, table24, table25, table26, table27, table28; ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table' ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table' drop table table1, table2, table3, table4, table5, table6, table7, table8, table9, table10, table11, table12, table13, table14, table15, table16, table17, table18, table19, table20, table21, table22, table23, table24, table25, table26, table27, table28, table29, table30; ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table14,table15,table16,table17,table18,table19,table20,table21,table22,table23,table' ERROR 42S02: Unknown table 'table1,table2,table3,table4,table5,table6,table7,table8,table9,table10,table11,table12,table13,table' use test; drop database mysqltest; flush tables with read lock; Loading
mysql-test/r/innodb-replace.result +1 −0 Original line number Diff line number Diff line drop table if exists t1; create table t1 (c1 char(5) unique not null, c2 int, stamp timestamp) engine=innodb; select * from t1; c1 c2 stamp Loading
mysql-test/t/innodb-replace.test +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ # embedded server ignores 'delayed', so skip this -- source include/not_embedded.inc --disable_warnings drop table if exists t1; --enable_warnings # # Bug #1078 # Loading
mysys/default.c +35 −27 Original line number Diff line number Diff line Loading @@ -402,33 +402,48 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, continue; /* Configuration File Directives */ if ((*ptr == '!') && (recursion_level < max_recursion_level)) if ((*ptr == '!')) { if (recursion_level >= max_recursion_level) { for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; fprintf(stderr, "Warning: skipping '%s' directive as maximum include" "recursion level was reached in file %s at line %d\n", ptr, name, line); continue; } /* skip over `!' and following whitespace */ for (++ptr; my_isspace(&my_charset_latin1, ptr[0]); ptr++) {} if ((!strncmp(ptr, includedir_keyword, sizeof(includedir_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1])) if ((!strncmp(ptr, includedir_keyword, sizeof(includedir_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1])) { /* skip over "includedir" and following whitespace */ for (ptr+= sizeof(includedir_keyword) - 1; my_isspace(&my_charset_latin1, ptr[0]); ptr++) {} /* trim trailing whitespace from directory name */ end= ptr + strlen(ptr) - 1; /* fgets() stores the newline character in the buffer */ if ((end[0] == '\n') || (end[0] == '\r') || my_isspace(&my_charset_latin1, end[0])) { for (; my_isspace(&my_charset_latin1, *(end - 1)); end--) /* trim trailing whitespace from directory name The -1 below is for the newline added by fgets() Note that my_isspace() is true for \r and \n */ for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; } /* print error msg if there is nothing after !includedir directive */ if (end == ptr) if (end <= ptr) { fprintf(stderr, "error: Wrong !includedir directive in config " Loading Loading @@ -468,8 +483,8 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, my_dirend(search_dir); } else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword) - 1])) else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) && my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword)-1])) { /* skip over `include' and following whitespace */ for (ptr+= sizeof(include_keyword) - 1; Loading @@ -477,12 +492,13 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, {} /* trim trailing whitespace from filename */ end= ptr + strlen(ptr) - 1; for (; my_isspace(&my_charset_latin1, *(end - 1)) ; end--) for (end= ptr + strlen(ptr) - 1; my_isspace(&my_charset_latin1, *(end - 1)); end--) {} end[0]= 0; if (end == ptr) if (end <= ptr) { fprintf(stderr, "error: Wrong !include directive in config " Loading @@ -497,14 +513,6 @@ static int search_default_file_with_ext(DYNAMIC_ARRAY *args, MEM_ROOT *alloc, continue; } else if (recursion_level >= max_recursion_level) { fprintf(stderr, "warning: skipping !include directive as maximum include" "recursion level was reached in file %s at line %d\n", name, line); } if (*ptr == '[') /* Group name */ { Loading
mysys/mf_keycache.c +7 −4 Original line number Diff line number Diff line Loading @@ -1025,7 +1025,7 @@ static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count) for a too long time (this time is determined by parameter age_threshold). */ static inline void unreg_request(KEY_CACHE *keycache, static void unreg_request(KEY_CACHE *keycache, BLOCK_LINK *block, int at_end) { if (! --block->requests) Loading @@ -1045,10 +1045,13 @@ static inline void unreg_request(KEY_CACHE *keycache, } link_block(keycache, block, hot, (my_bool)at_end); block->last_hit_time= keycache->keycache_time; if (++keycache->keycache_time - keycache->used_ins->last_hit_time > keycache->keycache_time++; block= keycache->used_ins; /* Check if we should link a hot block to the warm block */ if (block && keycache->keycache_time - block->last_hit_time > keycache->age_threshold) { block= keycache->used_ins; unlink_block(keycache, block); link_block(keycache, block, 0, 0); if (block->temperature != BLOCK_WARM) Loading