diff options
author | unknown <guilhem@gbichot3.local> | 2006-12-20 00:00:46 +0100 |
---|---|---|
committer | unknown <guilhem@gbichot3.local> | 2006-12-20 00:00:46 +0100 |
commit | 8b998d1199d53baf002f6ad725fa69e4b2f6813b (patch) | |
tree | 335d7c85728da44b45a4541bf523c09f0ab36f13 /mysys/mf_keycaches.c | |
parent | 8a2b3baaa9da6b94f0f609c1959ad00929ec7621 (diff) | |
parent | c2f2a41ed32522fa89f5c79fec42ab60e0b4aa62 (diff) | |
download | mariadb-git-8b998d1199d53baf002f6ad725fa69e4b2f6813b.tar.gz |
Merge gbichot3.local:/home/mysql_src/mysql-5.1-clean
into gbichot3.local:/home/mysql_src/mysql-maria
BitKeeper/etc/ignore:
auto-union
BUILD/SETUP.sh:
Auto merged
Makefile.am:
Auto merged
configure.in:
Auto merged
BitKeeper/triggers/post-commit:
merge
include/Makefile.am:
merge
include/my_global.h:
merge
include/my_sys.h:
merge
libmysql/Makefile.shared:
merge
libmysqld/Makefile.am:
merge
mysql-test/mysql-test-run.pl:
merge
mysys/Makefile.am:
merge
mysys/mf_keycache.c:
merge
mysys/mf_keycaches.c:
merge
mysys/my_handler.c:
merge
mysys/my_init.c:
merge
mysys/my_open.c:
merge
mysys/my_pread.c:
merge
sql/Makefile.am:
merge
sql/handler.h:
merge
sql/item_func.cc:
merge
sql/item_func.h:
merge
sql/log.cc:
merge
sql/mysql_priv.h:
merge
sql/mysqld.cc:
merge
sql/set_var.cc:
merge
sql/sql_class.h:
merge
sql/sql_parse.cc:
merge
sql/sql_select.cc:
merge
sql/sql_test.cc:
merge
sql/unireg.cc:
merge
storage/csv/ha_tina.cc:
merge
storage/myisam/ft_boolean_search.c:
merge
storage/myisam/ha_myisam.cc:
merge
storage/myisam/ha_myisam.h:
merge
storage/myisam/mi_create.c:
merge
storage/myisam/mi_delete.c:
merge
storage/myisam/mi_dynrec.c:
merge
storage/myisam/mi_key.c:
merge
storage/myisam/mi_open.c:
merge
storage/myisam/mi_test2.c:
merge
storage/myisam/mi_unique.c:
merge
storage/myisam/mi_write.c:
merge
storage/myisam/myisamchk.c:
merge
storage/myisam/myisampack.c:
merge
storage/myisam/sort.c:
merge
unittest/mytap/tap.c:
merge
Diffstat (limited to 'mysys/mf_keycaches.c')
-rw-r--r-- | mysys/mf_keycaches.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/mysys/mf_keycaches.c b/mysys/mf_keycaches.c index e5086014a27..4c20f69053d 100644 --- a/mysys/mf_keycaches.c +++ b/mysys/mf_keycaches.c @@ -148,7 +148,8 @@ static void safe_hash_free(SAFE_HASH *hash) Return the value stored for a key or default value if no key */ -static byte *safe_hash_search(SAFE_HASH *hash, const byte *key, uint length) +static byte *safe_hash_search(SAFE_HASH *hash, const byte *key, uint length, + byte *def) { byte *result; DBUG_ENTER("safe_hash_search"); @@ -156,7 +157,7 @@ static byte *safe_hash_search(SAFE_HASH *hash, const byte *key, uint length) result= hash_search(&hash->hash, key, length); rw_unlock(&hash->mutex); if (!result) - result= hash->default_value; + result= def; else result= ((SAFE_HASH_ENTRY*) result)->data; DBUG_PRINT("exit",("data: 0x%lx", (long) result)); @@ -316,6 +317,7 @@ void multi_keycache_free(void) multi_key_cache_search() key key to find (usually table path) uint length Length of key. + def Default value if no key cache NOTES This function is coded in such a way that we will return the @@ -326,11 +328,13 @@ void multi_keycache_free(void) key cache to use */ -KEY_CACHE *multi_key_cache_search(byte *key, uint length) +KEY_CACHE *multi_key_cache_search(byte *key, uint length, + KEY_CACHE *def) { if (!key_cache_hash.hash.records) - return dflt_key_cache; - return (KEY_CACHE*) safe_hash_search(&key_cache_hash, key, length); + return def; + return (KEY_CACHE*) safe_hash_search(&key_cache_hash, key, length, + (void*) def); } |