]>
Commit | Line | Data |
---|---|---|
db82db79 AM |
1 | # MySQL bug#43593 dump/backup/restore/upgrade tools fails |
2 | # | |
3 | # The patch is intended to help to those users: | |
4 | # - Having indexes on columns with collations | |
5 | # utf8_general_ci or ucs2_general_ci | |
6 | # - Having German letter SHARP S (SZLIG) in these columns | |
7 | # - Upgrading from MySQL from versions 5.0.x or | |
8 | # 5.1.23 (and earlier) to version 5.1.24 (and higher). | |
9 | # | |
10 | # This patch introduces new collations utf8_general50_ci | |
11 | # and ucs2_general50_ci which reproduce the "old" | |
12 | # sorting order provided by pre-5.1.24 versions of xxx_general_ci. | |
13 | # | |
14 | # In order to start using new MySQL-5.1.24+ please do the following: | |
15 | # | |
16 | # - Start new version of mysqld | |
17 | # - Convert all affected tables using this query (in case of utf8): | |
18 | # | |
19 | # ALTER TABLE t1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general50_ci; | |
20 | # | |
21 | # Or if you need to apply changes per-column level, use this example: | |
22 | # | |
23 | # ALTER TABLE t1 MODIFY c1 CHAR(N) CHARACTER SET utf8 COLLATE utf8_general50_ci; | |
24 | # | |
25 | # (Make sure you're using the old data type and size, | |
26 | # NULL/NOT NULL constraints, etc). | |
27 | # | |
28 | === modified file 'mysys/charset-def.c' | |
29 | --- a/mysys/charset-def.c | |
30 | +++ b/mysys/charset-def.c | |
31 | @@ -22,6 +22,9 @@ | |
32 | init_compiled_charsets() that only adds those that he wants | |
33 | */ | |
34 | ||
35 | +extern CHARSET_INFO my_charset_ucs2_general50_ci; | |
36 | +extern CHARSET_INFO my_charset_utf8_general50_ci; | |
37 | + | |
38 | #ifdef HAVE_UCA_COLLATIONS | |
39 | ||
40 | #ifdef HAVE_CHARSET_ucs2 | |
543222d2 | 41 | @@ -205,6 +208,7 @@ |
db82db79 AM |
42 | add_compiled_collation(&my_charset_ucs2_general_ci); |
43 | add_compiled_collation(&my_charset_ucs2_bin); | |
543222d2 | 44 | add_compiled_collation(&my_charset_ucs2_general_mysql500_ci); |
db82db79 AM |
45 | + add_compiled_collation(&my_charset_ucs2_general50_ci); |
46 | #ifdef HAVE_UCA_COLLATIONS | |
47 | add_compiled_collation(&my_charset_ucs2_unicode_ci); | |
48 | add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci); | |
543222d2 | 49 | @@ -238,6 +242,7 @@ |
db82db79 AM |
50 | add_compiled_collation(&my_charset_utf8_general_ci); |
51 | add_compiled_collation(&my_charset_utf8_bin); | |
543222d2 | 52 | add_compiled_collation(&my_charset_utf8_general_mysql500_ci); |
db82db79 AM |
53 | + add_compiled_collation(&my_charset_utf8_general50_ci); |
54 | #ifdef HAVE_UTF8_GENERAL_CS | |
55 | add_compiled_collation(&my_charset_utf8_general_cs); | |
56 | #endif | |
57 | --- a/strings/ctype-ucs2.c | |
58 | +++ b/strings/ctype-ucs2.c | |
543222d2 | 59 | @@ -3188,6 +3188,42 @@ |
db82db79 AM |
60 | }; |
61 | ||
543222d2 | 62 | |
db82db79 AM |
63 | + |
64 | +extern MY_UNICASE_INFO *my_unicase_general50[256]; | |
65 | + | |
66 | +CHARSET_INFO my_charset_ucs2_general50_ci= | |
67 | +{ | |
68 | + 159,0,0, /* number */ | |
69 | + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, | |
70 | + "ucs2", /* cs name */ | |
71 | + "ucs2_general50_ci", /* name */ | |
72 | + "", /* comment */ | |
73 | + NULL, /* tailoring */ | |
74 | + ctype_ucs2, /* ctype */ | |
75 | + to_lower_ucs2, /* to_lower */ | |
76 | + to_upper_ucs2, /* to_upper */ | |
77 | + to_upper_ucs2, /* sort_order */ | |
78 | + NULL, /* contractions */ | |
79 | + NULL, /* sort_order_big*/ | |
80 | + NULL, /* tab_to_uni */ | |
81 | + NULL, /* tab_from_uni */ | |
82 | + my_unicase_general50, /* caseinfo */ | |
83 | + NULL, /* state_map */ | |
84 | + NULL, /* ident_map */ | |
85 | + 1, /* strxfrm_multiply */ | |
86 | + 1, /* caseup_multiply */ | |
87 | + 1, /* casedn_multiply */ | |
88 | + 2, /* mbminlen */ | |
89 | + 2, /* mbmaxlen */ | |
90 | + 0, /* min_sort_char */ | |
91 | + 0xFFFF, /* max_sort_char */ | |
92 | + ' ', /* pad char */ | |
93 | + 0, /* escape_with_backslash_is_dangerous */ | |
94 | + &my_charset_ucs2_handler, | |
95 | + &my_collation_ucs2_general_ci_handler | |
96 | +}; | |
97 | + | |
98 | + | |
99 | CHARSET_INFO my_charset_ucs2_bin= | |
100 | { | |
101 | 90,0,0, /* number */ | |
102 | --- a/strings/ctype-utf8.c | |
103 | +++ b/strings/ctype-utf8.c | |
543222d2 AM |
104 | @@ -192,6 +192,138 @@ |
105 | {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} | |
db82db79 AM |
106 | }; |
107 | ||
db82db79 AM |
108 | +static MY_UNICASE_INFO plane00_general50[]={ |
109 | + {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, | |
110 | + {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, | |
111 | + {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, | |
112 | + {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, | |
113 | + {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, | |
114 | + {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, | |
115 | + {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, | |
116 | + {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, | |
117 | + {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, | |
118 | + {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, | |
119 | + {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, | |
120 | + {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, | |
121 | + {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, | |
122 | + {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, | |
123 | + {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, | |
124 | + {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, | |
125 | + {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, | |
126 | + {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, | |
127 | + {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, | |
128 | + {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, | |
129 | + {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, | |
130 | + {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, | |
131 | + {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, | |
132 | + {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, | |
133 | + {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, | |
134 | + {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, | |
135 | + {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, | |
136 | + {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, | |
137 | + {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, | |
138 | + {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, | |
139 | + {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, | |
140 | + {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, | |
141 | + {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, | |
142 | + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, | |
143 | + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, | |
144 | + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, | |
145 | + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, | |
146 | + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, | |
147 | + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, | |
148 | + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, | |
149 | + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, | |
150 | + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, | |
151 | + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, | |
152 | + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, | |
153 | + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, | |
154 | + {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, | |
155 | + {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, | |
156 | + {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, | |
157 | + {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, | |
158 | + {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, | |
159 | + {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, | |
160 | + {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, | |
161 | + {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, | |
162 | + {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, | |
163 | + {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, | |
164 | + {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, | |
165 | + {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, | |
166 | + {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, | |
167 | + {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, | |
168 | + {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, | |
169 | + {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, | |
170 | + {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, | |
171 | + {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, | |
172 | + {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, | |
173 | + {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, | |
174 | + {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, | |
175 | + {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, | |
176 | + {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, | |
177 | + {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, | |
178 | + {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, | |
179 | + {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, | |
180 | + {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, | |
181 | + {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, | |
182 | + {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, | |
183 | + {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, | |
184 | + {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, | |
185 | + {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, | |
186 | + {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, | |
187 | + {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, | |
188 | + {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, | |
189 | + {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, | |
190 | + {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, | |
191 | + {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, | |
192 | + {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, | |
193 | + {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, | |
194 | + {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, | |
195 | + {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, | |
196 | + {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, | |
197 | + {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, | |
198 | + {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, | |
199 | + {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, | |
200 | + {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, | |
201 | + {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, | |
202 | + {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, | |
203 | + {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, | |
204 | + {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, | |
205 | + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, | |
206 | + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, | |
207 | + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, | |
208 | + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, | |
209 | + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, | |
210 | + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, | |
211 | + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, | |
212 | + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, | |
213 | + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, | |
214 | + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, | |
215 | + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, | |
216 | + {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, | |
217 | + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, | |
218 | + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, | |
219 | + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, | |
220 | + {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF}, | |
221 | + {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, | |
222 | + {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, | |
223 | + {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, | |
224 | + {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, | |
225 | + {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, | |
226 | + {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, | |
227 | + {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, | |
228 | + {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, | |
229 | + {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, | |
230 | + {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, | |
231 | + {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, | |
232 | + {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, | |
233 | + {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, | |
234 | + {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, | |
235 | + {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, | |
236 | + {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} | |
237 | +}; | |
238 | + | |
239 | + | |
240 | ||
543222d2 AM |
241 | /* |
242 | Almost similar to plane00, but maps sorting order | |
243 | @@ -1718,6 +1850,48 @@ | |
db82db79 AM |
244 | |
245 | ||
246 | /* | |
247 | + general50: to reproduce old utf8_general_ci behaviour | |
248 | + before we fixed Bug#27877. | |
249 | +*/ | |
250 | +MY_UNICASE_INFO *my_unicase_general50[256]={ | |
251 | + plane00_general50, | |
252 | + plane01, plane02, plane03, plane04, plane05, NULL, NULL, | |
253 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
254 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
255 | + NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F, | |
256 | + NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL, | |
257 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
258 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
259 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
260 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
261 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
262 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
263 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
264 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
265 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
266 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
267 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
268 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
269 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
270 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
271 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
272 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
273 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
274 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
275 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
276 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
277 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
278 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
279 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
280 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
281 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
282 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, | |
283 | + NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF | |
284 | + | |
285 | +}; | |
286 | + | |
287 | + | |
288 | +/* | |
289 | Turkish lower/upper mapping: | |
290 | 1. LOWER(0x0049 LATIN CAPITAL LETTER I) -> | |
291 | 0x0131 LATIN SMALL LETTER DOTLESS I | |
543222d2 | 292 | @@ -3023,6 +3197,39 @@ |
db82db79 AM |
293 | }; |
294 | ||
295 | ||
296 | +CHARSET_INFO my_charset_utf8_general50_ci= | |
297 | +{ | |
298 | + 253,0,0, /* number */ | |
299 | + MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ | |
300 | + "utf8", /* cs name */ | |
301 | + "utf8_general50_ci", /* name */ | |
302 | + "", /* comment */ | |
303 | + NULL, /* tailoring */ | |
304 | + ctype_utf8, /* ctype */ | |
305 | + to_lower_utf8, /* to_lower */ | |
306 | + to_upper_utf8, /* to_upper */ | |
307 | + to_upper_utf8, /* sort_order */ | |
308 | + NULL, /* contractions */ | |
309 | + NULL, /* sort_order_big*/ | |
310 | + NULL, /* tab_to_uni */ | |
311 | + NULL, /* tab_from_uni */ | |
312 | + my_unicase_general50, /* caseinfo */ | |
313 | + NULL, /* state_map */ | |
314 | + NULL, /* ident_map */ | |
315 | + 1, /* strxfrm_multiply */ | |
316 | + 1, /* caseup_multiply */ | |
317 | + 1, /* casedn_multiply */ | |
318 | + 1, /* mbminlen */ | |
319 | + 3, /* mbmaxlen */ | |
320 | + 0, /* min_sort_char */ | |
321 | + 0xFFFF, /* max_sort_char */ | |
322 | + ' ', /* pad char */ | |
323 | + 0, /* escape_with_backslash_is_dangerous */ | |
324 | + &my_charset_utf8_handler, | |
325 | + &my_collation_ci_handler | |
326 | +}; | |
327 | + | |
328 | + | |
329 | CHARSET_INFO my_charset_utf8_bin= | |
330 | { | |
331 | 83,0,0, /* number */ | |
332 | --- /dev/null | |
333 | +++ b/mysql-test/t/percona_ucs2_general50_ci.test | |
334 | @@ -0,0 +1,12 @@ | |
335 | +# | |
336 | +# Test that ucs2_general50_ci provides pre-5.1.24 utf8_general_ci behavior, | |
337 | +# i.e. SHARP S is only equal to itself. | |
338 | +# | |
339 | + | |
340 | +--source include/have_ucs2.inc | |
341 | + | |
342 | +SET NAMES latin1; | |
343 | + | |
344 | +SET collation_connection='ucs2_general50_ci'; | |
345 | + | |
346 | +--source include/ctype_german.inc | |
347 | --- /dev/null | |
348 | +++ b/mysql-test/t/percona_utf8_general50_ci.test | |
349 | @@ -0,0 +1,9 @@ | |
350 | +# | |
351 | +# Test that utf8_general50_ci provides pre-5.1.24 utf8_general_ci behavior, | |
352 | +# i.e. SHARP S is only equal to itself. | |
353 | +# | |
354 | + | |
355 | +SET NAMES utf8; | |
356 | + | |
357 | +SET collation_connection='utf8_general50_ci'; | |
358 | +--source include/ctype_german.inc | |
359 | --- /dev/null | |
360 | +++ b/mysql-test/r/percona_utf8_general50_ci.result | |
361 | @@ -0,0 +1,38 @@ | |
362 | +SET NAMES utf8; | |
363 | +SET collation_connection='utf8_general50_ci'; | |
364 | +drop table if exists t1; | |
365 | +create table t1 as select repeat(' ', 64) as s1; | |
366 | +select collation(s1) from t1; | |
367 | +collation(s1) | |
368 | +utf8_general50_ci | |
369 | +delete from t1; | |
370 | +insert into t1 values ('a'),('ae'),(_latin1 0xE4); | |
371 | +insert into t1 values ('o'),('oe'),(_latin1 0xF6); | |
372 | +insert into t1 values ('s'),('ss'),(_latin1 0xDF); | |
373 | +insert into t1 values ('u'),('ue'),(_latin1 0xFC); | |
374 | +select s1, hex(s1) from t1 order by s1, binary s1; | |
375 | +s1 hex(s1) | |
376 | +a 61 | |
377 | +ä C3A4 | |
378 | +ae 6165 | |
379 | +o 6F | |
380 | +ö C3B6 | |
381 | +oe 6F65 | |
382 | +s 73 | |
383 | +ss 7373 | |
384 | +u 75 | |
385 | +ü C3BC | |
386 | +ue 7565 | |
387 | +ß C39F | |
388 | +select group_concat(s1 order by binary s1) from t1 group by s1; | |
389 | +group_concat(s1 order by binary s1) | |
390 | +a,ä | |
391 | +ae | |
392 | +o,ö | |
393 | +oe | |
394 | +s | |
395 | +ss | |
396 | +u,ü | |
397 | +ue | |
398 | +ß | |
399 | +drop table t1; | |
543222d2 | 400 | Binary files /dev/null and b/mysql-test/r/percona_ucs2_general50_ci.result differ |