mirror of
https://github.com/MariaDB/server.git
synced 2026-05-10 17:14:30 +02:00
Merge
include/my_base.h: Auto merged include/my_global.h: Auto merged include/my_sys.h: Auto merged isam/test2.c: Auto merged myisam/mi_check.c: Auto merged myisam/mi_test2.c: Auto merged myisam/myisamchk.c: Auto merged myisam/myisamdef.h: Auto merged mysql-test/r/func_group.result: Auto merged sql/ha_myisam.cc: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/item_cmpfunc.h: Auto merged sql/mysql_priv.h: Auto merged sql/opt_range.cc: Auto merged sql/set_var.h: 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 sql/mysqld.cc: SCCS merged sql/set_var.cc: SCCS merged
This commit is contained in:
commit
52e86548c2
60 changed files with 2800 additions and 821 deletions
|
|
@ -242,7 +242,9 @@ static int check_k_link(MI_CHECK *param, register MI_INFO *info, uint nr)
|
|||
if (next_link > info->state->key_file_length ||
|
||||
next_link & (info->s->blocksize-1))
|
||||
DBUG_RETURN(1);
|
||||
if (!(buff=key_cache_read(info->s->kfile, next_link, (byte*) info->buff,
|
||||
if (!(buff=key_cache_read(*info->s->keycache,
|
||||
info->s->kfile, next_link, DFLT_INIT_HITS,
|
||||
(byte*) info->buff,
|
||||
myisam_block_size, block_size, 1)))
|
||||
DBUG_RETURN(1);
|
||||
next_link=mi_sizekorr(buff);
|
||||
|
|
@ -271,7 +273,8 @@ int chk_size(MI_CHECK *param, register MI_INFO *info)
|
|||
|
||||
if (!(param->testflag & T_SILENT)) puts("- check file-size");
|
||||
|
||||
flush_key_blocks(info->s->kfile, FLUSH_FORCE_WRITE); /* If called externally */
|
||||
flush_key_blocks(*info->s->keycache,
|
||||
info->s->kfile, FLUSH_FORCE_WRITE); /* If called externally */
|
||||
|
||||
size=my_seek(info->s->kfile,0L,MY_SEEK_END,MYF(0));
|
||||
if ((skr=(my_off_t) info->state->key_file_length) != size)
|
||||
|
|
@ -381,8 +384,8 @@ int chk_key(MI_CHECK *param, register MI_INFO *info)
|
|||
if (share->state.key_root[key] == HA_OFFSET_ERROR &&
|
||||
(info->state->records == 0 || keyinfo->flag & HA_FULLTEXT))
|
||||
continue;
|
||||
if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key],info->buff,
|
||||
0))
|
||||
if (!_mi_fetch_keypage(info,keyinfo,share->state.key_root[key],
|
||||
DFLT_INIT_HITS,info->buff,0))
|
||||
{
|
||||
mi_check_print_error(param,"Can't read indexpage from filepos: %s",
|
||||
llstr(share->state.key_root[key],buff));
|
||||
|
|
@ -560,7 +563,8 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
|
|||
info->state->key_file_length=(max_length &
|
||||
~ (my_off_t) (info->s->blocksize-1));
|
||||
}
|
||||
if (!_mi_fetch_keypage(info,keyinfo,next_page,temp_buff,0))
|
||||
if (!_mi_fetch_keypage(info,keyinfo,next_page,
|
||||
DFLT_INIT_HITS,temp_buff,0))
|
||||
{
|
||||
mi_check_print_error(param,"Can't read key from filepos: %s",llstr(next_page,llbuff));
|
||||
goto err;
|
||||
|
|
@ -1139,7 +1143,8 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info,
|
|||
param->testflag|=T_REP; /* for easy checking */
|
||||
|
||||
if (!param->using_global_keycache)
|
||||
VOID(init_key_cache(param->use_buffers));
|
||||
VOID(init_key_cache(dflt_keycache,dflt_key_cache_var.block_size,
|
||||
param->use_buffers,&dflt_key_cache_var));
|
||||
|
||||
if (init_io_cache(¶m->read_cache,info->dfile,
|
||||
(uint) param->read_buffer_length,
|
||||
|
|
@ -1460,7 +1465,8 @@ int movepoint(register MI_INFO *info, byte *record, my_off_t oldpos,
|
|||
nod_flag=mi_test_if_nod(info->buff);
|
||||
_mi_dpointer(info,info->int_keypos-nod_flag-
|
||||
info->s->rec_reflength,newpos);
|
||||
if (_mi_write_keypage(info,keyinfo,info->last_keypage,info->buff))
|
||||
if (_mi_write_keypage(info,keyinfo,info->last_keypage,
|
||||
DFLT_INIT_HITS,info->buff))
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
else
|
||||
|
|
@ -1497,13 +1503,13 @@ void lock_memory(MI_CHECK *param __attribute__((unused)))
|
|||
|
||||
int flush_blocks(MI_CHECK *param, File file)
|
||||
{
|
||||
if (flush_key_blocks(file,FLUSH_RELEASE))
|
||||
if (flush_key_blocks(*dflt_keycache,file,FLUSH_RELEASE))
|
||||
{
|
||||
mi_check_print_error(param,"%d when trying to write bufferts",my_errno);
|
||||
return(1);
|
||||
}
|
||||
if (!param->using_global_keycache)
|
||||
end_key_cache();
|
||||
end_key_cache(dflt_keycache,1);
|
||||
return 0;
|
||||
} /* flush_blocks */
|
||||
|
||||
|
|
@ -1558,7 +1564,7 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, my_string name)
|
|||
}
|
||||
|
||||
/* Flush key cache for this file if we are calling this outside myisamchk */
|
||||
flush_key_blocks(share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
flush_key_blocks(*share->keycache,share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
|
||||
share->state.version=(ulong) time((time_t*) 0);
|
||||
old_state= share->state; /* save state if not stored */
|
||||
|
|
@ -1622,7 +1628,7 @@ static int sort_one_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo,
|
|||
mi_check_print_error(param,"Not Enough memory");
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
if (!_mi_fetch_keypage(info,keyinfo,pagepos,buff,0))
|
||||
if (!_mi_fetch_keypage(info,keyinfo,pagepos,DFLT_INIT_HITS,buff,0))
|
||||
{
|
||||
mi_check_print_error(param,"Can't read key block from filepos: %s",
|
||||
llstr(pagepos,llbuff));
|
||||
|
|
@ -1868,7 +1874,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
|
|||
Flush key cache for this file if we are calling this outside
|
||||
myisamchk
|
||||
*/
|
||||
flush_key_blocks(share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
flush_key_blocks(*share->keycache,share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
/* Clear the pointers to the given rows */
|
||||
for (i=0 ; i < share->base.keys ; i++)
|
||||
share->state.key_root[i]= HA_OFFSET_ERROR;
|
||||
|
|
@ -1878,7 +1884,7 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (flush_key_blocks(share->kfile, FLUSH_FORCE_WRITE))
|
||||
if (flush_key_blocks(*share->keycache,share->kfile, FLUSH_FORCE_WRITE))
|
||||
goto err;
|
||||
key_map= ~key_map; /* Create the missing keys */
|
||||
}
|
||||
|
|
@ -2231,7 +2237,7 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
|
|||
Flush key cache for this file if we are calling this outside
|
||||
myisamchk
|
||||
*/
|
||||
flush_key_blocks(share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
flush_key_blocks(*share->keycache,share->kfile, FLUSH_IGNORE_CHANGED);
|
||||
/* Clear the pointers to the given rows */
|
||||
for (i=0 ; i < share->base.keys ; i++)
|
||||
share->state.key_root[i]= HA_OFFSET_ERROR;
|
||||
|
|
@ -2241,7 +2247,7 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (flush_key_blocks(share->kfile, FLUSH_FORCE_WRITE))
|
||||
if (flush_key_blocks(*share->keycache,share->kfile, FLUSH_FORCE_WRITE))
|
||||
goto err;
|
||||
key_map= ~key_map; /* Create the missing keys */
|
||||
}
|
||||
|
|
@ -3356,13 +3362,13 @@ static int sort_insert_key(MI_SORT_PARAM *sort_param,
|
|||
bzero((byte*) anc_buff+key_block->last_length,
|
||||
keyinfo->block_length- key_block->last_length);
|
||||
key_file_length=info->state->key_file_length;
|
||||
if ((filepos=_mi_new(info,keyinfo)) == HA_OFFSET_ERROR)
|
||||
if ((filepos=_mi_new(info,keyinfo,DFLT_INIT_HITS)) == HA_OFFSET_ERROR)
|
||||
DBUG_RETURN(1);
|
||||
|
||||
/* If we read the page from the key cache, we have to write it back to it */
|
||||
if (key_file_length == info->state->key_file_length)
|
||||
{
|
||||
if (_mi_write_keypage(info, keyinfo, filepos, anc_buff))
|
||||
if (_mi_write_keypage(info, keyinfo, filepos, DFLT_INIT_HITS, anc_buff))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
else if (my_pwrite(info->s->kfile,(byte*) anc_buff,
|
||||
|
|
@ -3460,13 +3466,14 @@ int flush_pending_blocks(MI_SORT_PARAM *sort_param)
|
|||
_mi_kpointer(info,key_block->end_pos,filepos);
|
||||
key_file_length=info->state->key_file_length;
|
||||
bzero((byte*) key_block->buff+length, keyinfo->block_length-length);
|
||||
if ((filepos=_mi_new(info,keyinfo)) == HA_OFFSET_ERROR)
|
||||
if ((filepos=_mi_new(info,keyinfo,DFLT_INIT_HITS)) == HA_OFFSET_ERROR)
|
||||
DBUG_RETURN(1);
|
||||
|
||||
/* If we read the page from the key cache, we have to write it back */
|
||||
if (key_file_length == info->state->key_file_length)
|
||||
{
|
||||
if (_mi_write_keypage(info, keyinfo, filepos, key_block->buff))
|
||||
if (_mi_write_keypage(info, keyinfo, filepos,
|
||||
DFLT_INIT_HITS, key_block->buff))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
else if (my_pwrite(info->s->kfile,(byte*) key_block->buff,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue