Commit be1bbf94 authored by serg@serg.mylan's avatar serg@serg.mylan

Merge serg@bk-internal.mysql.com:/home/bk/mysql-4.1/

into serg.mylan:/usr/home/serg/Abk/mysql-4.1
parents f356fb08 0294339b
...@@ -971,7 +971,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) ...@@ -971,7 +971,8 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend)
info->checksum=mi_checksum(info,record); info->checksum=mi_checksum(info,record);
if (param->testflag & (T_EXTEND | T_MEDIUM | T_VERBOSE)) if (param->testflag & (T_EXTEND | T_MEDIUM | T_VERBOSE))
{ {
if (_mi_rec_check(info,record, info->rec_buff,block_info.rec_len)) if (_mi_rec_check(info,record, info->rec_buff,block_info.rec_len,
test(info->s->calc_checksum)))
{ {
mi_check_print_error(param,"Found wrong packed record at %s", mi_check_print_error(param,"Found wrong packed record at %s",
llstr(start_recpos,llbuff)); llstr(start_recpos,llbuff));
...@@ -3024,7 +3025,9 @@ static int sort_get_next_record(MI_SORT_PARAM *sort_param) ...@@ -3024,7 +3025,9 @@ static int sort_get_next_record(MI_SORT_PARAM *sort_param)
if ((param->testflag & (T_EXTEND | T_REP)) || searching) if ((param->testflag & (T_EXTEND | T_REP)) || searching)
{ {
if (_mi_rec_check(info, sort_param->record, sort_param->rec_buff, if (_mi_rec_check(info, sort_param->record, sort_param->rec_buff,
sort_param->find_length)) sort_param->find_length,
(param->testflag & T_QUICK) &&
test(info->s->calc_checksum)))
{ {
mi_check_print_info(param,"Found wrong packed record at %s", mi_check_print_info(param,"Found wrong packed record at %s",
llstr(sort_param->start_recpos,llbuff)); llstr(sort_param->start_recpos,llbuff));
......
...@@ -806,7 +806,7 @@ uint _mi_rec_pack(MI_INFO *info, register byte *to, register const byte *from) ...@@ -806,7 +806,7 @@ uint _mi_rec_pack(MI_INFO *info, register byte *to, register const byte *from)
*/ */
my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *rec_buff, my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *rec_buff,
ulong packed_length) ulong packed_length, my_bool with_checksum)
{ {
uint length,new_length,flag,bit,i; uint length,new_length,flag,bit,i;
char *pos,*end,*packpos,*to; char *pos,*end,*packpos,*to;
...@@ -901,13 +901,10 @@ my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *rec_buff, ...@@ -901,13 +901,10 @@ my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *rec_buff,
if (packed_length != (uint) (to - rec_buff) + test(info->s->calc_checksum) || if (packed_length != (uint) (to - rec_buff) + test(info->s->calc_checksum) ||
(bit != 1 && (flag & ~(bit - 1)))) (bit != 1 && (flag & ~(bit - 1))))
goto err; goto err;
if (info->s->calc_checksum) if (with_checksum && ((uchar) info->checksum != (uchar) *to))
{ {
if ((uchar) info->checksum != (uchar) *to) DBUG_PRINT("error",("wrong checksum for row"));
{ goto err;
DBUG_PRINT("error",("wrong checksum for row"));
goto err;
}
} }
DBUG_RETURN(0); DBUG_RETURN(0);
......
...@@ -582,7 +582,7 @@ extern byte *mi_alloc_rec_buff(MI_INFO *,ulong, byte**); ...@@ -582,7 +582,7 @@ extern byte *mi_alloc_rec_buff(MI_INFO *,ulong, byte**);
extern ulong _mi_rec_unpack(MI_INFO *info,byte *to,byte *from, extern ulong _mi_rec_unpack(MI_INFO *info,byte *to,byte *from,
ulong reclength); ulong reclength);
extern my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *packpos, extern my_bool _mi_rec_check(MI_INFO *info,const char *record, byte *packpos,
ulong reclength); ulong packed_length, my_bool with_checkum);
extern int _mi_write_part_record(MI_INFO *info,my_off_t filepos,ulong length, extern int _mi_write_part_record(MI_INFO *info,my_off_t filepos,ulong length,
my_off_t next_filepos,byte **record, my_off_t next_filepos,byte **record,
ulong *reclength,int *flag); ulong *reclength,int *flag);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment