--- hp_hash.c.new 2009-11-29 13:07:59.000000000 +0800 +++ hp_hash.c 2009-11-29 13:06:15.000000000 +0800 @@ -278,7 +278,6 @@ CHARSET_INFO *cs= seg->charset; uint pack_length= 2; /* Key packing is constant */ uint length= uint2korr(pos); - set_if_smaller(length, seg->length); if (cs->mbmaxlen > 1) { uint char_length; @@ -338,7 +337,6 @@ CHARSET_INFO *cs= seg->charset; uint pack_length= seg->bit_start; uint length= (pack_length == 1 ? (uint) *(uchar*) pos : uint2korr(pos)); - set_if_smaller(length, seg->length); if (cs->mbmaxlen > 1) { uint char_length; @@ -416,7 +414,6 @@ { uint pack_length= 2; /* Key packing is constant */ uint length= uint2korr(pos); - set_if_smaller(length, seg->length); seg->charset->coll->hash_sort(seg->charset, pos+pack_length, length, &nr, &nr2); key+= pack_length; @@ -462,7 +459,6 @@ { uint pack_length= seg->bit_start; uint length= (pack_length == 1 ? (uint) *(uchar*) pos : uint2korr(pos)); - set_if_smaller(length, seg->length); seg->charset->coll->hash_sort(seg->charset, pos+pack_length, length, &nr, &nr2); } @@ -561,8 +557,6 @@ pos1+= 2; pos2+= 2; } - set_if_smaller(char_length1, seg->length); - set_if_smaller(char_length2, seg->length); if (cs->mbmaxlen > 1) { uint safe_length1= char_length1; @@ -647,7 +641,6 @@ uint2korr(pos)); /* Key segments are always packed with 2 bytes */ uint char_length_key= uint2korr(key); - set_if_smaller(char_length_rec, seg->length); pos+= pack_length; key+= 2; /* skip key pack length */ if (cs->mbmaxlen > 1)