diff options
author | monty@mysql.com <> | 2003-11-20 22:30:48 +0200 |
---|---|---|
committer | monty@mysql.com <> | 2003-11-20 22:30:48 +0200 |
commit | b01fcb4e1438dcc1f9a31bcab30b98b578d1704a (patch) | |
tree | 47f72b790e762b88773ac94032106a9fec3ee4a4 /myisam | |
parent | 55e07608fd7bcb47bd92f744a07b7631aa91d9c6 (diff) | |
parent | dd287a4cdf4b8937ce428678fa096134a5ae8a88 (diff) | |
download | mariadb-git-b01fcb4e1438dcc1f9a31bcab30b98b578d1704a.tar.gz |
Merge with 4.0 to get:
Fix for storing negative values in decimal fields
Fix for FLUSH TABLE with HANDLER
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_check.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c index 448e847f6e1..fd4c897983f 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -1143,6 +1143,9 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, } param->testflag|=T_REP; /* for easy checking */ + if (info->s->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD)) + param->testflag|=T_CALC_CHECKSUM; + if (!param->using_global_keycache) VOID(init_key_cache(dflt_key_cache, param->key_cache_block_size, param->use_buffers, 0, 0)); @@ -1356,6 +1359,7 @@ err: VOID(my_close(new_file,MYF(0))); VOID(my_raid_delete(param->temp_filename,info->s->base.raid_chunks, MYF(MY_WME))); + info->rec_cache.file=-1; /* don't flush data to new_file, it's closed */ } mi_mark_crashed_on_repair(info); } @@ -1812,6 +1816,9 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, } param->testflag|=T_REP; /* for easy checking */ + if (info->s->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD)) + param->testflag|=T_CALC_CHECKSUM; + bzero((char*)&sort_info,sizeof(sort_info)); bzero((char *)&sort_param, sizeof(sort_param)); if (!(sort_info.key_block= @@ -2183,6 +2190,9 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, } param->testflag|=T_REP; /* for easy checking */ + if (info->s->options & (HA_OPTION_CHECKSUM | HA_OPTION_COMPRESS_RECORD)) + param->testflag|=T_CALC_CHECKSUM; + bzero((char*)&sort_info,sizeof(sort_info)); if (!(sort_info.key_block= alloc_key_blocks(param, @@ -2848,8 +2858,8 @@ static int sort_get_next_record(MI_SORT_PARAM *sort_param) if (!(to=mi_alloc_rec_buff(info,block_info.rec_len, &(sort_param->rec_buff)))) { - mi_check_print_error(param,"Not enough memory for blob at %s", - llstr(sort_param->start_recpos,llbuff)); + mi_check_print_error(param,"Not enough memory for blob at %s (need %lu)", + llstr(sort_param->start_recpos,llbuff), block_info.rec_len); DBUG_RETURN(1); } } |