diff options
author | unknown <monty@mysql.com/nosik.monty.fi> | 2007-07-25 01:58:12 +0300 |
---|---|---|
committer | unknown <monty@mysql.com/nosik.monty.fi> | 2007-07-25 01:58:12 +0300 |
commit | 08dd5dcf168bbc1e1bf6e8bab784fdde58068daa (patch) | |
tree | c1182b5c000610131fdb634bd8c0075eab705f6d /include/keycache.h | |
parent | 4c1171ed05e5b188fbe7dd3227a623b3b6b134f5 (diff) | |
download | mariadb-git-08dd5dcf168bbc1e1bf6e8bab784fdde58068daa.tar.gz |
Added support for 'internal temporary tables' in HEAP tables.
Now we don't take any mutexes when creating or dropping internal HEAP tables during SELECT.
Change buffer sizes to size_t to make keycache 64 bit safe on platforms where sizeof(ulong) != sizeof(size_t)
BitKeeper/etc/ignore:
added support-files/mysqld_multi.server
include/heap.h:
Added 'internal_table' to HP_CREATE_INFO
include/keycache.h:
Change buffer sizes to size_t to make keycache 64 bit safe
include/my_base.h:
Added HA_OPEN_INTERNAL_TABLE to mark temporary tables that should be deleted on close
mysys/mf_keycache.c:
Change buffer sizes to size_t to make keycache 64 bit safe
sql/sql_select.cc:
Added HA_OPEN_INTERNAL_TABLE to mark temporary tables that should be deleted on close
Removed not anymore needed call to delete_table()
storage/heap/ha_heap.cc:
Added support for internal temporary tables that should be deleted on close.
Internal tables now use dedicated open and close calls to avoid taking mutexes.
If heap_open() failes, now delete the newly created table. (This fixes a possible memory leak)
Remove never executed info() in create()
storage/heap/ha_heap.h:
Added slots needed to handle internal temporary tables
storage/heap/heapdef.h:
Protect against C++ inclusion
storage/heap/hp_close.c:
Don't call list_delete() for internal temporary tables (They are not in the list)
storage/heap/hp_create.c:
Added HP_SHARE ** element to heap_create() to store the SHARE of the newly created table.
For internal temporary tables: Don't take any mutex and don't put them into the open table list.
storage/heap/hp_open.c:
Split heap_open() into sub functions to be able to create internal temporary tables without putting them in the heap_share_list.
Add faster open() functions for when we already know the 'share'.
storage/heap/hp_test1.c:
Update call to heap_create()
Initialize all keyinfo members.
storage/heap/hp_test2.c:
Update call to heap_create()
Diffstat (limited to 'include/keycache.h')
-rw-r--r-- | include/keycache.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/keycache.h b/include/keycache.h index 7f4ce86cea0..a6005bae878 100644 --- a/include/keycache.h +++ b/include/keycache.h @@ -47,7 +47,7 @@ typedef struct st_key_cache my_bool in_resize; /* true during resize operation */ my_bool resize_in_flush; /* true during flush of resize operation */ my_bool can_be_used; /* usage of cache for read/write is allowed */ - ulong key_cache_mem_size; /* specified size of the cache memory */ + size_t key_cache_mem_size; /* specified size of the cache memory */ uint key_cache_block_size; /* size of the page buffer of a cache block */ ulong min_warm_blocks; /* min number of warm blocks; */ ulong age_threshold; /* age threshold for hot blocks */ @@ -107,10 +107,10 @@ typedef struct st_key_cache extern KEY_CACHE dflt_key_cache_var, *dflt_key_cache; extern int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, - ulong use_mem, uint division_limit, + size_t use_mem, uint division_limit, uint age_threshold); extern int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, - ulong use_mem, uint division_limit, + size_t use_mem, uint division_limit, uint age_threshold); extern void change_key_cache_param(KEY_CACHE *keycache, uint division_limit, uint age_threshold); |