mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
Revert "[Code cleanup] Refactor duplicate code within myisam and maria sort.cc"
This reverts commit 727f92fe00
.
This commit is contained in:
@@ -89,27 +89,6 @@ static int write_merge_key_varlen(MARIA_SORT_PARAM *info,
|
|||||||
static inline int
|
static inline int
|
||||||
my_var_write(MARIA_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
|
my_var_write(MARIA_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
|
||||||
|
|
||||||
/*
|
|
||||||
Sets the appropriate read and write methods for the MARIA_SORT_PARAM
|
|
||||||
based on the variable length key flag.
|
|
||||||
*/
|
|
||||||
static void set_sort_param_read_write(MARIA_SORT_PARAM *sort_param)
|
|
||||||
{
|
|
||||||
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
|
||||||
{
|
|
||||||
sort_param->write_keys= write_keys_varlen;
|
|
||||||
sort_param->read_to_buffer= read_to_buffer_varlen;
|
|
||||||
sort_param->write_key= write_merge_key_varlen;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sort_param->write_keys= write_keys;
|
|
||||||
sort_param->read_to_buffer= read_to_buffer;
|
|
||||||
sort_param->write_key= write_merge_key;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Creates a index of sorted keys
|
Creates a index of sorted keys
|
||||||
|
|
||||||
@@ -139,7 +118,18 @@ int _ma_create_index_by_sort(MARIA_SORT_PARAM *info, my_bool no_messages,
|
|||||||
(ulong) sortbuff_size, info->key_length,
|
(ulong) sortbuff_size, info->key_length,
|
||||||
(ulong) info->sort_info->max_records));
|
(ulong) info->sort_info->max_records));
|
||||||
|
|
||||||
set_sort_param_read_write(info);
|
if (info->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
|
{
|
||||||
|
info->write_keys= write_keys_varlen;
|
||||||
|
info->read_to_buffer= read_to_buffer_varlen;
|
||||||
|
info->write_key=write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info->write_keys= write_keys;
|
||||||
|
info->read_to_buffer=read_to_buffer;
|
||||||
|
info->write_key=write_merge_key;
|
||||||
|
}
|
||||||
|
|
||||||
my_b_clear(&tempfile);
|
my_b_clear(&tempfile);
|
||||||
my_b_clear(&tempfile_for_exceptions);
|
my_b_clear(&tempfile_for_exceptions);
|
||||||
@@ -388,7 +378,18 @@ pthread_handler_t _ma_thr_find_all_keys(void *arg)
|
|||||||
if (sort_param->sort_info->got_error)
|
if (sort_param->sort_info->got_error)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
set_sort_param_read_write(sort_param);
|
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
|
{
|
||||||
|
sort_param->write_keys= write_keys_varlen;
|
||||||
|
sort_param->read_to_buffer= read_to_buffer_varlen;
|
||||||
|
sort_param->write_key= write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sort_param->write_keys= write_keys;
|
||||||
|
sort_param->read_to_buffer= read_to_buffer;
|
||||||
|
sort_param->write_key= write_merge_key;
|
||||||
|
}
|
||||||
|
|
||||||
my_b_clear(&sort_param->tempfile);
|
my_b_clear(&sort_param->tempfile);
|
||||||
my_b_clear(&sort_param->tempfile_for_exceptions);
|
my_b_clear(&sort_param->tempfile_for_exceptions);
|
||||||
@@ -613,9 +614,18 @@ int _ma_thr_write_keys(MARIA_SORT_PARAM *sort_param)
|
|||||||
{
|
{
|
||||||
if (got_error)
|
if (got_error)
|
||||||
continue;
|
continue;
|
||||||
|
if (sinfo->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
set_sort_param_read_write(sinfo);
|
{
|
||||||
|
sinfo->write_keys=write_keys_varlen;
|
||||||
|
sinfo->read_to_buffer=read_to_buffer_varlen;
|
||||||
|
sinfo->write_key=write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sinfo->write_keys=write_keys;
|
||||||
|
sinfo->read_to_buffer=read_to_buffer;
|
||||||
|
sinfo->write_key=write_merge_key;
|
||||||
|
}
|
||||||
if (sinfo->buffpek.elements)
|
if (sinfo->buffpek.elements)
|
||||||
{
|
{
|
||||||
uint maxbuffer=sinfo->buffpek.elements-1;
|
uint maxbuffer=sinfo->buffpek.elements-1;
|
||||||
|
@@ -86,28 +86,6 @@ static int write_merge_key_varlen(MI_SORT_PARAM *info,
|
|||||||
static inline int
|
static inline int
|
||||||
my_var_write(MI_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
|
my_var_write(MI_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Sets the appropriate read and write methods for the MI_SORT_PARAM
|
|
||||||
based on the variable length key flag.
|
|
||||||
*/
|
|
||||||
static void set_sort_param_read_write(MI_SORT_PARAM *sort_param)
|
|
||||||
{
|
|
||||||
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
|
||||||
{
|
|
||||||
sort_param->write_keys= write_keys_varlen;
|
|
||||||
sort_param->read_to_buffer= read_to_buffer_varlen;
|
|
||||||
sort_param->write_key= write_merge_key_varlen;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sort_param->write_keys= write_keys;
|
|
||||||
sort_param->read_to_buffer= read_to_buffer;
|
|
||||||
sort_param->write_key= write_merge_key;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Creates a index of sorted keys
|
Creates a index of sorted keys
|
||||||
|
|
||||||
@@ -135,7 +113,18 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
|
|||||||
DBUG_ENTER("_create_index_by_sort");
|
DBUG_ENTER("_create_index_by_sort");
|
||||||
DBUG_PRINT("enter",("sort_length: %u", info->key_length));
|
DBUG_PRINT("enter",("sort_length: %u", info->key_length));
|
||||||
|
|
||||||
set_sort_param_read_write(info);
|
if (info->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
|
{
|
||||||
|
info->write_keys=write_keys_varlen;
|
||||||
|
info->read_to_buffer=read_to_buffer_varlen;
|
||||||
|
info->write_key= write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info->write_keys=write_keys;
|
||||||
|
info->read_to_buffer=read_to_buffer;
|
||||||
|
info->write_key=write_merge_key;
|
||||||
|
}
|
||||||
|
|
||||||
my_b_clear(&tempfile);
|
my_b_clear(&tempfile);
|
||||||
my_b_clear(&tempfile_for_exceptions);
|
my_b_clear(&tempfile_for_exceptions);
|
||||||
@@ -344,6 +333,7 @@ static ha_rows find_all_keys(MI_SORT_PARAM *info, ha_rows keys,
|
|||||||
DBUG_RETURN((*maxbuffer)*(keys-1)+idx);
|
DBUG_RETURN((*maxbuffer)*(keys-1)+idx);
|
||||||
} /* find_all_keys */
|
} /* find_all_keys */
|
||||||
|
|
||||||
|
|
||||||
/* Search after all keys and place them in a temp. file */
|
/* Search after all keys and place them in a temp. file */
|
||||||
|
|
||||||
pthread_handler_t thr_find_all_keys(void *arg)
|
pthread_handler_t thr_find_all_keys(void *arg)
|
||||||
@@ -367,7 +357,18 @@ pthread_handler_t thr_find_all_keys(void *arg)
|
|||||||
if (sort_param->sort_info->got_error)
|
if (sort_param->sort_info->got_error)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
set_sort_param_read_write(sort_param);
|
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
|
{
|
||||||
|
sort_param->write_keys= write_keys_varlen;
|
||||||
|
sort_param->read_to_buffer= read_to_buffer_varlen;
|
||||||
|
sort_param->write_key= write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sort_param->write_keys= write_keys;
|
||||||
|
sort_param->read_to_buffer= read_to_buffer;
|
||||||
|
sort_param->write_key= write_merge_key;
|
||||||
|
}
|
||||||
|
|
||||||
my_b_clear(&sort_param->tempfile);
|
my_b_clear(&sort_param->tempfile);
|
||||||
my_b_clear(&sort_param->tempfile_for_exceptions);
|
my_b_clear(&sort_param->tempfile_for_exceptions);
|
||||||
@@ -592,9 +593,18 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
|
|||||||
{
|
{
|
||||||
if (got_error)
|
if (got_error)
|
||||||
continue;
|
continue;
|
||||||
|
if (sinfo->keyinfo->flag & HA_VAR_LENGTH_KEY)
|
||||||
set_sort_param_read_write(sinfo);
|
{
|
||||||
|
sinfo->write_keys=write_keys_varlen;
|
||||||
|
sinfo->read_to_buffer=read_to_buffer_varlen;
|
||||||
|
sinfo->write_key=write_merge_key_varlen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sinfo->write_keys=write_keys;
|
||||||
|
sinfo->read_to_buffer=read_to_buffer;
|
||||||
|
sinfo->write_key=write_merge_key;
|
||||||
|
}
|
||||||
if (sinfo->buffpek.elements)
|
if (sinfo->buffpek.elements)
|
||||||
{
|
{
|
||||||
uint maxbuffer=sinfo->buffpek.elements-1;
|
uint maxbuffer=sinfo->buffpek.elements-1;
|
||||||
|
Reference in New Issue
Block a user