Merge lp:~akopytov/percona-server/utf8_general50_ci-5.1 into lp:percona-server/5.1
- utf8_general50_ci-5.1
- Merge into 5.1
Proposed by
Alexey Kopytov
Status: | Merged |
---|---|
Approved by: | Stewart Smith |
Approved revision: | no longer in the source branch. |
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 |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Review via email: mp+67426@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
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; |
is this a copying ALTER TABLE? Could we do it not being a copying ALTER?