summaryrefslogtreecommitdiff
path: root/heap/hp_hash.c
diff options
context:
space:
mode:
authorunknown <bar@gw.udmsearch.izhnet.ru>2002-05-06 18:52:06 +0500
committerunknown <bar@gw.udmsearch.izhnet.ru>2002-05-06 18:52:06 +0500
commit7d9572c29354b77ca91d5ec4f34b2508d18ca7fa (patch)
treed6cb32f825a93e503514da0a47445aca7fae6145 /heap/hp_hash.c
parent234dc3a35e8ae7f63aa6d3b7891b72e735728639 (diff)
downloadmariadb-git-7d9572c29354b77ca91d5ec4f34b2508d18ca7fa.tar.gz
Use keyseg charset instead of default_charset_info
Diffstat (limited to 'heap/hp_hash.c')
-rw-r--r--heap/hp_hash.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/heap/hp_hash.c b/heap/hp_hash.c
index 92e6320211a..70823c2c2c7 100644
--- a/heap/hp_hash.c
+++ b/heap/hp_hash.c
@@ -213,14 +213,13 @@ ulong hp_hashnr(register HP_KEYDEF *keydef, register const byte *key)
}
if (seg->type == HA_KEYTYPE_TEXT)
{
- if (default_charset_info->hash_sort)
- default_charset_info->hash_sort(default_charset_info,
- pos,((uchar*)key)-pos,&nr,&nr2);
+ if (seg->charset->hash_sort)
+ seg->charset->hash_sort(seg->charset,pos,((uchar*)key)-pos,&nr,&nr2);
else
for (; pos < (uchar*) key ; pos++)
{
nr^=(ulong) ((((uint) nr & 63)+nr2) *
- ((uint) default_charset_info->sort_order[(uint) *pos])) + (nr << 8);
+ ((uint) seg->charset->sort_order[(uint) *pos])) + (nr << 8);
nr2+=3;
}
}
@@ -257,14 +256,13 @@ ulong hp_rec_hashnr(register HP_KEYDEF *keydef, register const byte *rec)
}
if (seg->type == HA_KEYTYPE_TEXT)
{
- if (default_charset_info->hash_sort)
- default_charset_info->hash_sort(default_charset_info,
- pos,end-pos,&nr,&nr2);
+ if (seg->charset->hash_sort)
+ seg->charset->hash_sort(seg->charset,pos,end-pos,&nr,&nr2);
else
for (; pos < end ; pos++)
{
nr^=(ulong) ((((uint) nr & 63)+nr2)*
- ((uint) default_charset_info->sort_order[(uint) *pos]))+ (nr << 8);
+ ((uint) seg->charset->sort_order[(uint) *pos]))+ (nr << 8);
nr2+=3;
}
}
@@ -397,7 +395,7 @@ int hp_rec_key_cmp(HP_KEYDEF *keydef, const byte *rec1, const byte *rec2)
case HA_KEYTYPE_END:
return 0;
case HA_KEYTYPE_TEXT:
- if (my_sortcmp(default_charset_info,rec1+seg->start,rec2+seg->start,seg->length))
+ if (my_sortcmp(seg->charset,rec1+seg->start,rec2+seg->start,seg->length))
return 1;
break;
default:
@@ -428,12 +426,7 @@ int hp_key_cmp(HP_KEYDEF *keydef, const byte *rec, const byte *key)
}
if (seg->type == HA_KEYTYPE_TEXT)
{
- /*
- BAR TODO: this will not use default_charset_info
- I need Ram to apply his HEAP patches with
- CHARSET_INFO field in HP segments
- */
- if (my_sortcmp(default_charset_info,rec+seg->start,key,seg->length))
+ if (my_sortcmp(seg->charset,rec+seg->start,key,seg->length))
return 1;
}
else