18 #include "myisam_priv.h"
21 using namespace drizzled;
33 static ha_checksum my_checksum(ha_checksum crc,
const unsigned char *pos,
size_t length)
35 return ha_checksum(crc32((uint32_t)crc, pos, uInt(length)));
38 ha_checksum mi_checksum(
MI_INFO *info,
const unsigned char *buf)
44 for (i=info->s->base.fields ; i-- ; buf+=(rec++)->length)
46 const unsigned char *pos;
51 length=_mi_calc_blob_length(rec->length-
52 portable_sizeof_char_ptr,
54 memcpy(&pos, buf+rec->length - portable_sizeof_char_ptr,
sizeof(
char*));
59 uint32_t pack_length= ha_varchar_packlength(rec->length-1);
61 length= (ulong) *(
unsigned char*) buf;
63 length= uint2korr(buf);
72 crc=my_checksum(crc, pos ? pos : (
unsigned char*)
"", length);
78 ha_checksum mi_static_checksum(
MI_INFO *info,
const unsigned char *pos)
80 return my_checksum(0, pos, info->s->base.reclength);