summaryrefslogtreecommitdiff
path: root/myisam/mi_dynrec.c
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-04-11 20:04:50 +0200
committerunknown <serg@serg.mylan>2005-04-11 20:04:50 +0200
commit65255d3540bced78c11c5537d5ce10935a384774 (patch)
tree8113a5d6cc81ce585e0a1c3c5838c7d39445445f /myisam/mi_dynrec.c
parent93b4fbea9247aad1ad469a252ef1b67fc8e87bdf (diff)
downloadmariadb-git-65255d3540bced78c11c5537d5ce10935a384774.tar.gz
don't check record's checksum in REPAIR
myisam/mi_dynrec.c: new parameter for _mi_rec_check(). myisam/myisamdef.h: new parameter for _mi_rec_check().
Diffstat (limited to 'myisam/mi_dynrec.c')
-rw-r--r--myisam/mi_dynrec.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c
index 0b8d3c97872..43783ca2d36 100644
--- a/myisam/mi_dynrec.c
+++ b/myisam/mi_dynrec.c
@@ -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,
- ulong packed_length)
+ ulong packed_length, my_bool with_checksum)
{
uint length,new_length,flag,bit,i;
char *pos,*end,*packpos,*to;
@@ -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) ||
(bit != 1 && (flag & ~(bit - 1))))
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);