Skip to content

Commit e7a89b4

Browse files
committed
Revert "[Code cleanup] Refactor duplicate code within myisam and maria sort.cc"
This reverts commit 727f92f.
1 parent acc8379 commit e7a89b4

File tree

2 files changed

+73
-53
lines changed

2 files changed

+73
-53
lines changed

storage/maria/ma_sort.c

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -89,27 +89,6 @@ static int write_merge_key_varlen(MARIA_SORT_PARAM *info,
8989
static inline int
9090
my_var_write(MARIA_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
9191

92-
/*
93-
Sets the appropriate read and write methods for the MARIA_SORT_PARAM
94-
based on the variable length key flag.
95-
*/
96-
static void set_sort_param_read_write(MARIA_SORT_PARAM *sort_param)
97-
{
98-
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
99-
{
100-
sort_param->write_keys= write_keys_varlen;
101-
sort_param->read_to_buffer= read_to_buffer_varlen;
102-
sort_param->write_key= write_merge_key_varlen;
103-
}
104-
else
105-
{
106-
sort_param->write_keys= write_keys;
107-
sort_param->read_to_buffer= read_to_buffer;
108-
sort_param->write_key= write_merge_key;
109-
}
110-
}
111-
112-
11392
/*
11493
Creates a index of sorted keys
11594
@@ -139,7 +118,18 @@ int _ma_create_index_by_sort(MARIA_SORT_PARAM *info, my_bool no_messages,
139118
(ulong) sortbuff_size, info->key_length,
140119
(ulong) info->sort_info->max_records));
141120

142-
set_sort_param_read_write(info);
121+
if (info->keyinfo->flag & HA_VAR_LENGTH_KEY)
122+
{
123+
info->write_keys= write_keys_varlen;
124+
info->read_to_buffer= read_to_buffer_varlen;
125+
info->write_key=write_merge_key_varlen;
126+
}
127+
else
128+
{
129+
info->write_keys= write_keys;
130+
info->read_to_buffer=read_to_buffer;
131+
info->write_key=write_merge_key;
132+
}
143133

144134
my_b_clear(&tempfile);
145135
my_b_clear(&tempfile_for_exceptions);
@@ -388,7 +378,18 @@ pthread_handler_t _ma_thr_find_all_keys(void *arg)
388378
if (sort_param->sort_info->got_error)
389379
goto err;
390380

391-
set_sort_param_read_write(sort_param);
381+
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
382+
{
383+
sort_param->write_keys= write_keys_varlen;
384+
sort_param->read_to_buffer= read_to_buffer_varlen;
385+
sort_param->write_key= write_merge_key_varlen;
386+
}
387+
else
388+
{
389+
sort_param->write_keys= write_keys;
390+
sort_param->read_to_buffer= read_to_buffer;
391+
sort_param->write_key= write_merge_key;
392+
}
392393

393394
my_b_clear(&sort_param->tempfile);
394395
my_b_clear(&sort_param->tempfile_for_exceptions);
@@ -613,9 +614,18 @@ int _ma_thr_write_keys(MARIA_SORT_PARAM *sort_param)
613614
{
614615
if (got_error)
615616
continue;
616-
617-
set_sort_param_read_write(sinfo);
618-
617+
if (sinfo->keyinfo->flag & HA_VAR_LENGTH_KEY)
618+
{
619+
sinfo->write_keys=write_keys_varlen;
620+
sinfo->read_to_buffer=read_to_buffer_varlen;
621+
sinfo->write_key=write_merge_key_varlen;
622+
}
623+
else
624+
{
625+
sinfo->write_keys=write_keys;
626+
sinfo->read_to_buffer=read_to_buffer;
627+
sinfo->write_key=write_merge_key;
628+
}
619629
if (sinfo->buffpek.elements)
620630
{
621631
uint maxbuffer=sinfo->buffpek.elements-1;

storage/myisam/sort.c

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -86,28 +86,6 @@ static int write_merge_key_varlen(MI_SORT_PARAM *info,
8686
static inline int
8787
my_var_write(MI_SORT_PARAM *info, IO_CACHE *to_file, uchar *bufs);
8888

89-
90-
/*
91-
Sets the appropriate read and write methods for the MI_SORT_PARAM
92-
based on the variable length key flag.
93-
*/
94-
static void set_sort_param_read_write(MI_SORT_PARAM *sort_param)
95-
{
96-
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
97-
{
98-
sort_param->write_keys= write_keys_varlen;
99-
sort_param->read_to_buffer= read_to_buffer_varlen;
100-
sort_param->write_key= write_merge_key_varlen;
101-
}
102-
else
103-
{
104-
sort_param->write_keys= write_keys;
105-
sort_param->read_to_buffer= read_to_buffer;
106-
sort_param->write_key= write_merge_key;
107-
}
108-
}
109-
110-
11189
/*
11290
Creates a index of sorted keys
11391
@@ -135,7 +113,18 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
135113
DBUG_ENTER("_create_index_by_sort");
136114
DBUG_PRINT("enter",("sort_length: %u", info->key_length));
137115

138-
set_sort_param_read_write(info);
116+
if (info->keyinfo->flag & HA_VAR_LENGTH_KEY)
117+
{
118+
info->write_keys=write_keys_varlen;
119+
info->read_to_buffer=read_to_buffer_varlen;
120+
info->write_key= write_merge_key_varlen;
121+
}
122+
else
123+
{
124+
info->write_keys=write_keys;
125+
info->read_to_buffer=read_to_buffer;
126+
info->write_key=write_merge_key;
127+
}
139128

140129
my_b_clear(&tempfile);
141130
my_b_clear(&tempfile_for_exceptions);
@@ -344,6 +333,7 @@ static ha_rows find_all_keys(MI_SORT_PARAM *info, ha_rows keys,
344333
DBUG_RETURN((*maxbuffer)*(keys-1)+idx);
345334
} /* find_all_keys */
346335

336+
347337
/* Search after all keys and place them in a temp. file */
348338

349339
pthread_handler_t thr_find_all_keys(void *arg)
@@ -367,7 +357,18 @@ pthread_handler_t thr_find_all_keys(void *arg)
367357
if (sort_param->sort_info->got_error)
368358
goto err;
369359

370-
set_sort_param_read_write(sort_param);
360+
if (sort_param->keyinfo->flag & HA_VAR_LENGTH_KEY)
361+
{
362+
sort_param->write_keys= write_keys_varlen;
363+
sort_param->read_to_buffer= read_to_buffer_varlen;
364+
sort_param->write_key= write_merge_key_varlen;
365+
}
366+
else
367+
{
368+
sort_param->write_keys= write_keys;
369+
sort_param->read_to_buffer= read_to_buffer;
370+
sort_param->write_key= write_merge_key;
371+
}
371372

372373
my_b_clear(&sort_param->tempfile);
373374
my_b_clear(&sort_param->tempfile_for_exceptions);
@@ -592,9 +593,18 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
592593
{
593594
if (got_error)
594595
continue;
595-
596-
set_sort_param_read_write(sinfo);
597-
596+
if (sinfo->keyinfo->flag & HA_VAR_LENGTH_KEY)
597+
{
598+
sinfo->write_keys=write_keys_varlen;
599+
sinfo->read_to_buffer=read_to_buffer_varlen;
600+
sinfo->write_key=write_merge_key_varlen;
601+
}
602+
else
603+
{
604+
sinfo->write_keys=write_keys;
605+
sinfo->read_to_buffer=read_to_buffer;
606+
sinfo->write_key=write_merge_key;
607+
}
598608
if (sinfo->buffpek.elements)
599609
{
600610
uint maxbuffer=sinfo->buffpek.elements-1;

0 commit comments

Comments
 (0)