Move hash_sort and hash_caseup into CHARSET_INFO for all charsets

This commit is contained in:
unknown 2002-10-10 16:52:22 +05:00
commit 72174d5b82
16 changed files with 132 additions and 126 deletions

View file

@ -214,18 +214,7 @@ ulong hp_hashnr(register HP_KEYDEF *keydef, register const byte *key)
}
if (seg->type == HA_KEYTYPE_TEXT)
{
if (seg->charset->hash_sort)
seg->charset->hash_sort(seg->charset,pos,((uchar*)key)-pos,&nr,&nr2);
else
{
register uchar *sort_order=seg->charset->sort_order;
for (; pos < (uchar*) key ; pos++)
{
nr^=(ulong) ((((uint) nr & 63)+nr2) *
((uint) sort_order[(uint) *pos])) + (nr << 8);
nr2+=3;
}
}
seg->charset->hash_sort(seg->charset,pos,((uchar*)key)-pos,&nr,&nr2);
}
else
{
@ -260,19 +249,7 @@ ulong hp_rec_hashnr(register HP_KEYDEF *keydef, register const byte *rec)
}
if (seg->type == HA_KEYTYPE_TEXT)
{
if (seg->charset->hash_sort)
seg->charset->hash_sort(seg->charset,pos,end-pos,&nr,&nr2);
else
{
register uchar *sort_order=seg->charset->sort_order;
for (; pos < end ; pos++)
{
nr^=(ulong) ((((uint) nr & 63)+nr2)*
((uint) sort_order[(uint) *pos]))+ (nr << 8);
nr2+=3;
}
}
seg->charset->hash_sort(seg->charset,pos,end-pos,&nr,&nr2);
}
else
{