diff options
author | Mikael Ronstrom <mikael@mysql.com> | 2009-11-20 19:27:54 +0100 |
---|---|---|
committer | Mikael Ronstrom <mikael@mysql.com> | 2009-11-20 19:27:54 +0100 |
commit | dd31eaa550aaf251b0e21b184203355239f4afb9 (patch) | |
tree | 5e7cec0a4e8dad188de6389d0713332048adaed0 /include/hash.h | |
parent | 5aeeaaf507ac87f6ff56806fe8a356cea7d4a48f (diff) | |
parent | 58494ba0dfb4fad76deb712383f71c684bb97091 (diff) | |
download | mariadb-git-dd31eaa550aaf251b0e21b184203355239f4afb9.tar.gz |
WL#5137, Remove hash calculation from LOCK_open in open_table
Diffstat (limited to 'include/hash.h')
-rw-r--r-- | include/hash.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/hash.h b/include/hash.h index d870e17c341..515c764214d 100644 --- a/include/hash.h +++ b/include/hash.h @@ -30,6 +30,7 @@ extern "C" { /* flags for hash_init */ #define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */ +typedef uint my_hash_value_type; typedef uchar *(*my_hash_get_key)(const uchar *,size_t*,my_bool); typedef void (*my_hash_free_key)(void *); @@ -60,8 +61,18 @@ void my_hash_free(HASH *tree); void my_hash_reset(HASH *hash); uchar *my_hash_element(HASH *hash, ulong idx); uchar *my_hash_search(const HASH *info, const uchar *key, size_t length); +uchar *my_hash_search_using_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, size_t length); +my_hash_value_type my_calc_hash(const HASH *info, + const uchar *key, size_t length); uchar *my_hash_first(const HASH *info, const uchar *key, size_t length, HASH_SEARCH_STATE *state); +uchar *my_hash_first_from_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, + size_t length, + HASH_SEARCH_STATE *state); uchar *my_hash_next(const HASH *info, const uchar *key, size_t length, HASH_SEARCH_STATE *state); my_bool my_hash_insert(HASH *info, const uchar *data); |