summaryrefslogtreecommitdiff
path: root/mysys/mf_keycaches.c
diff options
context:
space:
mode:
authorunknown <guilhem@gbichot3.local>2006-12-20 00:00:46 +0100
committerunknown <guilhem@gbichot3.local>2006-12-20 00:00:46 +0100
commit8b998d1199d53baf002f6ad725fa69e4b2f6813b (patch)
tree335d7c85728da44b45a4541bf523c09f0ab36f13 /mysys/mf_keycaches.c
parent8a2b3baaa9da6b94f0f609c1959ad00929ec7621 (diff)
parentc2f2a41ed32522fa89f5c79fec42ab60e0b4aa62 (diff)
downloadmariadb-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.c14
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);
}