@@ -86,6 +86,28 @@ static int write_merge_key_varlen(MI_SORT_PARAM *info,
86
86
static inline int
87
87
my_var_write (MI_SORT_PARAM * info , IO_CACHE * to_file , uchar * bufs );
88
88
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
+
89
111
/*
90
112
Creates a index of sorted keys
91
113
@@ -113,18 +135,7 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
113
135
DBUG_ENTER ("_create_index_by_sort" );
114
136
DBUG_PRINT ("enter" ,("sort_length: %u" , info -> key_length ));
115
137
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
- }
138
+ set_sort_param_read_write (info );
128
139
129
140
my_b_clear (& tempfile );
130
141
my_b_clear (& tempfile_for_exceptions );
@@ -333,7 +344,6 @@ static ha_rows find_all_keys(MI_SORT_PARAM *info, ha_rows keys,
333
344
DBUG_RETURN ((* maxbuffer )* (keys - 1 )+ idx );
334
345
} /* find_all_keys */
335
346
336
-
337
347
/* Search after all keys and place them in a temp. file */
338
348
339
349
pthread_handler_t thr_find_all_keys (void * arg )
@@ -357,18 +367,7 @@ pthread_handler_t thr_find_all_keys(void *arg)
357
367
if (sort_param -> sort_info -> got_error )
358
368
goto err ;
359
369
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
- }
370
+ set_sort_param_read_write (sort_param );
372
371
373
372
my_b_clear (& sort_param -> tempfile );
374
373
my_b_clear (& sort_param -> tempfile_for_exceptions );
@@ -593,18 +592,9 @@ int thr_write_keys(MI_SORT_PARAM *sort_param)
593
592
{
594
593
if (got_error )
595
594
continue ;
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
- }
595
+
596
+ set_sort_param_read_write (sinfo );
597
+
608
598
if (sinfo -> buffpek .elements )
609
599
{
610
600
uint maxbuffer = sinfo -> buffpek .elements - 1 ;
0 commit comments