1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Move hash_sort and hash_caseup into CHARSET_INFO for all charsets

This commit is contained in:
bar@bar.mysql.r18.ru
2002-10-10 16:52:22 +05:00
parent 11a93ede41
commit a0dd5febfc
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
{