Loading client/mysqltest.c +20 −15 Original line number Diff line number Diff line Loading @@ -352,7 +352,9 @@ static void abort_not_supported_test() static void verbose_msg(const char* fmt, ...) { va_list args; if (!verbose) return; DBUG_ENTER("verbose_msg"); if (!verbose) DBUG_VOID_RETURN; va_start(args, fmt); Loading @@ -360,6 +362,7 @@ static void verbose_msg(const char* fmt, ...) vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); va_end(args); DBUG_VOID_RETURN; } Loading Loading @@ -446,7 +449,7 @@ VAR* var_get(const char* var_name, const char** var_name_end, int raw) { const char* save_var_name = var_name, *end; end = (var_name_end) ? *var_name_end : 0; while(isalnum(*var_name) || *var_name == '_') while (isvar(*var_name)) { if(end && var_name == end) break; Loading Loading @@ -1522,10 +1525,12 @@ void reject_dump(const char* record_file, char* buf, int size) str_to_file(fn_format(reject_file, record_file,"",".reject",2), buf, size); } /* flags control the phased/stages of query execution to be performed /* * flags control the phased/stages of query execution to be performed * if QUERY_SEND bit is on, the query will be sent. If QUERY_REAP is on * the result will be read - for regular query, both bits must be on */ int run_query(MYSQL* mysql, struct st_query* q, int flags) { MYSQL_RES* res = 0; Loading Loading @@ -1576,8 +1581,6 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) if (q->abort_on_error) die("At line %u: query '%s' failed: %d: %s", start_lineno, query, mysql_errno(mysql), mysql_error(mysql)); /*die("At line %u: Failed in mysql_store_result for query '%s' (%d)", start_lineno, query, mysql_errno(mysql));*/ else { for (i=0 ; q->expected_errno[i] ; i++) Loading @@ -1587,13 +1590,15 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) } if (i) { verbose_msg("query '%s' failed with wrong errno\ %d instead of %d...", q->query, mysql_errno(mysql), q->expected_errno[0]); verbose_msg("query '%s' failed with wrong errno %d instead of %d...", q->query, mysql_errno(mysql), q->expected_errno[0]); error=1; goto end; } verbose_msg("query '%s' failed: %d: %s", q->query, mysql_errno(mysql), mysql_error(mysql)); /* if we do not abort on error, failure to run the query does /* if we do not abort on error, failure to run the query does not fail the whole test case */ goto end; Loading Loading @@ -1758,7 +1763,7 @@ static void init_var_hash() die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", ""); var_from_env("MYSQL_TEST_DIR", "/tmp"); } int main(int argc, char** argv) Loading myisam/mi_check.c +7 −1 Original line number Diff line number Diff line Loading @@ -1102,6 +1102,10 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, share->pack.header_length; got_error=1; new_file= -1; sort_info->buff=0; sort_info->buff_length=0; sort_info->record=0; if (!(param->testflag & T_SILENT)) { printf("- recovering (with keycache) MyISAM-table '%s'\n",name); Loading @@ -1114,7 +1118,10 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, if (init_io_cache(¶m->read_cache,info->dfile, (uint) param->read_buffer_length, READ_CACHE,share->pack.header_length,1,MYF(MY_WME))) { bzero(&info->rec_cache,sizeof(info->rec_cache)); goto err; } if (!rep_quick) if (init_io_cache(&info->rec_cache,-1,(uint) param->write_buffer_length, WRITE_CACHE, new_header_length, 1, Loading @@ -1122,7 +1129,6 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, goto err; info->opt_flag|=WRITE_CACHE_USED; sort_info->start_recpos=0; sort_info->buff=0; sort_info->buff_length=0; if (!(sort_info->record=(byte*) my_malloc((uint) share->base.pack_reclength, MYF(0)))) { Loading myisam/mi_create.c +50 −26 Original line number Diff line number Diff line Loading @@ -38,12 +38,13 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, register uint i,j; File dfile,file; int errpos,save_errno; myf create_flag; uint fields,length,max_key_length,packed,pointer, key_length,info_length,key_segs,options,min_key_length_skipp, base_pos,varchar_count,long_varchar_count,varchar_length, max_key_block_length,unique_key_parts,offset; ulong reclength, real_reclength,min_pack_length; char buff[FN_REFLEN]; char filename[FN_REFLEN],linkname[FN_REFLEN], *linkname_ptr; ulong pack_reclength; ulonglong tot_length,max_rows; enum en_fieldtype type; Loading Loading @@ -468,11 +469,30 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, if (! (flags & HA_DONT_TOUCH_DATA)) share.state.create_time= (long) time((time_t*) 0); if ((file= my_create_with_symlink(ci->index_file_name, fn_format(buff,name,"",MI_NAME_IEXT,4+ (ci->index_file_name ? 0 : 32)), if (ci->index_file_name) { fn_format(filename, ci->index_file_name,"",MI_NAME_IEXT,4); fn_format(linkname,name, "",MI_NAME_IEXT,4); linkname_ptr=linkname; /* Don't create the table if the link or file exists to ensure that one doesn't accidently destroy another table. */ create_flag=0; } else { fn_format(filename,name,"",MI_NAME_IEXT,(4+ (flags & HA_DONT_TOUCH_DATA) ? 32 : 0)); linkname_ptr=0; /* Replace the current file */ create_flag=MY_DELETE_OLD; } if ((file= my_create_with_symlink(linkname_ptr, filename, 0, O_RDWR | O_TRUNC, MYF(MY_WME | MY_DELETE_OLD))) < 0) MYF(MY_WME | create_flag))) < 0) goto err; errpos=1; Loading @@ -481,8 +501,8 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, #ifdef USE_RAID if (share.base.raid_type) { (void) fn_format(buff,name,"",MI_NAME_DEXT,2+4); if ((dfile=my_raid_create(buff,0,O_RDWR | O_TRUNC, (void) fn_format(filename,name,"",MI_NAME_DEXT,2+4); if ((dfile=my_raid_create(filename,0,O_RDWR | O_TRUNC, share.base.raid_type, share.base.raid_chunks, share.base.raid_chunksize, Loading @@ -492,11 +512,23 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, else #endif { (void) fn_format(buff,name,"",MI_NAME_DEXT,2+4 + (ci->data_file_name ? 0 : 32)); if (ci->data_file_name) { fn_format(filename, ci->data_file_name,"",MI_NAME_DEXT,4); fn_format(linkname, name, "",MI_NAME_DEXT,4); linkname_ptr=linkname; create_flag=0; } else { fn_format(filename,name,"",MI_NAME_DEXT,4); linkname_ptr=0; create_flag=MY_DELETE_OLD; } if ((dfile= my_create_with_symlink(ci->data_file_name, buff, 0,O_RDWR | O_TRUNC,MYF(MY_WME))) < 0) my_create_with_symlink(linkname_ptr, filename, 0,O_RDWR | O_TRUNC, MYF(MY_WME | create_flag))) < 0) goto err; } errpos=3; Loading @@ -517,14 +549,14 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, /* Write key and keyseg definitions */ for (i=0 ; i < share.base.keys - uniques; i++) { uint ft_segs=(keydefs[i].flag & HA_FULLTEXT) ? FT_SEGS : 0; /* SerG */ uint ft_segs=(keydefs[i].flag & HA_FULLTEXT) ? FT_SEGS : 0; if (mi_keydef_write(file, &keydefs[i])) goto err; for (j=0 ; j < keydefs[i].keysegs-ft_segs ; j++) if (mi_keyseg_write(file, &keydefs[i].seg[j])) goto err; for (j=0 ; j < ft_segs ; j++) /* SerG */ for (j=0 ; j < ft_segs ; j++) { MI_KEYSEG seg=ft_keysegs[j]; seg.language= keydefs[i].seg[0].language; Loading Loading @@ -605,24 +637,16 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, VOID(my_close(dfile,MYF(0))); /* fall through */ case 2: if (! (flags & HA_DONT_TOUCH_DATA)) { /* QQ: Tnu should add a call to my_raid_delete() here */ VOID(fn_format(buff,name,"",MI_NAME_DEXT,2+4)); my_delete(buff,MYF(0)); if (ci->data_file_name && strcmp(buff,ci->data_file_name)) my_delete(ci->data_file_name,MYF(0)); } if (! (flags & HA_DONT_TOUCH_DATA)) my_delete_with_symlink(fn_format(filename,name,"",MI_NAME_DEXT,2+4), MYF(0)); /* fall through */ case 1: VOID(my_close(file,MYF(0))); if (! (flags & HA_DONT_TOUCH_DATA)) { VOID(fn_format(buff,name,"",MI_NAME_IEXT,2+4)); my_delete(buff,MYF(0)); if (ci->index_file_name && strcmp(buff,ci->index_file_name)) my_delete(ci->index_file_name,MYF(0)); } my_delete_with_symlink(fn_format(filename,name,"",MI_NAME_IEXT,2+4), MYF(0)); } my_free((char*) rec_per_key_part, MYF(0)); DBUG_RETURN(my_errno=save_errno); /* return the fatal errno */ Loading myisam/mi_test_all.sh +6 −1 Original line number Diff line number Diff line #!/bin/sh # # Execute some simple basic test on MyISAM libary to check if things # works at all. silent="-s" suffix=$MACH if test -f mi_test1$MACH ; then suffix=$MACH else suffix=""; fi mi_test1$suffix $silent myisamchk$suffix -se test1 mi_test1$suffix $silent -N -S Loading myisam/myisamchk.c +0 −4 Original line number Diff line number Diff line Loading @@ -183,7 +183,6 @@ static struct option long_options[] = {"information", no_argument, 0, 'i'}, {"keys-used", required_argument, 0, 'k'}, {"medium-check", no_argument, 0, 'm'}, {"no-symlinks", no_argument, 0, 'l'}, {"quick", no_argument, 0, 'q'}, {"read-only", no_argument, 0, 'T'}, {"recover", no_argument, 0, 'r'}, Loading Loading @@ -373,9 +372,6 @@ static void get_options(register int *argc,register char ***argv) case 'k': check_param.keys_in_use= (ulonglong) strtoll(optarg,NULL,10); break; case 'l': check_param.opt_follow_links=0; break; case 'm': check_param.testflag|= T_MEDIUM; /* Medium check */ break; Loading Loading
client/mysqltest.c +20 −15 Original line number Diff line number Diff line Loading @@ -352,7 +352,9 @@ static void abort_not_supported_test() static void verbose_msg(const char* fmt, ...) { va_list args; if (!verbose) return; DBUG_ENTER("verbose_msg"); if (!verbose) DBUG_VOID_RETURN; va_start(args, fmt); Loading @@ -360,6 +362,7 @@ static void verbose_msg(const char* fmt, ...) vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); va_end(args); DBUG_VOID_RETURN; } Loading Loading @@ -446,7 +449,7 @@ VAR* var_get(const char* var_name, const char** var_name_end, int raw) { const char* save_var_name = var_name, *end; end = (var_name_end) ? *var_name_end : 0; while(isalnum(*var_name) || *var_name == '_') while (isvar(*var_name)) { if(end && var_name == end) break; Loading Loading @@ -1522,10 +1525,12 @@ void reject_dump(const char* record_file, char* buf, int size) str_to_file(fn_format(reject_file, record_file,"",".reject",2), buf, size); } /* flags control the phased/stages of query execution to be performed /* * flags control the phased/stages of query execution to be performed * if QUERY_SEND bit is on, the query will be sent. If QUERY_REAP is on * the result will be read - for regular query, both bits must be on */ int run_query(MYSQL* mysql, struct st_query* q, int flags) { MYSQL_RES* res = 0; Loading Loading @@ -1576,8 +1581,6 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) if (q->abort_on_error) die("At line %u: query '%s' failed: %d: %s", start_lineno, query, mysql_errno(mysql), mysql_error(mysql)); /*die("At line %u: Failed in mysql_store_result for query '%s' (%d)", start_lineno, query, mysql_errno(mysql));*/ else { for (i=0 ; q->expected_errno[i] ; i++) Loading @@ -1587,13 +1590,15 @@ int run_query(MYSQL* mysql, struct st_query* q, int flags) } if (i) { verbose_msg("query '%s' failed with wrong errno\ %d instead of %d...", q->query, mysql_errno(mysql), q->expected_errno[0]); verbose_msg("query '%s' failed with wrong errno %d instead of %d...", q->query, mysql_errno(mysql), q->expected_errno[0]); error=1; goto end; } verbose_msg("query '%s' failed: %d: %s", q->query, mysql_errno(mysql), mysql_error(mysql)); /* if we do not abort on error, failure to run the query does /* if we do not abort on error, failure to run the query does not fail the whole test case */ goto end; Loading Loading @@ -1758,7 +1763,7 @@ static void init_var_hash() die("Variable hash initialization failed"); var_from_env("MASTER_MYPORT", "9306"); var_from_env("SLAVE_MYPORT", "9307"); var_from_env("MYSQL_TEST_DIR", ""); var_from_env("MYSQL_TEST_DIR", "/tmp"); } int main(int argc, char** argv) Loading
myisam/mi_check.c +7 −1 Original line number Diff line number Diff line Loading @@ -1102,6 +1102,10 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, share->pack.header_length; got_error=1; new_file= -1; sort_info->buff=0; sort_info->buff_length=0; sort_info->record=0; if (!(param->testflag & T_SILENT)) { printf("- recovering (with keycache) MyISAM-table '%s'\n",name); Loading @@ -1114,7 +1118,10 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, if (init_io_cache(¶m->read_cache,info->dfile, (uint) param->read_buffer_length, READ_CACHE,share->pack.header_length,1,MYF(MY_WME))) { bzero(&info->rec_cache,sizeof(info->rec_cache)); goto err; } if (!rep_quick) if (init_io_cache(&info->rec_cache,-1,(uint) param->write_buffer_length, WRITE_CACHE, new_header_length, 1, Loading @@ -1122,7 +1129,6 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, goto err; info->opt_flag|=WRITE_CACHE_USED; sort_info->start_recpos=0; sort_info->buff=0; sort_info->buff_length=0; if (!(sort_info->record=(byte*) my_malloc((uint) share->base.pack_reclength, MYF(0)))) { Loading
myisam/mi_create.c +50 −26 Original line number Diff line number Diff line Loading @@ -38,12 +38,13 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, register uint i,j; File dfile,file; int errpos,save_errno; myf create_flag; uint fields,length,max_key_length,packed,pointer, key_length,info_length,key_segs,options,min_key_length_skipp, base_pos,varchar_count,long_varchar_count,varchar_length, max_key_block_length,unique_key_parts,offset; ulong reclength, real_reclength,min_pack_length; char buff[FN_REFLEN]; char filename[FN_REFLEN],linkname[FN_REFLEN], *linkname_ptr; ulong pack_reclength; ulonglong tot_length,max_rows; enum en_fieldtype type; Loading Loading @@ -468,11 +469,30 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, if (! (flags & HA_DONT_TOUCH_DATA)) share.state.create_time= (long) time((time_t*) 0); if ((file= my_create_with_symlink(ci->index_file_name, fn_format(buff,name,"",MI_NAME_IEXT,4+ (ci->index_file_name ? 0 : 32)), if (ci->index_file_name) { fn_format(filename, ci->index_file_name,"",MI_NAME_IEXT,4); fn_format(linkname,name, "",MI_NAME_IEXT,4); linkname_ptr=linkname; /* Don't create the table if the link or file exists to ensure that one doesn't accidently destroy another table. */ create_flag=0; } else { fn_format(filename,name,"",MI_NAME_IEXT,(4+ (flags & HA_DONT_TOUCH_DATA) ? 32 : 0)); linkname_ptr=0; /* Replace the current file */ create_flag=MY_DELETE_OLD; } if ((file= my_create_with_symlink(linkname_ptr, filename, 0, O_RDWR | O_TRUNC, MYF(MY_WME | MY_DELETE_OLD))) < 0) MYF(MY_WME | create_flag))) < 0) goto err; errpos=1; Loading @@ -481,8 +501,8 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, #ifdef USE_RAID if (share.base.raid_type) { (void) fn_format(buff,name,"",MI_NAME_DEXT,2+4); if ((dfile=my_raid_create(buff,0,O_RDWR | O_TRUNC, (void) fn_format(filename,name,"",MI_NAME_DEXT,2+4); if ((dfile=my_raid_create(filename,0,O_RDWR | O_TRUNC, share.base.raid_type, share.base.raid_chunks, share.base.raid_chunksize, Loading @@ -492,11 +512,23 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, else #endif { (void) fn_format(buff,name,"",MI_NAME_DEXT,2+4 + (ci->data_file_name ? 0 : 32)); if (ci->data_file_name) { fn_format(filename, ci->data_file_name,"",MI_NAME_DEXT,4); fn_format(linkname, name, "",MI_NAME_DEXT,4); linkname_ptr=linkname; create_flag=0; } else { fn_format(filename,name,"",MI_NAME_DEXT,4); linkname_ptr=0; create_flag=MY_DELETE_OLD; } if ((dfile= my_create_with_symlink(ci->data_file_name, buff, 0,O_RDWR | O_TRUNC,MYF(MY_WME))) < 0) my_create_with_symlink(linkname_ptr, filename, 0,O_RDWR | O_TRUNC, MYF(MY_WME | create_flag))) < 0) goto err; } errpos=3; Loading @@ -517,14 +549,14 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, /* Write key and keyseg definitions */ for (i=0 ; i < share.base.keys - uniques; i++) { uint ft_segs=(keydefs[i].flag & HA_FULLTEXT) ? FT_SEGS : 0; /* SerG */ uint ft_segs=(keydefs[i].flag & HA_FULLTEXT) ? FT_SEGS : 0; if (mi_keydef_write(file, &keydefs[i])) goto err; for (j=0 ; j < keydefs[i].keysegs-ft_segs ; j++) if (mi_keyseg_write(file, &keydefs[i].seg[j])) goto err; for (j=0 ; j < ft_segs ; j++) /* SerG */ for (j=0 ; j < ft_segs ; j++) { MI_KEYSEG seg=ft_keysegs[j]; seg.language= keydefs[i].seg[0].language; Loading Loading @@ -605,24 +637,16 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, VOID(my_close(dfile,MYF(0))); /* fall through */ case 2: if (! (flags & HA_DONT_TOUCH_DATA)) { /* QQ: Tnu should add a call to my_raid_delete() here */ VOID(fn_format(buff,name,"",MI_NAME_DEXT,2+4)); my_delete(buff,MYF(0)); if (ci->data_file_name && strcmp(buff,ci->data_file_name)) my_delete(ci->data_file_name,MYF(0)); } if (! (flags & HA_DONT_TOUCH_DATA)) my_delete_with_symlink(fn_format(filename,name,"",MI_NAME_DEXT,2+4), MYF(0)); /* fall through */ case 1: VOID(my_close(file,MYF(0))); if (! (flags & HA_DONT_TOUCH_DATA)) { VOID(fn_format(buff,name,"",MI_NAME_IEXT,2+4)); my_delete(buff,MYF(0)); if (ci->index_file_name && strcmp(buff,ci->index_file_name)) my_delete(ci->index_file_name,MYF(0)); } my_delete_with_symlink(fn_format(filename,name,"",MI_NAME_IEXT,2+4), MYF(0)); } my_free((char*) rec_per_key_part, MYF(0)); DBUG_RETURN(my_errno=save_errno); /* return the fatal errno */ Loading
myisam/mi_test_all.sh +6 −1 Original line number Diff line number Diff line #!/bin/sh # # Execute some simple basic test on MyISAM libary to check if things # works at all. silent="-s" suffix=$MACH if test -f mi_test1$MACH ; then suffix=$MACH else suffix=""; fi mi_test1$suffix $silent myisamchk$suffix -se test1 mi_test1$suffix $silent -N -S Loading
myisam/myisamchk.c +0 −4 Original line number Diff line number Diff line Loading @@ -183,7 +183,6 @@ static struct option long_options[] = {"information", no_argument, 0, 'i'}, {"keys-used", required_argument, 0, 'k'}, {"medium-check", no_argument, 0, 'm'}, {"no-symlinks", no_argument, 0, 'l'}, {"quick", no_argument, 0, 'q'}, {"read-only", no_argument, 0, 'T'}, {"recover", no_argument, 0, 'r'}, Loading Loading @@ -373,9 +372,6 @@ static void get_options(register int *argc,register char ***argv) case 'k': check_param.keys_in_use= (ulonglong) strtoll(optarg,NULL,10); break; case 'l': check_param.opt_follow_links=0; break; case 'm': check_param.testflag|= T_MEDIUM; /* Medium check */ break; Loading