summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorunknown <bell@desktop.sanja.is.com.ua>2007-04-16 13:19:43 +0300
committerunknown <bell@desktop.sanja.is.com.ua>2007-04-16 13:19:43 +0300
commite10fe77b0ac9a43ad795555c65391318ff7cc968 (patch)
treee2ed09433088190ae567be9a0e523defae042456 /include
parent1bf0ed775431a5142e846e23330228468dcf140b (diff)
parent39d64a1d2565b09307d11b2a665f3f2c6bc8106e (diff)
downloadmariadb-git-e10fe77b0ac9a43ad795555c65391318ff7cc968.tar.gz
Merge desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-maria.bak
into desktop.sanja.is.com.ua:/home/bell/mysql/bk/work-test include/maria.h: Auto merged mysys/Makefile.am: Auto merged mysys/mf_keycaches.c: Auto merged sql/handler.h: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged storage/maria/Makefile.am: Auto merged storage/maria/ha_maria.cc: Auto merged storage/maria/ma_bitmap.c: Auto merged storage/maria/ma_check.c: Auto merged storage/maria/ma_close.c: Auto merged storage/maria/ma_dynrec.c: Auto merged storage/maria/ma_extra.c: Auto merged storage/maria/ma_info.c: Auto merged storage/maria/ma_keycache.c: Auto merged storage/maria/ma_locking.c: Auto merged storage/maria/ma_loghandler.c: Auto merged storage/maria/ma_open.c: Auto merged storage/maria/ma_packrec.c: Auto merged storage/maria/ma_page.c: Auto merged storage/maria/ma_pagecache.c: Auto merged storage/maria/ma_panic.c: Auto merged storage/maria/ma_preload.c: Auto merged storage/maria/ma_static.c: Auto merged storage/maria/ma_test1.c: Auto merged storage/maria/ma_test2.c: Auto merged storage/maria/ma_test3.c: Auto merged storage/maria/ma_write.c: Auto merged storage/maria/maria_chk.c: Auto merged storage/maria/maria_def.h: Auto merged storage/maria/maria_ftdump.c: Auto merged storage/maria/maria_pack.c: Auto merged sql/handler.cc: merge storage/maria/ma_blockrec.c: merge storage/maria/ma_delete_all.c: merge
Diffstat (limited to 'include')
-rw-r--r--include/maria.h14
-rw-r--r--include/myisamchk.h2
-rw-r--r--include/pagecache.h44
3 files changed, 40 insertions, 20 deletions
diff --git a/include/maria.h b/include/maria.h
index a8c5cbf794b..dab578e6ec7 100644
--- a/include/maria.h
+++ b/include/maria.h
@@ -27,8 +27,8 @@ extern "C" {
#ifndef _m_ctype_h
#include <m_ctype.h>
#endif
-#ifndef _keycache_h
-#include "keycache.h"
+#ifndef _pagecache_h
+#include "pagecache.h"
#endif
#include "my_handler.h"
#include "ft_global.h"
@@ -249,7 +249,7 @@ extern my_bool maria_flush, maria_single_user;
extern my_bool maria_delay_key_write, maria_delay_rec_write;
extern my_off_t maria_max_temp_length;
extern ulong maria_bulk_insert_tree_size, maria_data_pointer_size;
-extern KEY_CACHE maria_key_cache_var, *maria_key_cache;
+extern PAGECACHE maria_pagecache_var, *maria_pagecache;
/* Prototypes for maria-functions */
@@ -418,10 +418,10 @@ my_bool maria_test_if_sort_rep(MARIA_HA *info, ha_rows rows, ulonglong key_map,
int maria_init_bulk_insert(MARIA_HA *info, ulong cache_size, ha_rows rows);
void maria_flush_bulk_insert(MARIA_HA *info, uint inx);
void maria_end_bulk_insert(MARIA_HA *info);
-int maria_assign_to_key_cache(MARIA_HA *info, ulonglong key_map,
- KEY_CACHE *key_cache);
-void maria_change_key_cache(KEY_CACHE *old_key_cache,
- KEY_CACHE *new_key_cache);
+int maria_assign_to_pagecache(MARIA_HA *info, ulonglong key_map,
+ PAGECACHE *key_cache);
+void maria_change_pagecache(PAGECACHE *old_key_cache,
+ PAGECACHE *new_key_cache);
int maria_preload(MARIA_HA *info, ulonglong key_map, my_bool ignore_leaves);
/* fulltext functions */
diff --git a/include/myisamchk.h b/include/myisamchk.h
index 66d0a77b62f..887cf835b87 100644
--- a/include/myisamchk.h
+++ b/include/myisamchk.h
@@ -133,7 +133,7 @@ typedef struct st_handler_check_param
ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY];
uint out_flag, warning_printed, error_printed, verbose;
uint opt_sort_key, total_files, max_level;
- uint testflag, key_cache_block_size;
+ uint testflag, key_cache_block_size, pagecache_block_size;
int tmpfile_createflag, err_count;
myf myf_rw;
uint8 language;
diff --git a/include/pagecache.h b/include/pagecache.h
index 32e23fb54ea..08ecc7e5f4a 100644
--- a/include/pagecache.h
+++ b/include/pagecache.h
@@ -66,8 +66,6 @@ enum pagecache_write_mode
{
/* do not write immediately, i.e. it will be dirty page */
PAGECACHE_WRITE_DELAY,
- /* write page to the file and put it to the cache */
- PAGECACHE_WRITE_NOW,
/* page already is in the file. (key cache insert analogue) */
PAGECACHE_WRITE_DONE
};
@@ -162,6 +160,9 @@ typedef struct st_pagecache
my_bool in_init; /* Set to 1 in MySQL during init/resize */
} PAGECACHE;
+/* The default key cache */
+extern PAGECACHE dflt_pagecache_var, *dflt_pagecache;
+
extern int init_pagecache(PAGECACHE *pagecache, my_size_t use_mem,
uint division_limit, uint age_threshold,
uint block_size);
@@ -184,16 +185,22 @@ extern byte *pagecache_valid_read(PAGECACHE *pagecache,
PAGECACHE_PAGE_LINK *link,
pagecache_disk_read_validator validator,
gptr validator_data);
-extern my_bool pagecache_write(PAGECACHE *pagecache,
- PAGECACHE_FILE *file,
- pgcache_page_no_t pageno,
- uint level,
- byte *buff,
- enum pagecache_page_type type,
- enum pagecache_page_lock lock,
- enum pagecache_page_pin pin,
- enum pagecache_write_mode write_mode,
- PAGECACHE_PAGE_LINK *link);
+
+#define pagecache_write(P,F,N,L,B,T,O,I,M,K) \
+ pagecache_write_part(P,F,N,L,B,T,O,I,M,K,0,(P)->block_size)
+
+extern my_bool pagecache_write_part(PAGECACHE *pagecache,
+ PAGECACHE_FILE *file,
+ pgcache_page_no_t pageno,
+ uint level,
+ byte *buff,
+ enum pagecache_page_type type,
+ enum pagecache_page_lock lock,
+ enum pagecache_page_pin pin,
+ enum pagecache_write_mode write_mode,
+ PAGECACHE_PAGE_LINK *link,
+ uint offset,
+ uint size);
extern void pagecache_unlock_page(PAGECACHE *pagecache,
PAGECACHE_FILE *file,
pgcache_page_no_t pageno,
@@ -224,5 +231,18 @@ extern my_bool pagecache_collect_changed_blocks_with_lsn(PAGECACHE *pagecache,
LSN *max_lsn);
extern int reset_pagecache_counters(const char *name, PAGECACHE *pagecache);
+
+/* Functions to handle multiple key caches */
+extern my_bool multi_pagecache_init(void);
+extern void multi_pagecache_free(void);
+extern PAGECACHE *multi_pagecache_search(byte *key, uint length,
+ PAGECACHE *def);
+extern my_bool multi_pagecache_set(const byte *key, uint length,
+ PAGECACHE *pagecache);
+extern void multi_pagecache_change(PAGECACHE *old_data,
+ PAGECACHE *new_data);
+extern int reset_pagecache_counters(const char *name,
+ PAGECACHE *pagecache);
+
C_MODE_END
#endif /* _keycache_h */