diff options
Diffstat (limited to 'mysys/hash.cc')
-rw-r--r-- | mysys/hash.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mysys/hash.cc b/mysys/hash.cc index d29297a5233..0ea8a802ef0 100644 --- a/mysys/hash.cc +++ b/mysys/hash.cc @@ -41,6 +41,17 @@ static void movelink(HASH_LINK *array,uint pos,uint next_link,uint newlink); static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key, size_t length); +my_hash_value_type generic_hash_fnv1a(CHARSET_INFO *, const uchar *p, size_t sz) +{ + size_t result= static_cast<size_t>(14695981039346656037ULL); + for (; sz--; ) + { + result ^= static_cast<size_t>(*p++); + result *= static_cast<size_t>(1099511628211ULL); + } + return static_cast<my_hash_value_type>(result); +} + my_hash_value_type my_hash_sort(CHARSET_INFO *cs, const uchar *key, size_t length) { |