Coverage Report

Created: 2024-06-18 07:03

/src/server/mysys/charset-def.c
Line
Count
Source (jump to first uncovered line)
1
/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
2
3
   This program is free software; you can redistribute it and/or modify
4
   it under the terms of the GNU General Public License as published by
5
   the Free Software Foundation; version 2 of the License.
6
7
   This program is distributed in the hope that it will be useful,
8
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
   GNU General Public License for more details.
11
12
   You should have received a copy of the GNU General Public License
13
   along with this program; if not, write to the Free Software
14
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335  USA */
15
16
#include "mysys_priv.h"
17
18
#include "../strings/ctype-uca.h"
19
20
/*
21
  Include all compiled character sets into the client
22
  If a client don't want to use all of them, he can define his own
23
  init_compiled_charsets() that only adds those that he wants
24
*/
25
26
#ifdef HAVE_UCA_COLLATIONS
27
28
#ifdef HAVE_CHARSET_ucs2
29
extern struct charset_info_st my_charset_ucs2_german2_uca_ci;
30
extern struct charset_info_st my_charset_ucs2_icelandic_uca_ci;
31
extern struct charset_info_st my_charset_ucs2_latvian_uca_ci;
32
extern struct charset_info_st my_charset_ucs2_romanian_uca_ci;
33
extern struct charset_info_st my_charset_ucs2_slovenian_uca_ci;
34
extern struct charset_info_st my_charset_ucs2_polish_uca_ci;
35
extern struct charset_info_st my_charset_ucs2_estonian_uca_ci;
36
extern struct charset_info_st my_charset_ucs2_spanish_uca_ci;
37
extern struct charset_info_st my_charset_ucs2_swedish_uca_ci;
38
extern struct charset_info_st my_charset_ucs2_turkish_uca_ci;
39
extern struct charset_info_st my_charset_ucs2_czech_uca_ci;
40
extern struct charset_info_st my_charset_ucs2_danish_uca_ci;
41
extern struct charset_info_st my_charset_ucs2_lithuanian_uca_ci;
42
extern struct charset_info_st my_charset_ucs2_slovak_uca_ci;
43
extern struct charset_info_st my_charset_ucs2_spanish2_uca_ci;
44
extern struct charset_info_st my_charset_ucs2_roman_uca_ci;
45
extern struct charset_info_st my_charset_ucs2_persian_uca_ci;
46
extern struct charset_info_st my_charset_ucs2_esperanto_uca_ci;
47
extern struct charset_info_st my_charset_ucs2_hungarian_uca_ci;
48
extern struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci;
49
extern struct charset_info_st my_charset_ucs2_sinhala_uca_ci;
50
extern struct charset_info_st my_charset_ucs2_unicode_520_ci;
51
extern struct charset_info_st my_charset_ucs2_vietnamese_ci;
52
extern struct charset_info_st my_charset_ucs2_croatian_uca_ci;
53
extern struct charset_info_st my_charset_ucs2_myanmar_uca_ci;
54
extern struct charset_info_st my_charset_ucs2_thai_520_w2;
55
extern struct charset_info_st my_charset_ucs2_unicode_520_nopad_ci;
56
#endif
57
58
59
#ifdef HAVE_CHARSET_utf32
60
extern struct charset_info_st my_charset_utf32_german2_uca_ci;
61
extern struct charset_info_st my_charset_utf32_icelandic_uca_ci;
62
extern struct charset_info_st my_charset_utf32_latvian_uca_ci;
63
extern struct charset_info_st my_charset_utf32_romanian_uca_ci;
64
extern struct charset_info_st my_charset_utf32_slovenian_uca_ci;
65
extern struct charset_info_st my_charset_utf32_polish_uca_ci;
66
extern struct charset_info_st my_charset_utf32_estonian_uca_ci;
67
extern struct charset_info_st my_charset_utf32_spanish_uca_ci;
68
extern struct charset_info_st my_charset_utf32_swedish_uca_ci;
69
extern struct charset_info_st my_charset_utf32_turkish_uca_ci;
70
extern struct charset_info_st my_charset_utf32_czech_uca_ci;
71
extern struct charset_info_st my_charset_utf32_danish_uca_ci;
72
extern struct charset_info_st my_charset_utf32_lithuanian_uca_ci;
73
extern struct charset_info_st my_charset_utf32_slovak_uca_ci;
74
extern struct charset_info_st my_charset_utf32_spanish2_uca_ci;
75
extern struct charset_info_st my_charset_utf32_roman_uca_ci;
76
extern struct charset_info_st my_charset_utf32_persian_uca_ci;
77
extern struct charset_info_st my_charset_utf32_esperanto_uca_ci;
78
extern struct charset_info_st my_charset_utf32_hungarian_uca_ci;
79
extern struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci;
80
extern struct charset_info_st my_charset_utf32_sinhala_uca_ci;
81
extern struct charset_info_st my_charset_utf32_unicode_520_ci;
82
extern struct charset_info_st my_charset_utf32_vietnamese_ci;
83
extern struct charset_info_st my_charset_utf32_croatian_uca_ci;
84
extern struct charset_info_st my_charset_utf32_myanmar_uca_ci;
85
extern struct charset_info_st my_charset_utf32_thai_520_w2;
86
extern struct charset_info_st my_charset_utf32_unicode_520_nopad_ci;
87
#endif /* HAVE_CHARSET_utf32 */
88
89
90
#ifdef HAVE_CHARSET_utf16
91
extern struct charset_info_st my_charset_utf16_german2_uca_ci;
92
extern struct charset_info_st my_charset_utf16_icelandic_uca_ci;
93
extern struct charset_info_st my_charset_utf16_latvian_uca_ci;
94
extern struct charset_info_st my_charset_utf16_romanian_uca_ci;
95
extern struct charset_info_st my_charset_utf16_slovenian_uca_ci;
96
extern struct charset_info_st my_charset_utf16_polish_uca_ci;
97
extern struct charset_info_st my_charset_utf16_estonian_uca_ci;
98
extern struct charset_info_st my_charset_utf16_spanish_uca_ci;
99
extern struct charset_info_st my_charset_utf16_swedish_uca_ci;
100
extern struct charset_info_st my_charset_utf16_turkish_uca_ci;
101
extern struct charset_info_st my_charset_utf16_czech_uca_ci;
102
extern struct charset_info_st my_charset_utf16_danish_uca_ci;
103
extern struct charset_info_st my_charset_utf16_lithuanian_uca_ci;
104
extern struct charset_info_st my_charset_utf16_slovak_uca_ci;
105
extern struct charset_info_st my_charset_utf16_spanish2_uca_ci;
106
extern struct charset_info_st my_charset_utf16_roman_uca_ci;
107
extern struct charset_info_st my_charset_utf16_persian_uca_ci;
108
extern struct charset_info_st my_charset_utf16_esperanto_uca_ci;
109
extern struct charset_info_st my_charset_utf16_hungarian_uca_ci;
110
extern struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci;
111
extern struct charset_info_st my_charset_utf16_sinhala_uca_ci;
112
extern struct charset_info_st my_charset_utf16_unicode_520_ci;
113
extern struct charset_info_st my_charset_utf16_vietnamese_ci;
114
extern struct charset_info_st my_charset_utf16_croatian_uca_ci;
115
extern struct charset_info_st my_charset_utf16_myanmar_uca_ci;
116
extern struct charset_info_st my_charset_utf16_thai_520_w2;
117
extern struct charset_info_st my_charset_utf16_unicode_520_nopad_ci;
118
#endif  /* HAVE_CHARSET_utf16 */
119
120
121
#ifdef HAVE_CHARSET_utf8mb3
122
extern struct charset_info_st my_charset_utf8mb3_german2_uca_ci;
123
extern struct charset_info_st my_charset_utf8mb3_icelandic_uca_ci;
124
extern struct charset_info_st my_charset_utf8mb3_latvian_uca_ci;
125
extern struct charset_info_st my_charset_utf8mb3_romanian_uca_ci;
126
extern struct charset_info_st my_charset_utf8mb3_slovenian_uca_ci;
127
extern struct charset_info_st my_charset_utf8mb3_polish_uca_ci;
128
extern struct charset_info_st my_charset_utf8mb3_estonian_uca_ci;
129
extern struct charset_info_st my_charset_utf8mb3_spanish_uca_ci;
130
extern struct charset_info_st my_charset_utf8mb3_swedish_uca_ci;
131
extern struct charset_info_st my_charset_utf8mb3_turkish_uca_ci;
132
extern struct charset_info_st my_charset_utf8mb3_czech_uca_ci;
133
extern struct charset_info_st my_charset_utf8mb3_danish_uca_ci;
134
extern struct charset_info_st my_charset_utf8mb3_lithuanian_uca_ci;
135
extern struct charset_info_st my_charset_utf8mb3_slovak_uca_ci;
136
extern struct charset_info_st my_charset_utf8mb3_spanish2_uca_ci;
137
extern struct charset_info_st my_charset_utf8mb3_roman_uca_ci;
138
extern struct charset_info_st my_charset_utf8mb3_persian_uca_ci;
139
extern struct charset_info_st my_charset_utf8mb3_esperanto_uca_ci;
140
extern struct charset_info_st my_charset_utf8mb3_hungarian_uca_ci;
141
extern struct charset_info_st my_charset_utf8mb3_croatian_mysql561_uca_ci;
142
extern struct charset_info_st my_charset_utf8mb3_sinhala_uca_ci;
143
extern struct charset_info_st my_charset_utf8mb3_unicode_520_ci;
144
extern struct charset_info_st my_charset_utf8mb3_vietnamese_ci;
145
extern struct charset_info_st my_charset_utf8mb3_croatian_uca_ci;
146
extern struct charset_info_st my_charset_utf8mb3_myanmar_uca_ci;
147
extern struct charset_info_st my_charset_utf8mb3_thai_520_w2;
148
#ifdef HAVE_UTF8_GENERAL_CS
149
extern struct charset_info_st my_charset_utf8mb3_general_cs;
150
#endif
151
extern struct charset_info_st my_charset_utf8mb3_unicode_520_nopad_ci;
152
#endif
153
154
#ifdef HAVE_CHARSET_utf8mb4
155
extern struct charset_info_st my_charset_utf8mb4_german2_uca_ci;
156
extern struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci;
157
extern struct charset_info_st my_charset_utf8mb4_latvian_uca_ci;
158
extern struct charset_info_st my_charset_utf8mb4_romanian_uca_ci;
159
extern struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci;
160
extern struct charset_info_st my_charset_utf8mb4_polish_uca_ci;
161
extern struct charset_info_st my_charset_utf8mb4_estonian_uca_ci;
162
extern struct charset_info_st my_charset_utf8mb4_spanish_uca_ci;
163
extern struct charset_info_st my_charset_utf8mb4_swedish_uca_ci;
164
extern struct charset_info_st my_charset_utf8mb4_turkish_uca_ci;
165
extern struct charset_info_st my_charset_utf8mb4_czech_uca_ci;
166
extern struct charset_info_st my_charset_utf8mb4_danish_uca_ci;
167
extern struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci;
168
extern struct charset_info_st my_charset_utf8mb4_slovak_uca_ci;
169
extern struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci;
170
extern struct charset_info_st my_charset_utf8mb4_roman_uca_ci;
171
extern struct charset_info_st my_charset_utf8mb4_persian_uca_ci;
172
extern struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci;
173
extern struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci;
174
extern struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci;
175
extern struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci;
176
extern struct charset_info_st my_charset_utf8mb4_unicode_520_ci;
177
extern struct charset_info_st my_charset_utf8mb4_vietnamese_ci;
178
extern struct charset_info_st my_charset_utf8mb4_croatian_uca_ci;
179
extern struct charset_info_st my_charset_utf8mb4_myanmar_uca_ci;
180
extern struct charset_info_st my_charset_utf8mb4_thai_520_w2;
181
extern struct charset_info_st my_charset_utf8mb4_unicode_520_nopad_ci;
182
#endif /* HAVE_CHARSET_utf8mb4 */
183
184
#endif /* HAVE_UCA_COLLATIONS */
185
186
187
static my_bool
188
my_uca1400_collation_definition_add(MY_CHARSET_LOADER *loader,
189
                                    my_cs_encoding_t charset_id,
190
                                    uint tailoring_id,
191
                                    my_bool nopad,
192
                                    my_bool secondary_level,
193
                                    my_bool tertiary_level)
194
0
{
195
0
  struct charset_info_st *tmp;
196
0
  uint collation_id= my_uca1400_make_builtin_collation_id(charset_id,
197
0
                                                          tailoring_id,
198
0
                                                          nopad,
199
0
                                                          secondary_level,
200
0
                                                          tertiary_level);
201
0
  if (!collation_id)
202
0
    return FALSE;
203
0
  if (!(tmp= (struct charset_info_st*)
204
0
      my_once_alloc(sizeof(CHARSET_INFO),MYF(0))))
205
0
    return TRUE;
206
0
  if (my_uca1400_collation_definition_init(loader, tmp, collation_id))
207
0
    return TRUE;
208
0
  add_compiled_collation(tmp);
209
0
  return FALSE;
210
0
}
211
212
213
static my_bool
214
my_uca1400_collation_definitions_add()
215
0
{
216
0
  my_cs_encoding_t charset_id;
217
0
  MY_CHARSET_LOADER loader;
218
0
  my_charset_loader_init_mysys(&loader);
219
0
  for (charset_id= (my_cs_encoding_t) 0;
220
0
       charset_id <= (my_cs_encoding_t) MY_CS_ENCODING_LAST;
221
0
       charset_id++)
222
0
  {
223
0
    uint tailoring_id;
224
0
    for (tailoring_id= 0 ;
225
0
         tailoring_id < MY_UCA1400_COLLATION_DEFINITION_COUNT;
226
0
         tailoring_id++)
227
0
    {
228
0
      uint nopad;
229
0
      for (nopad= 0; nopad < 2; nopad++)
230
0
      {
231
0
        uint secondary_level;
232
0
        for (secondary_level= 0; secondary_level < 2; secondary_level++)
233
0
        {
234
0
          if (my_uca1400_collation_definition_add(&loader,
235
0
                                                  charset_id, tailoring_id,
236
0
                                                  (my_bool) nopad,
237
0
                                                  (my_bool) secondary_level,
238
0
                                                  FALSE))
239
0
            return TRUE;
240
0
          if (my_uca1400_collation_definition_add(&loader,
241
0
                                                  charset_id, tailoring_id,
242
0
                                                  (my_bool) nopad,
243
0
                                                  (my_bool) secondary_level,
244
0
                                                  TRUE))
245
0
            return TRUE;
246
0
        }
247
0
      }
248
0
    }
249
0
  }
250
0
  return FALSE;
251
0
}
252
253
254
my_bool init_compiled_charsets(myf flags __attribute__((unused)))
255
0
{
256
0
  CHARSET_INFO *cs;
257
258
0
  add_compiled_collation(&my_charset_bin);
259
0
  add_compiled_collation(&my_charset_filename);
260
  
261
0
  add_compiled_collation(&my_charset_latin1);
262
0
  add_compiled_collation(&my_charset_latin1_nopad);
263
0
  add_compiled_collation(&my_charset_latin1_bin);
264
0
  add_compiled_collation(&my_charset_latin1_nopad_bin);
265
0
  add_compiled_collation(&my_charset_latin1_german2_ci);
266
267
0
#ifdef HAVE_CHARSET_big5
268
0
  add_compiled_collation(&my_charset_big5_chinese_ci);
269
0
  add_compiled_collation(&my_charset_big5_bin);
270
0
  add_compiled_collation(&my_charset_big5_chinese_nopad_ci);
271
0
  add_compiled_collation(&my_charset_big5_nopad_bin);
272
0
#endif
273
274
0
#ifdef HAVE_CHARSET_cp1250
275
0
  add_compiled_collation(&my_charset_cp1250_czech_cs);
276
0
#endif
277
278
0
#ifdef HAVE_CHARSET_cp932
279
0
  add_compiled_collation(&my_charset_cp932_japanese_ci);
280
0
  add_compiled_collation(&my_charset_cp932_bin);
281
0
  add_compiled_collation(&my_charset_cp932_japanese_nopad_ci);
282
0
  add_compiled_collation(&my_charset_cp932_nopad_bin);
283
0
#endif
284
285
0
#ifdef HAVE_CHARSET_latin2
286
0
  add_compiled_collation(&my_charset_latin2_czech_cs);
287
0
#endif
288
289
0
#ifdef HAVE_CHARSET_eucjpms
290
0
  add_compiled_collation(&my_charset_eucjpms_japanese_ci);
291
0
  add_compiled_collation(&my_charset_eucjpms_bin);
292
0
  add_compiled_collation(&my_charset_eucjpms_japanese_nopad_ci);
293
0
  add_compiled_collation(&my_charset_eucjpms_nopad_bin);
294
0
#endif
295
296
0
#ifdef HAVE_CHARSET_euckr
297
0
  add_compiled_collation(&my_charset_euckr_korean_ci);
298
0
  add_compiled_collation(&my_charset_euckr_bin);
299
0
  add_compiled_collation(&my_charset_euckr_korean_nopad_ci);
300
0
  add_compiled_collation(&my_charset_euckr_nopad_bin);
301
0
#endif
302
303
0
#ifdef HAVE_CHARSET_gb2312
304
0
  add_compiled_collation(&my_charset_gb2312_chinese_ci);
305
0
  add_compiled_collation(&my_charset_gb2312_bin);
306
0
  add_compiled_collation(&my_charset_gb2312_chinese_nopad_ci);
307
0
  add_compiled_collation(&my_charset_gb2312_nopad_bin);
308
0
#endif
309
310
0
#ifdef HAVE_CHARSET_gbk
311
0
  add_compiled_collation(&my_charset_gbk_chinese_ci);
312
0
  add_compiled_collation(&my_charset_gbk_bin);
313
0
  add_compiled_collation(&my_charset_gbk_chinese_nopad_ci);
314
0
  add_compiled_collation(&my_charset_gbk_nopad_bin);
315
0
#endif
316
317
0
#ifdef HAVE_CHARSET_sjis
318
0
  add_compiled_collation(&my_charset_sjis_japanese_ci);
319
0
  add_compiled_collation(&my_charset_sjis_bin);
320
0
  add_compiled_collation(&my_charset_sjis_japanese_nopad_ci);
321
0
  add_compiled_collation(&my_charset_sjis_nopad_bin);
322
0
#endif
323
324
0
#ifdef HAVE_CHARSET_tis620
325
0
  add_compiled_collation(&my_charset_tis620_thai_ci);
326
0
  add_compiled_collation(&my_charset_tis620_bin);
327
0
  add_compiled_collation(&my_charset_tis620_thai_nopad_ci);
328
0
  add_compiled_collation(&my_charset_tis620_nopad_bin);
329
0
#endif
330
331
0
#ifdef HAVE_CHARSET_ucs2
332
0
  add_compiled_collation(&my_charset_ucs2_general_ci);
333
0
  add_compiled_collation(&my_charset_ucs2_bin);
334
0
  add_compiled_collation(&my_charset_ucs2_general_nopad_ci);
335
0
  add_compiled_collation(&my_charset_ucs2_nopad_bin);
336
0
  add_compiled_collation(&my_charset_ucs2_general_mysql500_ci);
337
0
#ifdef HAVE_UCA_COLLATIONS
338
0
  add_compiled_collation(&my_charset_ucs2_unicode_ci);
339
0
  add_compiled_collation(&my_charset_ucs2_german2_uca_ci);
340
0
  add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
341
0
  add_compiled_collation(&my_charset_ucs2_latvian_uca_ci);
342
0
  add_compiled_collation(&my_charset_ucs2_romanian_uca_ci);
343
0
  add_compiled_collation(&my_charset_ucs2_slovenian_uca_ci);
344
0
  add_compiled_collation(&my_charset_ucs2_polish_uca_ci);
345
0
  add_compiled_collation(&my_charset_ucs2_estonian_uca_ci);
346
0
  add_compiled_collation(&my_charset_ucs2_spanish_uca_ci);
347
0
  add_compiled_collation(&my_charset_ucs2_swedish_uca_ci);
348
0
  add_compiled_collation(&my_charset_ucs2_turkish_uca_ci);
349
0
  add_compiled_collation(&my_charset_ucs2_czech_uca_ci);
350
0
  add_compiled_collation(&my_charset_ucs2_danish_uca_ci);
351
0
  add_compiled_collation(&my_charset_ucs2_lithuanian_uca_ci);
352
0
  add_compiled_collation(&my_charset_ucs2_slovak_uca_ci);
353
0
  add_compiled_collation(&my_charset_ucs2_spanish2_uca_ci);
354
0
  add_compiled_collation(&my_charset_ucs2_roman_uca_ci);
355
0
  add_compiled_collation(&my_charset_ucs2_persian_uca_ci);
356
0
  add_compiled_collation(&my_charset_ucs2_esperanto_uca_ci);
357
0
  add_compiled_collation(&my_charset_ucs2_hungarian_uca_ci);
358
0
  add_compiled_collation(&my_charset_ucs2_croatian_mysql561_uca_ci);
359
0
  add_compiled_collation(&my_charset_ucs2_sinhala_uca_ci);
360
0
  add_compiled_collation(&my_charset_ucs2_unicode_520_ci);
361
0
  add_compiled_collation(&my_charset_ucs2_vietnamese_ci);
362
0
  add_compiled_collation(&my_charset_ucs2_croatian_uca_ci);
363
0
  add_compiled_collation(&my_charset_ucs2_myanmar_uca_ci);
364
0
  add_compiled_collation(&my_charset_ucs2_thai_520_w2);
365
0
  add_compiled_collation(&my_charset_ucs2_unicode_nopad_ci);
366
0
  add_compiled_collation(&my_charset_ucs2_unicode_520_nopad_ci);
367
0
#endif
368
0
#endif
369
370
0
#ifdef HAVE_CHARSET_ujis
371
0
  add_compiled_collation(&my_charset_ujis_japanese_ci);
372
0
  add_compiled_collation(&my_charset_ujis_bin);
373
0
  add_compiled_collation(&my_charset_ujis_japanese_nopad_ci);
374
0
  add_compiled_collation(&my_charset_ujis_nopad_bin);
375
0
#endif
376
377
0
#ifdef HAVE_CHARSET_utf8mb3
378
0
  add_compiled_collation(&my_charset_utf8mb3_general_ci);
379
0
  add_compiled_collation(&my_charset_utf8mb3_general_nopad_ci);
380
0
  add_compiled_collation(&my_charset_utf8mb3_general1400_as_ci);
381
0
  add_compiled_collation(&my_charset_utf8mb3_bin);
382
0
  add_compiled_collation(&my_charset_utf8mb3_nopad_bin);
383
0
  add_compiled_collation(&my_charset_utf8mb3_general_mysql500_ci);
384
#ifdef HAVE_UTF8_GENERAL_CS
385
  add_compiled_collation(&my_charset_utf8mb3_general_cs);
386
#endif
387
0
#ifdef HAVE_UCA_COLLATIONS
388
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_ci);
389
0
  add_compiled_collation(&my_charset_utf8mb3_german2_uca_ci);
390
0
  add_compiled_collation(&my_charset_utf8mb3_icelandic_uca_ci);
391
0
  add_compiled_collation(&my_charset_utf8mb3_latvian_uca_ci);
392
0
  add_compiled_collation(&my_charset_utf8mb3_romanian_uca_ci);
393
0
  add_compiled_collation(&my_charset_utf8mb3_slovenian_uca_ci);
394
0
  add_compiled_collation(&my_charset_utf8mb3_polish_uca_ci);
395
0
  add_compiled_collation(&my_charset_utf8mb3_estonian_uca_ci);
396
0
  add_compiled_collation(&my_charset_utf8mb3_spanish_uca_ci);
397
0
  add_compiled_collation(&my_charset_utf8mb3_swedish_uca_ci);
398
0
  add_compiled_collation(&my_charset_utf8mb3_turkish_uca_ci);
399
0
  add_compiled_collation(&my_charset_utf8mb3_czech_uca_ci);
400
0
  add_compiled_collation(&my_charset_utf8mb3_danish_uca_ci);
401
0
  add_compiled_collation(&my_charset_utf8mb3_lithuanian_uca_ci);
402
0
  add_compiled_collation(&my_charset_utf8mb3_slovak_uca_ci);
403
0
  add_compiled_collation(&my_charset_utf8mb3_spanish2_uca_ci);
404
0
  add_compiled_collation(&my_charset_utf8mb3_roman_uca_ci);
405
0
  add_compiled_collation(&my_charset_utf8mb3_persian_uca_ci);
406
0
  add_compiled_collation(&my_charset_utf8mb3_esperanto_uca_ci);
407
0
  add_compiled_collation(&my_charset_utf8mb3_hungarian_uca_ci);
408
0
  add_compiled_collation(&my_charset_utf8mb3_croatian_mysql561_uca_ci);
409
0
  add_compiled_collation(&my_charset_utf8mb3_sinhala_uca_ci);
410
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_520_ci);
411
0
  add_compiled_collation(&my_charset_utf8mb3_vietnamese_ci);
412
0
  add_compiled_collation(&my_charset_utf8mb3_croatian_uca_ci);
413
0
  add_compiled_collation(&my_charset_utf8mb3_myanmar_uca_ci);
414
0
  add_compiled_collation(&my_charset_utf8mb3_thai_520_w2);
415
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_nopad_ci);
416
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_520_nopad_ci);
417
0
#endif
418
0
#endif /* HAVE_CHARSET_utf8mb3 */
419
420
421
0
#ifdef HAVE_CHARSET_utf8mb4
422
0
  add_compiled_collation(&my_charset_utf8mb4_general_ci);
423
0
  add_compiled_collation(&my_charset_utf8mb4_bin);
424
0
  add_compiled_collation(&my_charset_utf8mb4_general_nopad_ci);
425
0
  add_compiled_collation(&my_charset_utf8mb4_nopad_bin);
426
0
  add_compiled_collation(&my_charset_utf8mb4_general1400_as_ci);
427
0
#ifdef HAVE_UCA_COLLATIONS
428
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_ci);
429
0
  add_compiled_collation(&my_charset_utf8mb4_german2_uca_ci);
430
0
  add_compiled_collation(&my_charset_utf8mb4_icelandic_uca_ci);
431
0
  add_compiled_collation(&my_charset_utf8mb4_latvian_uca_ci);
432
0
  add_compiled_collation(&my_charset_utf8mb4_romanian_uca_ci);
433
0
  add_compiled_collation(&my_charset_utf8mb4_slovenian_uca_ci);
434
0
  add_compiled_collation(&my_charset_utf8mb4_polish_uca_ci);
435
0
  add_compiled_collation(&my_charset_utf8mb4_estonian_uca_ci);
436
0
  add_compiled_collation(&my_charset_utf8mb4_spanish_uca_ci);
437
0
  add_compiled_collation(&my_charset_utf8mb4_swedish_uca_ci);
438
0
  add_compiled_collation(&my_charset_utf8mb4_turkish_uca_ci);
439
0
  add_compiled_collation(&my_charset_utf8mb4_czech_uca_ci);
440
0
  add_compiled_collation(&my_charset_utf8mb4_danish_uca_ci);
441
0
  add_compiled_collation(&my_charset_utf8mb4_lithuanian_uca_ci);
442
0
  add_compiled_collation(&my_charset_utf8mb4_slovak_uca_ci);
443
0
  add_compiled_collation(&my_charset_utf8mb4_spanish2_uca_ci);
444
0
  add_compiled_collation(&my_charset_utf8mb4_roman_uca_ci);
445
0
  add_compiled_collation(&my_charset_utf8mb4_persian_uca_ci);
446
0
  add_compiled_collation(&my_charset_utf8mb4_esperanto_uca_ci);
447
0
  add_compiled_collation(&my_charset_utf8mb4_hungarian_uca_ci);
448
0
  add_compiled_collation(&my_charset_utf8mb4_croatian_mysql561_uca_ci);
449
0
  add_compiled_collation(&my_charset_utf8mb4_sinhala_uca_ci);
450
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_520_ci);
451
0
  add_compiled_collation(&my_charset_utf8mb4_vietnamese_ci);
452
0
  add_compiled_collation(&my_charset_utf8mb4_croatian_uca_ci);
453
0
  add_compiled_collation(&my_charset_utf8mb4_myanmar_uca_ci);
454
0
  add_compiled_collation(&my_charset_utf8mb4_thai_520_w2);
455
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_nopad_ci);
456
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_520_nopad_ci);
457
0
#endif /* HAVE_UCA_COLLATIONS  */
458
0
#endif /* HAVE_CHARSET_utf8mb4 */
459
460
461
0
#ifdef HAVE_CHARSET_utf16
462
0
  add_compiled_collation(&my_charset_utf16_general_ci);
463
0
  add_compiled_collation(&my_charset_utf16_bin);
464
0
  add_compiled_collation(&my_charset_utf16le_general_ci);
465
0
  add_compiled_collation(&my_charset_utf16le_bin);
466
0
  add_compiled_collation(&my_charset_utf16_general_nopad_ci);
467
0
  add_compiled_collation(&my_charset_utf16_nopad_bin);
468
0
  add_compiled_collation(&my_charset_utf16le_general_nopad_ci);
469
0
  add_compiled_collation(&my_charset_utf16le_nopad_bin);
470
0
#ifdef HAVE_UCA_COLLATIONS
471
0
  add_compiled_collation(&my_charset_utf16_unicode_ci);
472
0
  add_compiled_collation(&my_charset_utf16_german2_uca_ci);
473
0
  add_compiled_collation(&my_charset_utf16_icelandic_uca_ci);
474
0
  add_compiled_collation(&my_charset_utf16_latvian_uca_ci);
475
0
  add_compiled_collation(&my_charset_utf16_romanian_uca_ci);
476
0
  add_compiled_collation(&my_charset_utf16_slovenian_uca_ci);
477
0
  add_compiled_collation(&my_charset_utf16_polish_uca_ci);
478
0
  add_compiled_collation(&my_charset_utf16_estonian_uca_ci);
479
0
  add_compiled_collation(&my_charset_utf16_spanish_uca_ci);
480
0
  add_compiled_collation(&my_charset_utf16_swedish_uca_ci);
481
0
  add_compiled_collation(&my_charset_utf16_turkish_uca_ci);
482
0
  add_compiled_collation(&my_charset_utf16_czech_uca_ci);
483
0
  add_compiled_collation(&my_charset_utf16_danish_uca_ci);
484
0
  add_compiled_collation(&my_charset_utf16_lithuanian_uca_ci);
485
0
  add_compiled_collation(&my_charset_utf16_slovak_uca_ci);
486
0
  add_compiled_collation(&my_charset_utf16_spanish2_uca_ci);
487
0
  add_compiled_collation(&my_charset_utf16_roman_uca_ci);
488
0
  add_compiled_collation(&my_charset_utf16_persian_uca_ci);
489
0
  add_compiled_collation(&my_charset_utf16_esperanto_uca_ci);
490
0
  add_compiled_collation(&my_charset_utf16_hungarian_uca_ci);
491
0
  add_compiled_collation(&my_charset_utf16_croatian_mysql561_uca_ci);
492
0
  add_compiled_collation(&my_charset_utf16_sinhala_uca_ci);
493
0
  add_compiled_collation(&my_charset_utf16_unicode_520_ci);
494
0
  add_compiled_collation(&my_charset_utf16_vietnamese_ci);
495
0
  add_compiled_collation(&my_charset_utf16_croatian_uca_ci);
496
0
  add_compiled_collation(&my_charset_utf16_myanmar_uca_ci);
497
0
  add_compiled_collation(&my_charset_utf16_thai_520_w2);
498
0
  add_compiled_collation(&my_charset_utf16_unicode_nopad_ci);
499
0
  add_compiled_collation(&my_charset_utf16_unicode_520_nopad_ci);
500
0
#endif /* HAVE_UCA_COLLATIONS */
501
0
#endif /* HAVE_CHARSET_utf16 */
502
503
504
0
#ifdef HAVE_CHARSET_utf32
505
0
  add_compiled_collation(&my_charset_utf32_general_ci);
506
0
  add_compiled_collation(&my_charset_utf32_bin);
507
0
  add_compiled_collation(&my_charset_utf32_general_nopad_ci);
508
0
  add_compiled_collation(&my_charset_utf32_nopad_bin);
509
0
#ifdef HAVE_UCA_COLLATIONS
510
0
  add_compiled_collation(&my_charset_utf32_unicode_ci);
511
0
  add_compiled_collation(&my_charset_utf32_german2_uca_ci);
512
0
  add_compiled_collation(&my_charset_utf32_icelandic_uca_ci);
513
0
  add_compiled_collation(&my_charset_utf32_latvian_uca_ci);
514
0
  add_compiled_collation(&my_charset_utf32_romanian_uca_ci);
515
0
  add_compiled_collation(&my_charset_utf32_slovenian_uca_ci);
516
0
  add_compiled_collation(&my_charset_utf32_polish_uca_ci);
517
0
  add_compiled_collation(&my_charset_utf32_estonian_uca_ci);
518
0
  add_compiled_collation(&my_charset_utf32_spanish_uca_ci);
519
0
  add_compiled_collation(&my_charset_utf32_swedish_uca_ci);
520
0
  add_compiled_collation(&my_charset_utf32_turkish_uca_ci);
521
0
  add_compiled_collation(&my_charset_utf32_czech_uca_ci);
522
0
  add_compiled_collation(&my_charset_utf32_danish_uca_ci);
523
0
  add_compiled_collation(&my_charset_utf32_lithuanian_uca_ci);
524
0
  add_compiled_collation(&my_charset_utf32_slovak_uca_ci);
525
0
  add_compiled_collation(&my_charset_utf32_spanish2_uca_ci);
526
0
  add_compiled_collation(&my_charset_utf32_roman_uca_ci);
527
0
  add_compiled_collation(&my_charset_utf32_persian_uca_ci);
528
0
  add_compiled_collation(&my_charset_utf32_esperanto_uca_ci);
529
0
  add_compiled_collation(&my_charset_utf32_hungarian_uca_ci);
530
0
  add_compiled_collation(&my_charset_utf32_croatian_mysql561_uca_ci);
531
0
  add_compiled_collation(&my_charset_utf32_sinhala_uca_ci);
532
0
  add_compiled_collation(&my_charset_utf32_unicode_520_ci);
533
0
  add_compiled_collation(&my_charset_utf32_vietnamese_ci);
534
0
  add_compiled_collation(&my_charset_utf32_croatian_uca_ci);
535
0
  add_compiled_collation(&my_charset_utf32_myanmar_uca_ci);
536
0
  add_compiled_collation(&my_charset_utf32_thai_520_w2);
537
0
  add_compiled_collation(&my_charset_utf32_unicode_nopad_ci);
538
0
  add_compiled_collation(&my_charset_utf32_unicode_520_nopad_ci);
539
0
#endif /* HAVE_UCA_COLLATIONS */
540
0
#endif /* HAVE_CHARSET_utf32 */
541
542
  /* Copy compiled charsets */
543
0
  for (cs=compiled_charsets; cs->coll_name.str; cs++)
544
0
    add_compiled_extra_collation((struct charset_info_st *) cs);
545
546
0
  if (my_uca1400_collation_definitions_add())
547
0
    return TRUE;
548
  
549
0
  return FALSE;
550
0
}