diff options
author | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-05-06 18:52:06 +0500 |
---|---|---|
committer | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-05-06 18:52:06 +0500 |
commit | 7d9572c29354b77ca91d5ec4f34b2508d18ca7fa (patch) | |
tree | d6cb32f825a93e503514da0a47445aca7fae6145 /heap | |
parent | 234dc3a35e8ae7f63aa6d3b7891b72e735728639 (diff) | |
download | mariadb-git-7d9572c29354b77ca91d5ec4f34b2508d18ca7fa.tar.gz |
Use keyseg charset instead of default_charset_info
Diffstat (limited to 'heap')
-rw-r--r-- | heap/hp_hash.c | 23 |
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 |