Merge lp:~akopytov/percona-server/utf8_general50_ci-5.1 into lp:percona-server/5.1

Proposed by Alexey Kopytov on 2011-07-09
Status: Merged
Approved by: Stewart Smith on 2011-07-10
Approved revision: 253
Merged at revision: 253
Proposed branch: lp:~akopytov/percona-server/utf8_general50_ci-5.1
Merge into: lp:percona-server/5.1
Diff against target: 460 lines (+448/-0)
2 files modified
series (+1/-0)
utf8_general50_ci.patch (+447/-0)
To merge this branch: bzr merge lp:~akopytov/percona-server/utf8_general50_ci-5.1
Reviewer Review Type Date Requested Status
Stewart Smith (community) 2011-07-09 Approve on 2011-07-10
Review via email: mp+67426@code.launchpad.net
To post a comment you must log in.
Stewart Smith (stewart) wrote :

is this a copying ALTER TABLE? Could we do it not being a copying ALTER?

review: Approve

Preview Diff

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

Subscribers

People subscribed via source and target branches