Coverage Report

Created: 2025-06-13 07:09

/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
my_bool init_compiled_charsets(myf flags __attribute__((unused)))
188
0
{
189
0
  CHARSET_INFO *cs;
190
0
  MY_CHARSET_LOADER loader;
191
192
0
  add_compiled_collation(&my_charset_bin);
193
0
  add_compiled_collation(&my_charset_filename);
194
  
195
0
  add_compiled_collation(&my_charset_latin1);
196
0
  add_compiled_collation(&my_charset_latin1_nopad);
197
0
  add_compiled_collation(&my_charset_latin1_bin);
198
0
  add_compiled_collation(&my_charset_latin1_nopad_bin);
199
0
  add_compiled_collation(&my_charset_latin1_german2_ci);
200
201
0
#ifdef HAVE_CHARSET_big5
202
0
  add_compiled_collation(&my_charset_big5_chinese_ci);
203
0
  add_compiled_collation(&my_charset_big5_bin);
204
0
  add_compiled_collation(&my_charset_big5_chinese_nopad_ci);
205
0
  add_compiled_collation(&my_charset_big5_nopad_bin);
206
0
#endif
207
208
0
#ifdef HAVE_CHARSET_cp1250
209
0
  add_compiled_collation(&my_charset_cp1250_czech_cs);
210
0
#endif
211
212
0
#ifdef HAVE_CHARSET_cp932
213
0
  add_compiled_collation(&my_charset_cp932_japanese_ci);
214
0
  add_compiled_collation(&my_charset_cp932_bin);
215
0
  add_compiled_collation(&my_charset_cp932_japanese_nopad_ci);
216
0
  add_compiled_collation(&my_charset_cp932_nopad_bin);
217
0
#endif
218
219
0
#ifdef HAVE_CHARSET_latin2
220
0
  add_compiled_collation(&my_charset_latin2_czech_cs);
221
0
#endif
222
223
0
#ifdef HAVE_CHARSET_eucjpms
224
0
  add_compiled_collation(&my_charset_eucjpms_japanese_ci);
225
0
  add_compiled_collation(&my_charset_eucjpms_bin);
226
0
  add_compiled_collation(&my_charset_eucjpms_japanese_nopad_ci);
227
0
  add_compiled_collation(&my_charset_eucjpms_nopad_bin);
228
0
#endif
229
230
0
#ifdef HAVE_CHARSET_euckr
231
0
  add_compiled_collation(&my_charset_euckr_korean_ci);
232
0
  add_compiled_collation(&my_charset_euckr_bin);
233
0
  add_compiled_collation(&my_charset_euckr_korean_nopad_ci);
234
0
  add_compiled_collation(&my_charset_euckr_nopad_bin);
235
0
#endif
236
237
0
#ifdef HAVE_CHARSET_gb2312
238
0
  add_compiled_collation(&my_charset_gb2312_chinese_ci);
239
0
  add_compiled_collation(&my_charset_gb2312_bin);
240
0
  add_compiled_collation(&my_charset_gb2312_chinese_nopad_ci);
241
0
  add_compiled_collation(&my_charset_gb2312_nopad_bin);
242
0
#endif
243
244
0
#ifdef HAVE_CHARSET_gbk
245
0
  add_compiled_collation(&my_charset_gbk_chinese_ci);
246
0
  add_compiled_collation(&my_charset_gbk_bin);
247
0
  add_compiled_collation(&my_charset_gbk_chinese_nopad_ci);
248
0
  add_compiled_collation(&my_charset_gbk_nopad_bin);
249
0
#endif
250
251
0
#ifdef HAVE_CHARSET_sjis
252
0
  add_compiled_collation(&my_charset_sjis_japanese_ci);
253
0
  add_compiled_collation(&my_charset_sjis_bin);
254
0
  add_compiled_collation(&my_charset_sjis_japanese_nopad_ci);
255
0
  add_compiled_collation(&my_charset_sjis_nopad_bin);
256
0
#endif
257
258
0
#ifdef HAVE_CHARSET_tis620
259
0
  add_compiled_collation(&my_charset_tis620_thai_ci);
260
0
  add_compiled_collation(&my_charset_tis620_bin);
261
0
  add_compiled_collation(&my_charset_tis620_thai_nopad_ci);
262
0
  add_compiled_collation(&my_charset_tis620_nopad_bin);
263
0
#endif
264
265
0
#ifdef HAVE_CHARSET_ucs2
266
0
  add_compiled_collation(&my_charset_ucs2_general_ci);
267
0
  add_compiled_collation(&my_charset_ucs2_bin);
268
0
  add_compiled_collation(&my_charset_ucs2_general_nopad_ci);
269
0
  add_compiled_collation(&my_charset_ucs2_nopad_bin);
270
0
  add_compiled_collation(&my_charset_ucs2_general_mysql500_ci);
271
0
#ifdef HAVE_UCA_COLLATIONS
272
0
  add_compiled_collation(&my_charset_ucs2_unicode_ci);
273
0
  add_compiled_collation(&my_charset_ucs2_german2_uca_ci);
274
0
  add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
275
0
  add_compiled_collation(&my_charset_ucs2_latvian_uca_ci);
276
0
  add_compiled_collation(&my_charset_ucs2_romanian_uca_ci);
277
0
  add_compiled_collation(&my_charset_ucs2_slovenian_uca_ci);
278
0
  add_compiled_collation(&my_charset_ucs2_polish_uca_ci);
279
0
  add_compiled_collation(&my_charset_ucs2_estonian_uca_ci);
280
0
  add_compiled_collation(&my_charset_ucs2_spanish_uca_ci);
281
0
  add_compiled_collation(&my_charset_ucs2_swedish_uca_ci);
282
0
  add_compiled_collation(&my_charset_ucs2_turkish_uca_ci);
283
0
  add_compiled_collation(&my_charset_ucs2_czech_uca_ci);
284
0
  add_compiled_collation(&my_charset_ucs2_danish_uca_ci);
285
0
  add_compiled_collation(&my_charset_ucs2_lithuanian_uca_ci);
286
0
  add_compiled_collation(&my_charset_ucs2_slovak_uca_ci);
287
0
  add_compiled_collation(&my_charset_ucs2_spanish2_uca_ci);
288
0
  add_compiled_collation(&my_charset_ucs2_roman_uca_ci);
289
0
  add_compiled_collation(&my_charset_ucs2_persian_uca_ci);
290
0
  add_compiled_collation(&my_charset_ucs2_esperanto_uca_ci);
291
0
  add_compiled_collation(&my_charset_ucs2_hungarian_uca_ci);
292
0
  add_compiled_collation(&my_charset_ucs2_croatian_mysql561_uca_ci);
293
0
  add_compiled_collation(&my_charset_ucs2_sinhala_uca_ci);
294
0
  add_compiled_collation(&my_charset_ucs2_unicode_520_ci);
295
0
  add_compiled_collation(&my_charset_ucs2_vietnamese_ci);
296
0
  add_compiled_collation(&my_charset_ucs2_croatian_uca_ci);
297
0
  add_compiled_collation(&my_charset_ucs2_myanmar_uca_ci);
298
0
  add_compiled_collation(&my_charset_ucs2_thai_520_w2);
299
0
  add_compiled_collation(&my_charset_ucs2_unicode_nopad_ci);
300
0
  add_compiled_collation(&my_charset_ucs2_unicode_520_nopad_ci);
301
0
#endif
302
0
#endif
303
304
0
#ifdef HAVE_CHARSET_ujis
305
0
  add_compiled_collation(&my_charset_ujis_japanese_ci);
306
0
  add_compiled_collation(&my_charset_ujis_bin);
307
0
  add_compiled_collation(&my_charset_ujis_japanese_nopad_ci);
308
0
  add_compiled_collation(&my_charset_ujis_nopad_bin);
309
0
#endif
310
311
0
#ifdef HAVE_CHARSET_utf8mb3
312
0
  add_compiled_collation(&my_charset_utf8mb3_general_ci);
313
0
  add_compiled_collation(&my_charset_utf8mb3_general_nopad_ci);
314
0
  add_compiled_collation(&my_charset_utf8mb3_general1400_as_ci);
315
0
  add_compiled_collation(&my_charset_utf8mb3_bin);
316
0
  add_compiled_collation(&my_charset_utf8mb3_nopad_bin);
317
0
  add_compiled_collation(&my_charset_utf8mb3_general_mysql500_ci);
318
#ifdef HAVE_UTF8_GENERAL_CS
319
  add_compiled_collation(&my_charset_utf8mb3_general_cs);
320
#endif
321
0
#ifdef HAVE_UCA_COLLATIONS
322
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_ci);
323
0
  add_compiled_collation(&my_charset_utf8mb3_german2_uca_ci);
324
0
  add_compiled_collation(&my_charset_utf8mb3_icelandic_uca_ci);
325
0
  add_compiled_collation(&my_charset_utf8mb3_latvian_uca_ci);
326
0
  add_compiled_collation(&my_charset_utf8mb3_romanian_uca_ci);
327
0
  add_compiled_collation(&my_charset_utf8mb3_slovenian_uca_ci);
328
0
  add_compiled_collation(&my_charset_utf8mb3_polish_uca_ci);
329
0
  add_compiled_collation(&my_charset_utf8mb3_estonian_uca_ci);
330
0
  add_compiled_collation(&my_charset_utf8mb3_spanish_uca_ci);
331
0
  add_compiled_collation(&my_charset_utf8mb3_swedish_uca_ci);
332
0
  add_compiled_collation(&my_charset_utf8mb3_turkish_uca_ci);
333
0
  add_compiled_collation(&my_charset_utf8mb3_czech_uca_ci);
334
0
  add_compiled_collation(&my_charset_utf8mb3_danish_uca_ci);
335
0
  add_compiled_collation(&my_charset_utf8mb3_lithuanian_uca_ci);
336
0
  add_compiled_collation(&my_charset_utf8mb3_slovak_uca_ci);
337
0
  add_compiled_collation(&my_charset_utf8mb3_spanish2_uca_ci);
338
0
  add_compiled_collation(&my_charset_utf8mb3_roman_uca_ci);
339
0
  add_compiled_collation(&my_charset_utf8mb3_persian_uca_ci);
340
0
  add_compiled_collation(&my_charset_utf8mb3_esperanto_uca_ci);
341
0
  add_compiled_collation(&my_charset_utf8mb3_hungarian_uca_ci);
342
0
  add_compiled_collation(&my_charset_utf8mb3_croatian_mysql561_uca_ci);
343
0
  add_compiled_collation(&my_charset_utf8mb3_sinhala_uca_ci);
344
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_520_ci);
345
0
  add_compiled_collation(&my_charset_utf8mb3_vietnamese_ci);
346
0
  add_compiled_collation(&my_charset_utf8mb3_croatian_uca_ci);
347
0
  add_compiled_collation(&my_charset_utf8mb3_myanmar_uca_ci);
348
0
  add_compiled_collation(&my_charset_utf8mb3_thai_520_w2);
349
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_nopad_ci);
350
0
  add_compiled_collation(&my_charset_utf8mb3_unicode_520_nopad_ci);
351
0
#endif
352
0
#endif /* HAVE_CHARSET_utf8mb3 */
353
354
355
0
#ifdef HAVE_CHARSET_utf8mb4
356
0
  add_compiled_collation(&my_charset_utf8mb4_general_ci);
357
0
  add_compiled_collation(&my_charset_utf8mb4_bin);
358
0
  add_compiled_collation(&my_charset_utf8mb4_general_nopad_ci);
359
0
  add_compiled_collation(&my_charset_utf8mb4_nopad_bin);
360
0
  add_compiled_collation(&my_charset_utf8mb4_general1400_as_ci);
361
0
#ifdef HAVE_UCA_COLLATIONS
362
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_ci);
363
0
  add_compiled_collation(&my_charset_utf8mb4_german2_uca_ci);
364
0
  add_compiled_collation(&my_charset_utf8mb4_icelandic_uca_ci);
365
0
  add_compiled_collation(&my_charset_utf8mb4_latvian_uca_ci);
366
0
  add_compiled_collation(&my_charset_utf8mb4_romanian_uca_ci);
367
0
  add_compiled_collation(&my_charset_utf8mb4_slovenian_uca_ci);
368
0
  add_compiled_collation(&my_charset_utf8mb4_polish_uca_ci);
369
0
  add_compiled_collation(&my_charset_utf8mb4_estonian_uca_ci);
370
0
  add_compiled_collation(&my_charset_utf8mb4_spanish_uca_ci);
371
0
  add_compiled_collation(&my_charset_utf8mb4_swedish_uca_ci);
372
0
  add_compiled_collation(&my_charset_utf8mb4_turkish_uca_ci);
373
0
  add_compiled_collation(&my_charset_utf8mb4_czech_uca_ci);
374
0
  add_compiled_collation(&my_charset_utf8mb4_danish_uca_ci);
375
0
  add_compiled_collation(&my_charset_utf8mb4_lithuanian_uca_ci);
376
0
  add_compiled_collation(&my_charset_utf8mb4_slovak_uca_ci);
377
0
  add_compiled_collation(&my_charset_utf8mb4_spanish2_uca_ci);
378
0
  add_compiled_collation(&my_charset_utf8mb4_roman_uca_ci);
379
0
  add_compiled_collation(&my_charset_utf8mb4_persian_uca_ci);
380
0
  add_compiled_collation(&my_charset_utf8mb4_esperanto_uca_ci);
381
0
  add_compiled_collation(&my_charset_utf8mb4_hungarian_uca_ci);
382
0
  add_compiled_collation(&my_charset_utf8mb4_croatian_mysql561_uca_ci);
383
0
  add_compiled_collation(&my_charset_utf8mb4_sinhala_uca_ci);
384
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_520_ci);
385
0
  add_compiled_collation(&my_charset_utf8mb4_vietnamese_ci);
386
0
  add_compiled_collation(&my_charset_utf8mb4_croatian_uca_ci);
387
0
  add_compiled_collation(&my_charset_utf8mb4_myanmar_uca_ci);
388
0
  add_compiled_collation(&my_charset_utf8mb4_thai_520_w2);
389
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_nopad_ci);
390
0
  add_compiled_collation(&my_charset_utf8mb4_unicode_520_nopad_ci);
391
0
#endif /* HAVE_UCA_COLLATIONS  */
392
0
#endif /* HAVE_CHARSET_utf8mb4 */
393
394
395
0
#ifdef HAVE_CHARSET_utf16
396
0
  add_compiled_collation(&my_charset_utf16_general_ci);
397
0
  add_compiled_collation(&my_charset_utf16_bin);
398
0
  add_compiled_collation(&my_charset_utf16le_general_ci);
399
0
  add_compiled_collation(&my_charset_utf16le_bin);
400
0
  add_compiled_collation(&my_charset_utf16_general_nopad_ci);
401
0
  add_compiled_collation(&my_charset_utf16_nopad_bin);
402
0
  add_compiled_collation(&my_charset_utf16le_general_nopad_ci);
403
0
  add_compiled_collation(&my_charset_utf16le_nopad_bin);
404
0
#ifdef HAVE_UCA_COLLATIONS
405
0
  add_compiled_collation(&my_charset_utf16_unicode_ci);
406
0
  add_compiled_collation(&my_charset_utf16_german2_uca_ci);
407
0
  add_compiled_collation(&my_charset_utf16_icelandic_uca_ci);
408
0
  add_compiled_collation(&my_charset_utf16_latvian_uca_ci);
409
0
  add_compiled_collation(&my_charset_utf16_romanian_uca_ci);
410
0
  add_compiled_collation(&my_charset_utf16_slovenian_uca_ci);
411
0
  add_compiled_collation(&my_charset_utf16_polish_uca_ci);
412
0
  add_compiled_collation(&my_charset_utf16_estonian_uca_ci);
413
0
  add_compiled_collation(&my_charset_utf16_spanish_uca_ci);
414
0
  add_compiled_collation(&my_charset_utf16_swedish_uca_ci);
415
0
  add_compiled_collation(&my_charset_utf16_turkish_uca_ci);
416
0
  add_compiled_collation(&my_charset_utf16_czech_uca_ci);
417
0
  add_compiled_collation(&my_charset_utf16_danish_uca_ci);
418
0
  add_compiled_collation(&my_charset_utf16_lithuanian_uca_ci);
419
0
  add_compiled_collation(&my_charset_utf16_slovak_uca_ci);
420
0
  add_compiled_collation(&my_charset_utf16_spanish2_uca_ci);
421
0
  add_compiled_collation(&my_charset_utf16_roman_uca_ci);
422
0
  add_compiled_collation(&my_charset_utf16_persian_uca_ci);
423
0
  add_compiled_collation(&my_charset_utf16_esperanto_uca_ci);
424
0
  add_compiled_collation(&my_charset_utf16_hungarian_uca_ci);
425
0
  add_compiled_collation(&my_charset_utf16_croatian_mysql561_uca_ci);
426
0
  add_compiled_collation(&my_charset_utf16_sinhala_uca_ci);
427
0
  add_compiled_collation(&my_charset_utf16_unicode_520_ci);
428
0
  add_compiled_collation(&my_charset_utf16_vietnamese_ci);
429
0
  add_compiled_collation(&my_charset_utf16_croatian_uca_ci);
430
0
  add_compiled_collation(&my_charset_utf16_myanmar_uca_ci);
431
0
  add_compiled_collation(&my_charset_utf16_thai_520_w2);
432
0
  add_compiled_collation(&my_charset_utf16_unicode_nopad_ci);
433
0
  add_compiled_collation(&my_charset_utf16_unicode_520_nopad_ci);
434
0
#endif /* HAVE_UCA_COLLATIONS */
435
0
#endif /* HAVE_CHARSET_utf16 */
436
437
438
0
#ifdef HAVE_CHARSET_utf32
439
0
  add_compiled_collation(&my_charset_utf32_general_ci);
440
0
  add_compiled_collation(&my_charset_utf32_bin);
441
0
  add_compiled_collation(&my_charset_utf32_general_nopad_ci);
442
0
  add_compiled_collation(&my_charset_utf32_nopad_bin);
443
0
#ifdef HAVE_UCA_COLLATIONS
444
0
  add_compiled_collation(&my_charset_utf32_unicode_ci);
445
0
  add_compiled_collation(&my_charset_utf32_german2_uca_ci);
446
0
  add_compiled_collation(&my_charset_utf32_icelandic_uca_ci);
447
0
  add_compiled_collation(&my_charset_utf32_latvian_uca_ci);
448
0
  add_compiled_collation(&my_charset_utf32_romanian_uca_ci);
449
0
  add_compiled_collation(&my_charset_utf32_slovenian_uca_ci);
450
0
  add_compiled_collation(&my_charset_utf32_polish_uca_ci);
451
0
  add_compiled_collation(&my_charset_utf32_estonian_uca_ci);
452
0
  add_compiled_collation(&my_charset_utf32_spanish_uca_ci);
453
0
  add_compiled_collation(&my_charset_utf32_swedish_uca_ci);
454
0
  add_compiled_collation(&my_charset_utf32_turkish_uca_ci);
455
0
  add_compiled_collation(&my_charset_utf32_czech_uca_ci);
456
0
  add_compiled_collation(&my_charset_utf32_danish_uca_ci);
457
0
  add_compiled_collation(&my_charset_utf32_lithuanian_uca_ci);
458
0
  add_compiled_collation(&my_charset_utf32_slovak_uca_ci);
459
0
  add_compiled_collation(&my_charset_utf32_spanish2_uca_ci);
460
0
  add_compiled_collation(&my_charset_utf32_roman_uca_ci);
461
0
  add_compiled_collation(&my_charset_utf32_persian_uca_ci);
462
0
  add_compiled_collation(&my_charset_utf32_esperanto_uca_ci);
463
0
  add_compiled_collation(&my_charset_utf32_hungarian_uca_ci);
464
0
  add_compiled_collation(&my_charset_utf32_croatian_mysql561_uca_ci);
465
0
  add_compiled_collation(&my_charset_utf32_sinhala_uca_ci);
466
0
  add_compiled_collation(&my_charset_utf32_unicode_520_ci);
467
0
  add_compiled_collation(&my_charset_utf32_vietnamese_ci);
468
0
  add_compiled_collation(&my_charset_utf32_croatian_uca_ci);
469
0
  add_compiled_collation(&my_charset_utf32_myanmar_uca_ci);
470
0
  add_compiled_collation(&my_charset_utf32_thai_520_w2);
471
0
  add_compiled_collation(&my_charset_utf32_unicode_nopad_ci);
472
0
  add_compiled_collation(&my_charset_utf32_unicode_520_nopad_ci);
473
0
#endif /* HAVE_UCA_COLLATIONS */
474
0
#endif /* HAVE_CHARSET_utf32 */
475
476
  /* Copy compiled charsets */
477
0
  for (cs=compiled_charsets; cs->coll_name.str; cs++)
478
0
    add_compiled_extra_collation((struct charset_info_st *) cs);
479
480
  /*
481
    my_charset_loader_init_mysys() initializes
482
    MY_CHARSET_LOADER::add_collation to the function
483
    add_collation() defined in charset.c
484
    Let's reset it to add_compiled_collation().
485
  */
486
0
  my_charset_loader_init_mysys(&loader);
487
0
  loader.add_collation= add_compiled_collation;
488
489
0
  if (my_uca1400_collation_definitions_add(&loader))
490
0
    return TRUE;
491
492
0
  if (mysql_uca0900_utf8mb4_collation_definitions_add(&loader))
493
0
    return TRUE;
494
495
0
  if (mysql_utf8mb4_0900_bin_add(&loader))
496
0
    return TRUE;
497
498
0
  return FALSE;
499
0
}