diff options
author | unknown <bar@bar.mysql.r18.ru> | 2002-08-15 16:42:54 +0500 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2002-08-15 16:42:54 +0500 |
commit | bf5b046e841121c4250bd668449df99302de31ea (patch) | |
tree | 0771a890e5d8ed36e182ce6069988f32b9db0bc7 /mysys/hash.c | |
parent | 6cc0d7d7e8d8321ecd2d918cb0e3160eb0322ecd (diff) | |
download | mariadb-git-bf5b046e841121c4250bd668449df99302de31ea.tar.gz |
Some speed improvements
Diffstat (limited to 'mysys/hash.c')
-rw-r--r-- | mysys/hash.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mysys/hash.c b/mysys/hash.c index 0cbd14607f6..7fb634a05b9 100644 --- a/mysys/hash.c +++ b/mysys/hash.c @@ -136,10 +136,12 @@ static uint calc_hashnr(CHARSET_INFO *cs __attribute__((unused)), static uint calc_hashnr_caseup(CHARSET_INFO *cs, const byte *key,uint length) { register uint nr=1, nr2=4; + register uchar *map=cs->to_upper; + while (length--) { nr^= (((nr & 63)+nr2)* - ((uint) (uchar) my_toupper(cs, *key++)))+ (nr << 8); + ((uint) (uchar) map[(uchar)*key++])) + (nr << 8); nr2+=3; } return((uint) nr); |