summaryrefslogtreecommitdiff
path: root/myisam/mi_page.c
diff options
context:
space:
mode:
authorunknown <igor@rurik.mysql.com>2003-10-01 20:16:36 -0700
committerunknown <igor@rurik.mysql.com>2003-10-01 20:16:36 -0700
commit7c7ee4d2f4ae29df2167b0ca0e9ab6dfd93a1c07 (patch)
treee1116ef7faa18e25e4ea484099e4c14d6fbbf7f1 /myisam/mi_page.c
parentcce14aabfc09628b246b3bc6ba40e6d83308da4f (diff)
parent7de7c38f2f1b678e6d1894b94dd9abe9de9d8c70 (diff)
downloadmariadb-git-7c7ee4d2f4ae29df2167b0ca0e9ab6dfd93a1c07.tar.gz
Manual merge after improving concurrency for key cache reassignment
include/myisam.h: Auto merged isam/isamchk.c: Auto merged myisam/mi_check.c: Auto merged myisam/mi_locking.c: Auto merged myisam/mi_search.c: Auto merged myisam/mi_write.c: Auto merged myisam/myisamchk.c: Auto merged myisam/myisamlog.c: Auto merged mysql-test/r/func_group.result: Auto merged mysys/mf_keycache.c: Auto merged sql/ha_myisam.cc: Auto merged sql/ha_myisam.h: Auto merged sql/item_cmpfunc.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_test.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'myisam/mi_page.c')
-rw-r--r--myisam/mi_page.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/myisam/mi_page.c b/myisam/mi_page.c
index 49f3243e08d..72aaac5d381 100644
--- a/myisam/mi_page.c
+++ b/myisam/mi_page.c
@@ -24,14 +24,16 @@
/* Fetch a key-page in memory */
uchar *_mi_fetch_keypage(register MI_INFO *info, MI_KEYDEF *keyinfo,
- my_off_t page, uchar *buff, int return_buffer)
+ my_off_t page, int level,
+ uchar *buff, int return_buffer)
{
uchar *tmp;
uint page_size;
DBUG_ENTER("_mi_fetch_keypage");
DBUG_PRINT("enter",("page: %ld",page));
- tmp=(uchar*) key_cache_read(info->s->kfile,page,(byte*) buff,
+ tmp=(uchar*) key_cache_read(*info->s->keycache,
+ info->s->kfile, page, level, (byte*) buff,
(uint) keyinfo->block_length,
(uint) keyinfo->block_length,
return_buffer);
@@ -61,7 +63,7 @@ uchar *_mi_fetch_keypage(register MI_INFO *info, MI_KEYDEF *keyinfo,
/* Write a key-page on disk */
int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo,
- my_off_t page, uchar *buff)
+ my_off_t page, int level, uchar *buff)
{
reg3 uint length;
DBUG_ENTER("_mi_write_keypage");
@@ -92,7 +94,8 @@ int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo,
length=keyinfo->block_length;
}
#endif
- DBUG_RETURN((key_cache_write(info->s->kfile,page,(byte*) buff,length,
+ DBUG_RETURN((key_cache_write(*info->s->keycache,
+ info->s->kfile,page, level, (byte*) buff,length,
(uint) keyinfo->block_length,
(int) ((info->lock_type != F_UNLCK) ||
info->s->delay_key_write))));
@@ -101,7 +104,8 @@ int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo,
/* Remove page from disk */
-int _mi_dispose(register MI_INFO *info, MI_KEYDEF *keyinfo, my_off_t pos)
+int _mi_dispose(register MI_INFO *info, MI_KEYDEF *keyinfo, my_off_t pos,
+ int level)
{
my_off_t old_link;
char buff[8];
@@ -112,7 +116,8 @@ int _mi_dispose(register MI_INFO *info, MI_KEYDEF *keyinfo, my_off_t pos)
info->s->state.key_del[keyinfo->block_size]=pos;
mi_sizestore(buff,old_link);
info->s->state.changed|= STATE_NOT_SORTED_PAGES;
- DBUG_RETURN(key_cache_write(info->s->kfile,pos,buff,
+ DBUG_RETURN(key_cache_write(*info->s->keycache,
+ info->s->kfile, pos , level, buff,
sizeof(buff),
(uint) keyinfo->block_length,
(int) (info->lock_type != F_UNLCK)));
@@ -121,7 +126,7 @@ int _mi_dispose(register MI_INFO *info, MI_KEYDEF *keyinfo, my_off_t pos)
/* Make new page on disk */
-my_off_t _mi_new(register MI_INFO *info, MI_KEYDEF *keyinfo)
+my_off_t _mi_new(register MI_INFO *info, MI_KEYDEF *keyinfo, int level)
{
my_off_t pos;
char buff[8];
@@ -140,7 +145,8 @@ my_off_t _mi_new(register MI_INFO *info, MI_KEYDEF *keyinfo)
}
else
{
- if (!key_cache_read(info->s->kfile,pos,
+ if (!key_cache_read(*info->s->keycache,
+ info->s->kfile, pos, level,
buff,
(uint) sizeof(buff),
(uint) keyinfo->block_length,0))