~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/r/ctype_utf8.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop table if exists t1,t2;
 
2
set names utf8;
 
3
select left(_utf8 0xD0B0D0B1D0B2,1);
 
4
left(_utf8 0xD0B0D0B1D0B2,1)
 
5
а
 
6
select right(_utf8 0xD0B0D0B2D0B2,1);
 
7
right(_utf8 0xD0B0D0B2D0B2,1)
 
8
в
 
9
select locate('he','hello');
 
10
locate('he','hello')
 
11
1
 
12
select locate('he','hello',2);
 
13
locate('he','hello',2)
 
14
0
 
15
select locate('lo','hello',2);
 
16
locate('lo','hello',2)
 
17
4
 
18
select locate('HE','hello');
 
19
locate('HE','hello')
 
20
1
 
21
select locate('HE','hello',2);
 
22
locate('HE','hello',2)
 
23
0
 
24
select locate('LO','hello',2);
 
25
locate('LO','hello',2)
 
26
4
 
27
select locate('HE','hello' collate utf8_bin);
 
28
locate('HE','hello' collate utf8_bin)
 
29
0
 
30
select locate('HE','hello' collate utf8_bin,2);
 
31
locate('HE','hello' collate utf8_bin,2)
 
32
0
 
33
select locate('LO','hello' collate utf8_bin,2);
 
34
locate('LO','hello' collate utf8_bin,2)
 
35
0
 
36
select locate(_utf8 0xD0B1, _utf8 0xD0B0D0B1D0B2);
 
37
locate(_utf8 0xD0B1, _utf8 0xD0B0D0B1D0B2)
 
38
2
 
39
select locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2);
 
40
locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2)
 
41
2
 
42
select locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2);
 
43
locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2)
 
44
2
 
45
select locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2 collate utf8_bin);
 
46
locate(_utf8 0xD091, _utf8 0xD0B0D0B1D0B2 collate utf8_bin)
 
47
0
 
48
select locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2 collate utf8_bin);
 
49
locate(_utf8 0xD0B1, _utf8 0xD0B0D091D0B2 collate utf8_bin)
 
50
0
 
51
select length(_utf8 0xD0B1), bit_length(_utf8 0xD0B1), char_length(_utf8 0xD0B1);
 
52
length(_utf8 0xD0B1)    bit_length(_utf8 0xD0B1)        char_length(_utf8 0xD0B1)
 
53
2       16      1
 
54
select 'a' like 'a';
 
55
'a' like 'a'
 
56
1
 
57
select 'A' like 'a';
 
58
'A' like 'a'
 
59
1
 
60
select 'A' like 'a' collate utf8_bin;
 
61
'A' like 'a' collate utf8_bin
 
62
0
 
63
select _utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%');
 
64
_utf8 0xD0B0D0B1D0B2 like concat(_utf8'%',_utf8 0xD0B1,_utf8 '%')
 
65
1
 
66
select convert(_latin1'G�nter Andr�' using utf8) like CONVERT(_latin1'G�NTER%' USING utf8);
 
67
convert(_latin1'G�nter Andr�' using utf8) like CONVERT(_latin1'G�NTER%' USING utf8)
 
68
1
 
69
select CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8);
 
70
CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8)
 
71
1
 
72
select CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8);
 
73
CONVERT(_koi8r'����' USING utf8) LIKE CONVERT(_koi8r'����' USING utf8)
 
74
1
 
75
SELECT 'a' = 'a ';
 
76
'a' = 'a '
 
77
1
 
78
SELECT 'a\0' < 'a';
 
79
'a\0' < 'a'
 
80
1
 
81
SELECT 'a\0' < 'a ';
 
82
'a\0' < 'a '
 
83
1
 
84
SELECT 'a\t' < 'a';
 
85
'a\t' < 'a'
 
86
1
 
87
SELECT 'a\t' < 'a ';
 
88
'a\t' < 'a '
 
89
1
 
90
SELECT 'a' = 'a ' collate utf8_bin;
 
91
'a' = 'a ' collate utf8_bin
 
92
1
 
93
SELECT 'a\0' < 'a' collate utf8_bin;
 
94
'a\0' < 'a' collate utf8_bin
 
95
1
 
96
SELECT 'a\0' < 'a ' collate utf8_bin;
 
97
'a\0' < 'a ' collate utf8_bin
 
98
1
 
99
SELECT 'a\t' < 'a' collate utf8_bin;
 
100
'a\t' < 'a' collate utf8_bin
 
101
1
 
102
SELECT 'a\t' < 'a ' collate utf8_bin;
 
103
'a\t' < 'a ' collate utf8_bin
 
104
1
 
105
CREATE TABLE t1 (a char(10) character set utf8 not null);
 
106
INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
 
107
SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
 
108
hex(a)  STRCMP(a,'a')   STRCMP(a,'a ')
 
109
61      0       0
 
110
6100    -1      -1
 
111
6109    -1      -1
 
112
61      0       0
 
113
DROP TABLE t1;
 
114
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
 
115
insert('txs',2,1,'hi')  insert('is ',4,0,'a')   insert('txxxxt',2,4,'es')
 
116
this    is a    test
 
117
select insert("aa",100,1,"b"),insert("aa",1,3,"b");
 
118
insert("aa",100,1,"b")  insert("aa",1,3,"b")
 
119
aa      b
 
120
select char_length(left(@a:='тест',5)), length(@a), @a;
 
121
char_length(left(@a:='тест',5)) length(@a)      @a
 
122
4       8       тест
 
123
create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
 
124
show create table t1;
 
125
Table   Create Table
 
126
t1      CREATE TABLE `t1` (
 
127
  `date_format("2004-01-19 10:10:10", "%Y-%m-%d")` varchar(10) CHARACTER SET utf8 DEFAULT NULL
 
128
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
129
select * from t1;
 
130
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
 
131
2004-01-19
 
132
drop table t1;
 
133
set names utf8;
 
134
set LC_TIME_NAMES='fr_FR';
 
135
create table t1 (s1 char(20) character set latin1);
 
136
insert into t1 values (date_format('2004-02-02','%M'));
 
137
select hex(s1) from t1;
 
138
hex(s1)
 
139
66E97672696572
 
140
drop table t1;
 
141
create table t1 (s1 char(20) character set koi8r);
 
142
set LC_TIME_NAMES='ru_RU';
 
143
insert into t1 values (date_format('2004-02-02','%M'));
 
144
insert into t1 values (date_format('2004-02-02','%b'));
 
145
insert into t1 values (date_format('2004-02-02','%W'));
 
146
insert into t1 values (date_format('2004-02-02','%a'));
 
147
select hex(s1), s1 from t1;
 
148
hex(s1) s1
 
149
E6C5D7D2C1CCD1  Февраля
 
150
E6C5D7  Фев
 
151
F0CFCEC5C4C5CCD8CEC9CB  Понедельник
 
152
F0CEC4  Пнд
 
153
drop table t1;
 
154
set LC_TIME_NAMES='en_US';
 
155
set names koi8r;
 
156
create table t1 (s1 char(1) character set utf8);
 
157
insert into t1 values (_koi8r'��');
 
158
Warnings:
 
159
Warning 1265    Data truncated for column 's1' at row 1
 
160
select s1,hex(s1),char_length(s1),octet_length(s1) from t1;
 
161
s1      hex(s1) char_length(s1) octet_length(s1)
 
162
�       D0B0    1       2
 
163
drop table t1;
 
164
create table t1 (s1 tinytext character set utf8);
 
165
insert into t1 select repeat('a',300);
 
166
Warnings:
 
167
Warning 1265    Data truncated for column 's1' at row 1
 
168
insert into t1 select repeat('�',300);
 
169
Warnings:
 
170
Warning 1265    Data truncated for column 's1' at row 1
 
171
insert into t1 select repeat('a�',300);
 
172
Warnings:
 
173
Warning 1265    Data truncated for column 's1' at row 1
 
174
insert into t1 select repeat('�a',300);
 
175
Warnings:
 
176
Warning 1265    Data truncated for column 's1' at row 1
 
177
insert into t1 select repeat('��',300);
 
178
Warnings:
 
179
Warning 1265    Data truncated for column 's1' at row 1
 
180
select hex(s1) from t1;
 
181
hex(s1)
 
182
616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161
 
183
D18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18F
 
184
61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F
 
185
D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61D18F61
 
186
D18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18FD18F
 
187
select length(s1),char_length(s1) from t1;
 
188
length(s1)      char_length(s1)
 
189
255     255
 
190
254     127
 
191
255     170
 
192
255     170
 
193
254     127
 
194
drop table t1;
 
195
create table t1 (s1 text character set utf8);
 
196
insert into t1 select repeat('a',66000);
 
197
Warnings:
 
198
Warning 1265    Data truncated for column 's1' at row 1
 
199
insert into t1 select repeat('�',66000);
 
200
Warnings:
 
201
Warning 1265    Data truncated for column 's1' at row 1
 
202
insert into t1 select repeat('a�',66000);
 
203
Warnings:
 
204
Warning 1265    Data truncated for column 's1' at row 1
 
205
insert into t1 select repeat('�a',66000);
 
206
Warnings:
 
207
Warning 1265    Data truncated for column 's1' at row 1
 
208
insert into t1 select repeat('��',66000);
 
209
Warnings:
 
210
Warning 1265    Data truncated for column 's1' at row 1
 
211
select length(s1),char_length(s1) from t1;
 
212
length(s1)      char_length(s1)
 
213
65535   65535
 
214
65534   32767
 
215
65535   43690
 
216
65535   43690
 
217
65534   32767
 
218
drop table t1;
 
219
create table t1 (s1 char(10) character set utf8);
 
220
insert into t1 values (0x41FF);
 
221
Warnings:
 
222
Warning 1366    Incorrect string value: '\xFF' for column 's1' at row 1
 
223
select hex(s1) from t1;
 
224
hex(s1)
 
225
41
 
226
drop table t1;
 
227
create table t1 (s1 varchar(10) character set utf8);
 
228
insert into t1 values (0x41FF);
 
229
Warnings:
 
230
Warning 1366    Incorrect string value: '\xFF' for column 's1' at row 1
 
231
select hex(s1) from t1;
 
232
hex(s1)
 
233
41
 
234
drop table t1;
 
235
create table t1 (s1 text character set utf8);
 
236
insert into t1 values (0x41FF);
 
237
Warnings:
 
238
Warning 1366    Incorrect string value: '\xFF' for column 's1' at row 1
 
239
select hex(s1) from t1;
 
240
hex(s1)
 
241
41
 
242
drop table t1;
 
243
create table t1 (a text character set utf8, primary key(a(360)));
 
244
ERROR 42000: Specified key was too long; max key length is 1332 bytes
 
245
CREATE TABLE t1 ( a varchar(10) ) CHARACTER SET utf8;
 
246
INSERT INTO t1 VALUES ( 'test' );
 
247
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a;
 
248
a       a
 
249
test    test
 
250
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test';
 
251
a       a
 
252
test    test
 
253
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test';
 
254
a       a
 
255
test    test
 
256
DROP TABLE t1;
 
257
create table t1 (a char(255) character set utf8);
 
258
insert into t1 values('b'),('b');
 
259
select * from t1 where a = 'b';
 
260
a
 
261
b
 
262
b
 
263
select * from t1 where a = 'b' and a = 'b';
 
264
a
 
265
b
 
266
b
 
267
select * from t1 where a = 'b' and a != 'b';
 
268
a
 
269
drop table t1;
 
270
set collation_connection=utf8_general_ci;
 
271
drop table if exists t1;
 
272
create table t1 as
 
273
select repeat(' ', 64) as s1, repeat(' ',64) as s2
 
274
union
 
275
select null, null;
 
276
show create table t1;
 
277
Table   Create Table
 
278
t1      CREATE TABLE `t1` (
 
279
  `s1` varchar(64) CHARACTER SET utf8 DEFAULT NULL,
 
280
  `s2` varchar(64) CHARACTER SET utf8 DEFAULT NULL
 
281
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
282
delete from t1;
 
283
insert into t1 values('aaa','aaa');
 
284
insert into t1 values('aaa|qqq','qqq');
 
285
insert into t1 values('gheis','^[^a-dXYZ]+$');
 
286
insert into t1 values('aab','^aa?b');
 
287
insert into t1 values('Baaan','^Ba*n');
 
288
insert into t1 values('aaa','qqq|aaa');
 
289
insert into t1 values('qqq','qqq|aaa');
 
290
insert into t1 values('bbb','qqq|aaa');
 
291
insert into t1 values('bbb','qqq');
 
292
insert into t1 values('aaa','aba');
 
293
insert into t1 values(null,'abc');
 
294
insert into t1 values('def',null);
 
295
insert into t1 values(null,null);
 
296
insert into t1 values('ghi','ghi[');
 
297
select HIGH_PRIORITY s1 regexp s2 from t1;
 
298
s1 regexp s2
 
299
1
 
300
1
 
301
1
 
302
1
 
303
1
 
304
1
 
305
1
 
306
0
 
307
0
 
308
0
 
309
NULL
 
310
NULL
 
311
NULL
 
312
NULL
 
313
drop table t1;
 
314
set names utf8;
 
315
set names utf8;
 
316
select  'вася'  rlike '[[:<:]]вася[[:>:]]';
 
317
'вася'  rlike '[[:<:]]вася[[:>:]]'
 
318
1
 
319
select  'вася ' rlike '[[:<:]]вася[[:>:]]';
 
320
'вася ' rlike '[[:<:]]вася[[:>:]]'
 
321
1
 
322
select ' вася'  rlike '[[:<:]]вася[[:>:]]';
 
323
' вася'  rlike '[[:<:]]вася[[:>:]]'
 
324
1
 
325
select ' вася ' rlike '[[:<:]]вася[[:>:]]';
 
326
' вася ' rlike '[[:<:]]вася[[:>:]]'
 
327
1
 
328
select  'васяz' rlike '[[:<:]]вася[[:>:]]';
 
329
'васяz' rlike '[[:<:]]вася[[:>:]]'
 
330
0
 
331
select 'zвася'  rlike '[[:<:]]вася[[:>:]]';
 
332
'zвася'  rlike '[[:<:]]вася[[:>:]]'
 
333
0
 
334
select 'zвасяz' rlike '[[:<:]]вася[[:>:]]';
 
335
'zвасяz' rlike '[[:<:]]вася[[:>:]]'
 
336
0
 
337
CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8_unicode_ci);
 
338
ALTER TABLE t1 ADD COLUMN b CHAR(20);
 
339
DROP TABLE t1;
 
340
set names utf8;
 
341
create table t1 (a enum('aaaa','проба') character set utf8);
 
342
show create table t1;
 
343
Table   Create Table
 
344
t1      CREATE TABLE `t1` (
 
345
  `a` enum('aaaa','проба') CHARACTER SET utf8 DEFAULT NULL
 
346
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
347
insert into t1 values ('проба');
 
348
select * from t1;
 
349
a
 
350
проба
 
351
create table t2 select ifnull(a,a) from t1;
 
352
show create table t2;
 
353
Table   Create Table
 
354
t2      CREATE TABLE `t2` (
 
355
  `ifnull(a,a)` varchar(5) CHARACTER SET utf8 DEFAULT NULL
 
356
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
357
select * from t2;
 
358
ifnull(a,a)
 
359
проба
 
360
drop table t1;
 
361
drop table t2;
 
362
create table t1 (c varchar(30) character set utf8, unique(c(10)));
 
363
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
 
364
insert into t1 values ('aaaaaaaaaa');
 
365
insert into t1 values ('aaaaaaaaaaa');
 
366
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
367
insert into t1 values ('aaaaaaaaaaaa');
 
368
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
369
insert into t1 values (repeat('b',20));
 
370
select c c1 from t1 where c='1';
 
371
c1
 
372
1
 
373
select c c2 from t1 where c='2';
 
374
c2
 
375
2
 
376
select c c3 from t1 where c='3';
 
377
c3
 
378
3
 
379
select c cx from t1 where c='x';
 
380
cx
 
381
x
 
382
select c cy from t1 where c='y';
 
383
cy
 
384
y
 
385
select c cz from t1 where c='z';
 
386
cz
 
387
z
 
388
select c ca10 from t1 where c='aaaaaaaaaa';
 
389
ca10
 
390
aaaaaaaaaa
 
391
select c cb20 from t1 where c=repeat('b',20);
 
392
cb20
 
393
bbbbbbbbbbbbbbbbbbbb
 
394
drop table t1;
 
395
create table t1 (c varchar(30) character set utf8, unique(c(10))) engine=innodb;
 
396
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
 
397
insert into t1 values ('aaaaaaaaaa');
 
398
insert into t1 values ('aaaaaaaaaaa');
 
399
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
400
insert into t1 values ('aaaaaaaaaaaa');
 
401
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
402
insert into t1 values (repeat('b',20));
 
403
select c c1 from t1 where c='1';
 
404
c1
 
405
1
 
406
select c c2 from t1 where c='2';
 
407
c2
 
408
2
 
409
select c c3 from t1 where c='3';
 
410
c3
 
411
3
 
412
select c cx from t1 where c='x';
 
413
cx
 
414
x
 
415
select c cy from t1 where c='y';
 
416
cy
 
417
y
 
418
select c cz from t1 where c='z';
 
419
cz
 
420
z
 
421
select c ca10 from t1 where c='aaaaaaaaaa';
 
422
ca10
 
423
aaaaaaaaaa
 
424
select c cb20 from t1 where c=repeat('b',20);
 
425
cb20
 
426
bbbbbbbbbbbbbbbbbbbb
 
427
drop table t1;
 
428
create table t1 (c char(3) character set utf8, unique (c(2)));
 
429
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
 
430
insert into t1 values ('a');
 
431
insert into t1 values ('aa');
 
432
insert into t1 values ('aaa');
 
433
ERROR 23000: Duplicate entry 'aa' for key 'c'
 
434
insert into t1 values ('b');
 
435
insert into t1 values ('bb');
 
436
insert into t1 values ('bbb');
 
437
ERROR 23000: Duplicate entry 'bb' for key 'c'
 
438
insert into t1 values ('а');
 
439
insert into t1 values ('аа');
 
440
insert into t1 values ('ааа');
 
441
ERROR 23000: Duplicate entry 'аа' for key 'c'
 
442
insert into t1 values ('б');
 
443
insert into t1 values ('бб');
 
444
insert into t1 values ('ббб');
 
445
ERROR 23000: Duplicate entry 'бб' for key 'c'
 
446
insert into t1 values ('ꪪ');
 
447
insert into t1 values ('ꪪꪪ');
 
448
insert into t1 values ('ꪪꪪꪪ');
 
449
ERROR 23000: Duplicate entry 'ꪪꪪ' for key 'c'
 
450
drop table t1;
 
451
create table t1 (c char(3) character set utf8, unique (c(2))) engine=innodb;
 
452
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
 
453
insert into t1 values ('a');
 
454
insert into t1 values ('aa');
 
455
insert into t1 values ('aaa');
 
456
ERROR 23000: Duplicate entry 'aa' for key 'c'
 
457
insert into t1 values ('b');
 
458
insert into t1 values ('bb');
 
459
insert into t1 values ('bbb');
 
460
ERROR 23000: Duplicate entry 'bb' for key 'c'
 
461
insert into t1 values ('а');
 
462
insert into t1 values ('аа');
 
463
insert into t1 values ('ааа');
 
464
ERROR 23000: Duplicate entry 'аа' for key 'c'
 
465
insert into t1 values ('б');
 
466
insert into t1 values ('бб');
 
467
insert into t1 values ('ббб');
 
468
ERROR 23000: Duplicate entry 'бб' for key 'c'
 
469
insert into t1 values ('ꪪ');
 
470
insert into t1 values ('ꪪꪪ');
 
471
insert into t1 values ('ꪪꪪꪪ');
 
472
ERROR 23000: Duplicate entry 'ꪪꪪ' for key 'c'
 
473
drop table t1;
 
474
create table t1 (
 
475
c char(10) character set utf8,
 
476
unique key a using hash (c(1))
 
477
) engine=heap;
 
478
show create table t1;
 
479
Table   Create Table
 
480
t1      CREATE TABLE `t1` (
 
481
  `c` char(10) CHARACTER SET utf8 DEFAULT NULL,
 
482
  UNIQUE KEY `a` (`c`(1)) USING HASH
 
483
) ENGINE=MEMORY DEFAULT CHARSET=latin1
 
484
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
485
insert into t1 values ('aa');
 
486
ERROR 23000: Duplicate entry 'a' for key 'a'
 
487
insert into t1 values ('aaa');
 
488
ERROR 23000: Duplicate entry 'a' for key 'a'
 
489
insert into t1 values ('б');
 
490
insert into t1 values ('бб');
 
491
ERROR 23000: Duplicate entry 'б' for key 'a'
 
492
insert into t1 values ('ббб');
 
493
ERROR 23000: Duplicate entry 'б' for key 'a'
 
494
select c as c_all from t1 order by c;
 
495
c_all
 
496
a
 
497
b
 
498
c
 
499
d
 
500
e
 
501
f
 
502
б
 
503
select c as c_a from t1 where c='a';
 
504
c_a
 
505
a
 
506
select c as c_a from t1 where c='б';
 
507
c_a
 
508
б
 
509
drop table t1;
 
510
create table t1 (
 
511
c char(10) character set utf8,
 
512
unique key a using btree (c(1))
 
513
) engine=heap;
 
514
show create table t1;
 
515
Table   Create Table
 
516
t1      CREATE TABLE `t1` (
 
517
  `c` char(10) CHARACTER SET utf8 DEFAULT NULL,
 
518
  UNIQUE KEY `a` (`c`(1)) USING BTREE
 
519
) ENGINE=MEMORY DEFAULT CHARSET=latin1
 
520
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
521
insert into t1 values ('aa');
 
522
ERROR 23000: Duplicate entry 'a' for key 'a'
 
523
insert into t1 values ('aaa');
 
524
ERROR 23000: Duplicate entry 'a' for key 'a'
 
525
insert into t1 values ('б');
 
526
insert into t1 values ('бб');
 
527
ERROR 23000: Duplicate entry 'б' for key 'a'
 
528
insert into t1 values ('ббб');
 
529
ERROR 23000: Duplicate entry 'б' for key 'a'
 
530
select c as c_all from t1 order by c;
 
531
c_all
 
532
a
 
533
b
 
534
c
 
535
d
 
536
e
 
537
f
 
538
б
 
539
select c as c_a from t1 where c='a';
 
540
c_a
 
541
a
 
542
select c as c_a from t1 where c='б';
 
543
c_a
 
544
б
 
545
drop table t1;
 
546
create table t1 (
 
547
c char(10) character set utf8,
 
548
unique key a (c(1))
 
549
) engine=innodb;
 
550
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
551
insert into t1 values ('aa');
 
552
ERROR 23000: Duplicate entry 'a' for key 'a'
 
553
insert into t1 values ('aaa');
 
554
ERROR 23000: Duplicate entry 'a' for key 'a'
 
555
insert into t1 values ('б');
 
556
insert into t1 values ('бб');
 
557
ERROR 23000: Duplicate entry 'б' for key 'a'
 
558
insert into t1 values ('ббб');
 
559
ERROR 23000: Duplicate entry 'б' for key 'a'
 
560
select c as c_all from t1 order by c;
 
561
c_all
 
562
a
 
563
b
 
564
c
 
565
d
 
566
e
 
567
f
 
568
б
 
569
select c as c_a from t1 where c='a';
 
570
c_a
 
571
a
 
572
select c as c_a from t1 where c='б';
 
573
c_a
 
574
б
 
575
drop table t1;
 
576
create table t1 (c varchar(30) character set utf8 collate utf8_bin, unique(c(10)));
 
577
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
 
578
insert into t1 values ('aaaaaaaaaa');
 
579
insert into t1 values ('aaaaaaaaaaa');
 
580
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
581
insert into t1 values ('aaaaaaaaaaaa');
 
582
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
 
583
insert into t1 values (repeat('b',20));
 
584
select c c1 from t1 where c='1';
 
585
c1
 
586
1
 
587
select c c2 from t1 where c='2';
 
588
c2
 
589
2
 
590
select c c3 from t1 where c='3';
 
591
c3
 
592
3
 
593
select c cx from t1 where c='x';
 
594
cx
 
595
x
 
596
select c cy from t1 where c='y';
 
597
cy
 
598
y
 
599
select c cz from t1 where c='z';
 
600
cz
 
601
z
 
602
select c ca10 from t1 where c='aaaaaaaaaa';
 
603
ca10
 
604
aaaaaaaaaa
 
605
select c cb20 from t1 where c=repeat('b',20);
 
606
cb20
 
607
bbbbbbbbbbbbbbbbbbbb
 
608
drop table t1;
 
609
create table t1 (c char(3) character set utf8 collate utf8_bin, unique (c(2)));
 
610
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
 
611
insert into t1 values ('a');
 
612
insert into t1 values ('aa');
 
613
insert into t1 values ('aaa');
 
614
ERROR 23000: Duplicate entry 'aa' for key 'c'
 
615
insert into t1 values ('b');
 
616
insert into t1 values ('bb');
 
617
insert into t1 values ('bbb');
 
618
ERROR 23000: Duplicate entry 'bb' for key 'c'
 
619
insert into t1 values ('а');
 
620
insert into t1 values ('аа');
 
621
insert into t1 values ('ааа');
 
622
ERROR 23000: Duplicate entry 'аа' for key 'c'
 
623
insert into t1 values ('б');
 
624
insert into t1 values ('бб');
 
625
insert into t1 values ('ббб');
 
626
ERROR 23000: Duplicate entry 'бб' for key 'c'
 
627
insert into t1 values ('ꪪ');
 
628
insert into t1 values ('ꪪꪪ');
 
629
insert into t1 values ('ꪪꪪꪪ');
 
630
ERROR 23000: Duplicate entry 'ꪪꪪ' for key 'c'
 
631
drop table t1;
 
632
create table t1 (
 
633
c char(10) character set utf8 collate utf8_bin,
 
634
unique key a using hash (c(1))
 
635
) engine=heap;
 
636
show create table t1;
 
637
Table   Create Table
 
638
t1      CREATE TABLE `t1` (
 
639
  `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
 
640
  UNIQUE KEY `a` (`c`(1)) USING HASH
 
641
) ENGINE=MEMORY DEFAULT CHARSET=latin1
 
642
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
643
insert into t1 values ('aa');
 
644
ERROR 23000: Duplicate entry 'a' for key 'a'
 
645
insert into t1 values ('aaa');
 
646
ERROR 23000: Duplicate entry 'a' for key 'a'
 
647
insert into t1 values ('б');
 
648
insert into t1 values ('бб');
 
649
ERROR 23000: Duplicate entry 'б' for key 'a'
 
650
insert into t1 values ('ббб');
 
651
ERROR 23000: Duplicate entry 'б' for key 'a'
 
652
select c as c_all from t1 order by c;
 
653
c_all
 
654
a
 
655
b
 
656
c
 
657
d
 
658
e
 
659
f
 
660
б
 
661
select c as c_a from t1 where c='a';
 
662
c_a
 
663
a
 
664
select c as c_a from t1 where c='б';
 
665
c_a
 
666
б
 
667
drop table t1;
 
668
create table t1 (
 
669
c char(10) character set utf8 collate utf8_bin,
 
670
unique key a using btree (c(1))
 
671
) engine=heap;
 
672
show create table t1;
 
673
Table   Create Table
 
674
t1      CREATE TABLE `t1` (
 
675
  `c` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
 
676
  UNIQUE KEY `a` (`c`(1)) USING BTREE
 
677
) ENGINE=MEMORY DEFAULT CHARSET=latin1
 
678
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
679
insert into t1 values ('aa');
 
680
ERROR 23000: Duplicate entry 'a' for key 'a'
 
681
insert into t1 values ('aaa');
 
682
ERROR 23000: Duplicate entry 'a' for key 'a'
 
683
insert into t1 values ('б');
 
684
insert into t1 values ('бб');
 
685
ERROR 23000: Duplicate entry 'б' for key 'a'
 
686
insert into t1 values ('ббб');
 
687
ERROR 23000: Duplicate entry 'б' for key 'a'
 
688
select c as c_all from t1 order by c;
 
689
c_all
 
690
a
 
691
b
 
692
c
 
693
d
 
694
e
 
695
f
 
696
б
 
697
select c as c_a from t1 where c='a';
 
698
c_a
 
699
a
 
700
select c as c_a from t1 where c='б';
 
701
c_a
 
702
б
 
703
drop table t1;
 
704
create table t1 (
 
705
c char(10) character set utf8 collate utf8_bin,
 
706
unique key a (c(1))
 
707
) engine=innodb;
 
708
insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f');
 
709
insert into t1 values ('aa');
 
710
ERROR 23000: Duplicate entry 'a' for key 'a'
 
711
insert into t1 values ('aaa');
 
712
ERROR 23000: Duplicate entry 'a' for key 'a'
 
713
insert into t1 values ('б');
 
714
insert into t1 values ('бб');
 
715
ERROR 23000: Duplicate entry 'б' for key 'a'
 
716
insert into t1 values ('ббб');
 
717
ERROR 23000: Duplicate entry 'б' for key 'a'
 
718
select c as c_all from t1 order by c;
 
719
c_all
 
720
a
 
721
b
 
722
c
 
723
d
 
724
e
 
725
f
 
726
б
 
727
select c as c_a from t1 where c='a';
 
728
c_a
 
729
a
 
730
select c as c_a from t1 where c='б';
 
731
c_a
 
732
б
 
733
drop table t1;
 
734
create table t1 (
 
735
str varchar(255) character set utf8 not null,
 
736
key str  (str(2))
 
737
) engine=myisam;
 
738
INSERT INTO t1 VALUES ('str');
 
739
INSERT INTO t1 VALUES ('str2');
 
740
select * from t1 where str='str';
 
741
str
 
742
str
 
743
drop table t1;
 
744
create table t1 (
 
745
str varchar(255) character set utf8 not null,
 
746
key str  (str(2))
 
747
) engine=innodb;
 
748
INSERT INTO t1 VALUES ('str');
 
749
INSERT INTO t1 VALUES ('str2');
 
750
select * from t1 where str='str';
 
751
str
 
752
str
 
753
drop table t1;
 
754
create table t1 (
 
755
str varchar(255) character set utf8 not null,
 
756
key str using btree (str(2))
 
757
) engine=heap;
 
758
INSERT INTO t1 VALUES ('str');
 
759
INSERT INTO t1 VALUES ('str2');
 
760
select * from t1 where str='str';
 
761
str
 
762
str
 
763
drop table t1;
 
764
create table t1 (
 
765
str varchar(255) character set utf8 not null,
 
766
key str using hash (str(2))
 
767
) engine=heap;
 
768
INSERT INTO t1 VALUES ('str');
 
769
INSERT INTO t1 VALUES ('str2');
 
770
select * from t1 where str='str';
 
771
str
 
772
str
 
773
drop table t1;
 
774
create table t1 (
 
775
str varchar(255) character set utf8 not null,
 
776
key str (str(2))
 
777
) engine=innodb;
 
778
INSERT INTO t1 VALUES ('str');
 
779
INSERT INTO t1 VALUES ('str2');
 
780
select * from t1 where str='str';
 
781
str
 
782
str
 
783
drop table t1;
 
784
CREATE TABLE t1 (a varchar(32) BINARY) CHARACTER SET utf8;
 
785
INSERT INTO t1 VALUES ('test');
 
786
SELECT a FROM t1 WHERE a LIKE '%te';
 
787
a
 
788
DROP TABLE t1;
 
789
SET NAMES utf8;
 
790
CREATE TABLE t1 (
 
791
subject varchar(255) character set utf8 collate utf8_unicode_ci,
 
792
p varchar(15) character set utf8
 
793
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
794
INSERT INTO t1 VALUES ('谷川俊二と申しますが、インターネット予約の会員登録をしましたところ、メールアドレスを間違えてしまい会員IDが受け取ることが出来ませんでした。間違えアドレスはtani-shun@n.vodafone.ne.jpを書き込みました。どうすればよいですか? その他、住所等は間違えありません。連絡ください。よろしくお願いします。m(__)m','040312-000057');
 
795
INSERT INTO t1 VALUES ('aaa','bbb');
 
796
SELECT length(subject) FROM t1;
 
797
length(subject)
 
798
432
 
799
3
 
800
SELECT length(subject) FROM t1 ORDER BY 1;
 
801
length(subject)
 
802
3
 
803
432
 
804
DROP TABLE t1;
 
805
CREATE TABLE t1 (
 
806
id       int unsigned NOT NULL auto_increment,
 
807
list_id  smallint unsigned NOT NULL,
 
808
term     TEXT NOT NULL,
 
809
PRIMARY KEY(id),
 
810
INDEX(list_id, term(4))
 
811
) ENGINE=MYISAM CHARSET=utf8;
 
812
INSERT INTO t1 SET list_id = 1, term = "letterc";
 
813
INSERT INTO t1 SET list_id = 1, term = "letterb";
 
814
INSERT INTO t1 SET list_id = 1, term = "lettera";
 
815
INSERT INTO t1 SET list_id = 1, term = "letterd";
 
816
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterc");
 
817
id
 
818
1
 
819
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterb");
 
820
id
 
821
2
 
822
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "lettera");
 
823
id
 
824
3
 
825
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd");
 
826
id
 
827
4
 
828
DROP TABLE t1;
 
829
SET NAMES latin1;
 
830
CREATE TABLE t1 (
 
831
id int unsigned NOT NULL auto_increment,
 
832
list_id smallint unsigned NOT NULL,
 
833
term text NOT NULL,
 
834
PRIMARY KEY(id),
 
835
INDEX(list_id, term(19))
 
836
) ENGINE=MyISAM CHARSET=utf8;
 
837
INSERT INTO t1 set list_id = 1, term = "test�test";
 
838
INSERT INTO t1 set list_id = 1, term = "testetest";
 
839
INSERT INTO t1 set list_id = 1, term = "test�test";
 
840
SELECT id, term FROM t1 where (list_id = 1) AND (term = "test�test");
 
841
id      term
 
842
1       test�test
 
843
2       testetest
 
844
3       test�test
 
845
SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest");
 
846
id      term
 
847
1       test�test
 
848
2       testetest
 
849
3       test�test
 
850
SELECT id, term FROM t1 where (list_id = 1) AND (term = "test�test");
 
851
id      term
 
852
1       test�test
 
853
2       testetest
 
854
3       test�test
 
855
DROP TABLE t1;
 
856
set names utf8;
 
857
create table t1 (
 
858
a int primary key,
 
859
b varchar(6),
 
860
index b3(b(3))
 
861
) engine=innodb character set=utf8;
 
862
insert into t1 values(1,'foo'),(2,'foobar');
 
863
select * from t1 where b like 'foob%';
 
864
a       b
 
865
2       foobar
 
866
alter table t1 engine=innodb;
 
867
select * from t1 where b like 'foob%';
 
868
a       b
 
869
2       foobar
 
870
drop table t1;
 
871
create table t1 (
 
872
a enum('петя','вася','анюта') character set utf8 not null default 'анюта',
 
873
b set('петя','вася','анюта') character set utf8 not null default 'анюта'
 
874
);
 
875
create table t2 select concat(a,_utf8'') as a, concat(b,_utf8'')as b from t1;
 
876
show create table t2;
 
877
Table   Create Table
 
878
t2      CREATE TABLE `t2` (
 
879
  `a` varchar(5) CHARACTER SET utf8 NOT NULL DEFAULT '',
 
880
  `b` varchar(15) CHARACTER SET utf8 NOT NULL DEFAULT ''
 
881
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
882
drop table t2;
 
883
drop table t1;
 
884
select 'c' like '\_' as want0;
 
885
want0
 
886
0
 
887
SELECT SUBSTR('вася',-2);
 
888
SUBSTR('вася',-2)
 
889
ся
 
890
create table t1 (id integer, a varchar(100) character set utf8 collate utf8_unicode_ci);
 
891
insert into t1 values (1, 'Test');
 
892
select * from t1 where soundex(a) = soundex('Test');
 
893
id      a
 
894
1       Test
 
895
select * from t1 where soundex(a) = soundex('TEST');
 
896
id      a
 
897
1       Test
 
898
select * from t1 where soundex(a) = soundex('test');
 
899
id      a
 
900
1       Test
 
901
drop table t1;
 
902
select soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB);
 
903
soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)
 
904
阅000
 
905
select hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB));
 
906
hex(soundex(_utf8 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB))
 
907
E99885303030
 
908
select soundex(_utf8 0xD091D092D093);
 
909
soundex(_utf8 0xD091D092D093)
 
910
Б000
 
911
select hex(soundex(_utf8 0xD091D092D093));
 
912
hex(soundex(_utf8 0xD091D092D093))
 
913
D091303030
 
914
SET collation_connection='utf8_general_ci';
 
915
create table t1 select repeat('a',4000) a;
 
916
delete from t1;
 
917
insert into t1 values ('a'), ('a '), ('a\t');
 
918
select collation(a),hex(a) from t1 order by a;
 
919
collation(a)    hex(a)
 
920
utf8_general_ci 6109
 
921
utf8_general_ci 61
 
922
utf8_general_ci 6120
 
923
drop table t1;
 
924
select @@collation_connection;
 
925
@@collation_connection
 
926
utf8_general_ci
 
927
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
 
928
insert into t1 values('abcdef');
 
929
insert into t1 values('_bcdef');
 
930
insert into t1 values('a_cdef');
 
931
insert into t1 values('ab_def');
 
932
insert into t1 values('abc_ef');
 
933
insert into t1 values('abcd_f');
 
934
insert into t1 values('abcde_');
 
935
select c1 as c1u from t1 where c1 like 'ab\_def';
 
936
c1u
 
937
ab_def
 
938
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
 
939
c2h
 
940
ab_def
 
941
drop table t1;
 
942
drop table if exists t1;
 
943
create table t1 as select repeat(' ', 64) as s1;
 
944
select collation(s1) from t1;
 
945
collation(s1)
 
946
utf8_general_ci
 
947
delete from t1;
 
948
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
 
949
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
 
950
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
 
951
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
 
952
select s1, hex(s1) from t1 order by s1, binary s1;
 
953
s1      hex(s1)
 
954
a       61
 
955
ä       C3A4
 
956
ae      6165
 
957
o       6F
 
958
ö       C3B6
 
959
oe      6F65
 
960
s       73
 
961
ß       C39F
 
962
ss      7373
 
963
u       75
 
964
ü       C3BC
 
965
ue      7565
 
966
select group_concat(s1 order by binary s1) from t1 group by s1;
 
967
group_concat(s1 order by binary s1)
 
968
a,ä
 
969
ae
 
970
o,ö
 
971
oe
 
972
s,ß
 
973
ss
 
974
u,ü
 
975
ue
 
976
drop table t1;
 
977
SET collation_connection='utf8_bin';
 
978
create table t1 select repeat('a',4000) a;
 
979
delete from t1;
 
980
insert into t1 values ('a'), ('a '), ('a\t');
 
981
select collation(a),hex(a) from t1 order by a;
 
982
collation(a)    hex(a)
 
983
utf8_bin        6109
 
984
utf8_bin        61
 
985
utf8_bin        6120
 
986
drop table t1;
 
987
select @@collation_connection;
 
988
@@collation_connection
 
989
utf8_bin
 
990
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
 
991
insert into t1 values('abcdef');
 
992
insert into t1 values('_bcdef');
 
993
insert into t1 values('a_cdef');
 
994
insert into t1 values('ab_def');
 
995
insert into t1 values('abc_ef');
 
996
insert into t1 values('abcd_f');
 
997
insert into t1 values('abcde_');
 
998
select c1 as c1u from t1 where c1 like 'ab\_def';
 
999
c1u
 
1000
ab_def
 
1001
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
 
1002
c2h
 
1003
ab_def
 
1004
drop table t1;
 
1005
CREATE TABLE t1 (
 
1006
user varchar(255) NOT NULL default ''
 
1007
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
1008
INSERT INTO t1 VALUES ('one'),('two');
 
1009
SELECT CHARSET('a');
 
1010
CHARSET('a')
 
1011
utf8
 
1012
SELECT user, CONCAT('<', user, '>') AS c FROM t1;
 
1013
user    c
 
1014
one     <one>
 
1015
two     <two>
 
1016
DROP TABLE t1;
 
1017
create table t1 (f1 varchar(1) not null) default charset utf8;
 
1018
insert into t1 values (''), ('');
 
1019
select concat(concat(_latin1'->',f1),_latin1'<-') from t1;
 
1020
concat(concat(_latin1'->',f1),_latin1'<-')
 
1021
-><-
 
1022
-><-
 
1023
drop table t1;
 
1024
select convert(_koi8r'�' using utf8) < convert(_koi8r'�' using utf8);
 
1025
convert(_koi8r'�' using utf8) < convert(_koi8r'�' using utf8)
 
1026
1
 
1027
set names latin1;
 
1028
create table t1 (a varchar(10)) character set utf8;
 
1029
insert into t1 values ('test');
 
1030
select ifnull(a,'') from t1;
 
1031
ifnull(a,'')
 
1032
test
 
1033
drop table t1;
 
1034
select repeat(_utf8'+',3) as h union select NULL;
 
1035
h
 
1036
+++
 
1037
NULL
 
1038
select ifnull(NULL, _utf8'string');
 
1039
ifnull(NULL, _utf8'string')
 
1040
string
 
1041
set names utf8;
 
1042
create table t1 (s1 char(5) character set utf8 collate utf8_lithuanian_ci);
 
1043
insert into t1 values ('I'),('K'),('Y');
 
1044
select * from t1 where s1 < 'K' and s1 = 'Y';
 
1045
s1
 
1046
I
 
1047
Y
 
1048
select * from t1 where 'K' > s1 and s1 = 'Y';
 
1049
s1
 
1050
I
 
1051
Y
 
1052
drop table t1;
 
1053
create table t1 (s1 char(5) character set utf8 collate utf8_czech_ci);
 
1054
insert into t1 values ('c'),('d'),('h'),('ch'),('CH'),('cH'),('Ch'),('i');
 
1055
select * from t1 where s1 > 'd' and s1 = 'CH';
 
1056
s1
 
1057
ch
 
1058
CH
 
1059
Ch
 
1060
select * from t1 where 'd' < s1 and s1 = 'CH';
 
1061
s1
 
1062
ch
 
1063
CH
 
1064
Ch
 
1065
select * from t1 where s1 = 'cH' and s1 <> 'ch';
 
1066
s1
 
1067
cH
 
1068
select * from t1 where 'cH' = s1 and s1 <> 'ch';
 
1069
s1
 
1070
cH
 
1071
drop table t1;
 
1072
create table t1 (a varchar(255)) default character set utf8;
 
1073
insert into t1 values (1.0);
 
1074
drop table t1;
 
1075
create table t1 (
 
1076
id int not null,
 
1077
city varchar(20) not null,
 
1078
key (city(7),id)
 
1079
) character set=utf8;
 
1080
insert into t1 values (1,'Durban North');
 
1081
insert into t1 values (2,'Durban');
 
1082
select * from t1 where city = 'Durban';
 
1083
id      city
 
1084
2       Durban
 
1085
select * from t1 where city = 'Durban ';
 
1086
id      city
 
1087
2       Durban
 
1088
drop table t1;
 
1089
create table t1 (x set('A', 'B') default 0) character set utf8;
 
1090
ERROR 42000: Invalid default value for 'x'
 
1091
create table t1 (x enum('A', 'B') default 0) character set utf8;
 
1092
ERROR 42000: Invalid default value for 'x'
 
1093
SET NAMES UTF8;
 
1094
CREATE TABLE t1 (
 
1095
`id` int(20) NOT NULL auto_increment,
 
1096
`country` varchar(100) NOT NULL default '',
 
1097
`shortcode` varchar(100) NOT NULL default '',
 
1098
`operator` varchar(100) NOT NULL default '',
 
1099
`momid` varchar(30) NOT NULL default '',
 
1100
`keyword` varchar(160) NOT NULL default '',
 
1101
`content` varchar(160) NOT NULL default '',
 
1102
`second_token` varchar(160) default NULL,
 
1103
`gateway_id` int(11) NOT NULL default '0',
 
1104
`created` datetime NOT NULL default '0000-00-00 00:00:00',
 
1105
`msisdn` varchar(15) NOT NULL default '',
 
1106
PRIMARY KEY  (`id`),
 
1107
UNIQUE KEY `MSCCSPK_20030521130957121` (`momid`),
 
1108
KEY `IX_mobile_originated_message_keyword` (`keyword`),
 
1109
KEY `IX_mobile_originated_message_created` (`created`),
 
1110
KEY `IX_mobile_originated_message_support` (`msisdn`,`momid`,`keyword`,`gateway_id`,`created`)
 
1111
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
1112
INSERT INTO t1 VALUES 
 
1113
(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'),
 
1114
(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890');
 
1115
CREATE TABLE t2 (
 
1116
`msisdn` varchar(15) NOT NULL default '',
 
1117
`operator_id` int(11) NOT NULL default '0',
 
1118
`created` datetime NOT NULL default '0000-00-00 00:00:00',
 
1119
UNIQUE KEY `PK_user` (`msisdn`)
 
1120
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
1121
INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25');
 
1122
SELECT content, t2.msisdn FROM t1, t2 WHERE t1.msisdn = '1234567890';
 
1123
content msisdn
 
1124
ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми        1234567890
 
1125
11 g    1234567890
 
1126
DROP TABLE t1,t2;
 
1127
create table t1 (a char(20) character set utf8);
 
1128
insert into t1 values ('123456'),('андрей');
 
1129
alter table t1 modify a char(2) character set utf8;
 
1130
Warnings:
 
1131
Warning 1265    Data truncated for column 'a' at row 1
 
1132
Warning 1265    Data truncated for column 'a' at row 2
 
1133
select char_length(a), length(a), a from t1 order by a;
 
1134
char_length(a)  length(a)       a
 
1135
2       2       12
 
1136
2       4       ан
 
1137
drop table t1;
 
1138
set names utf8;
 
1139
select 'andre%' like 'andreñ%' escape 'ñ';
 
1140
'andre%' like 'andreñ%' escape 'ñ'
 
1141
1
 
1142
set names utf8;
 
1143
select 'a\\' like 'a\\';
 
1144
'a\\' like 'a\\'
 
1145
1
 
1146
select 'aa\\' like 'a%\\';
 
1147
'aa\\' like 'a%\\'
 
1148
1
 
1149
create table t1 (a char(10), key(a)) character set utf8;
 
1150
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
 
1151
select * from t1 where a like "abc%";
 
1152
a
 
1153
abc
 
1154
abcd
 
1155
select * from t1 where a like concat("abc","%");
 
1156
a
 
1157
abc
 
1158
abcd
 
1159
select * from t1 where a like "ABC%";
 
1160
a
 
1161
abc
 
1162
abcd
 
1163
select * from t1 where a like "test%";
 
1164
a
 
1165
test
 
1166
select * from t1 where a like "te_t";
 
1167
a
 
1168
test
 
1169
select * from t1 where a like "%a%";
 
1170
a
 
1171
a
 
1172
abc
 
1173
abcd
 
1174
select * from t1 where a like "%abcd%";
 
1175
a
 
1176
abcd
 
1177
select * from t1 where a like "%abc\d%";
 
1178
a
 
1179
abcd
 
1180
drop table t1;
 
1181
CREATE TABLE t1 (
 
1182
a varchar(255) NOT NULL default '',
 
1183
KEY a (a)
 
1184
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
 
1185
insert into t1 values (_utf8 0xe880bd);
 
1186
insert into t1 values (_utf8 0x5b);
 
1187
select hex(a) from t1;
 
1188
hex(a)
 
1189
5B
 
1190
E880BD
 
1191
drop table t1;
 
1192
set names 'latin1';
 
1193
create table t1 (a varchar(255)) default charset=utf8;
 
1194
select * from t1 where find_in_set('-1', a);
 
1195
a
 
1196
drop table t1;
 
1197
create table t1 (a int);
 
1198
insert into t1 values (48),(49),(50);
 
1199
set names utf8;
 
1200
select distinct char(a) from t1;
 
1201
char(a)
 
1202
0
 
1203
1
 
1204
2
 
1205
drop table t1;
 
1206
CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8);
 
1207
INSERT INTO t1 VALUES(REPEAT('a', 100));
 
1208
CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1;
 
1209
SELECT LENGTH(bug) FROM t2;
 
1210
LENGTH(bug)
 
1211
100
 
1212
DROP TABLE t2;
 
1213
DROP TABLE t1;
 
1214
CREATE TABLE t1 (item varchar(255)) default character set utf8;
 
1215
INSERT INTO t1 VALUES (N'\\');
 
1216
INSERT INTO t1 VALUES (_utf8'\\');
 
1217
INSERT INTO t1 VALUES (N'Cote d\'Ivoire');
 
1218
INSERT INTO t1 VALUES (_utf8'Cote d\'Ivoire');
 
1219
SELECT item FROM t1 ORDER BY item;
 
1220
item
 
1221
Cote d'Ivoire
 
1222
Cote d'Ivoire
 
1223
\
 
1224
\
 
1225
DROP TABLE t1;
 
1226
SET NAMES utf8;
 
1227
DROP TABLE IF EXISTS t1;
 
1228
Warnings:
 
1229
Note    1051    Unknown table 't1'
 
1230
CREATE TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
1231
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
 
1232
INSERT INTO t1 VALUES('uu');
 
1233
check table t1;
 
1234
Table   Op      Msg_type        Msg_text
 
1235
test.t1 check   status  OK
 
1236
INSERT INTO t1 VALUES('uU');
 
1237
check table t1;
 
1238
Table   Op      Msg_type        Msg_text
 
1239
test.t1 check   status  OK
 
1240
INSERT INTO t1 VALUES('uu');
 
1241
check table t1;
 
1242
Table   Op      Msg_type        Msg_text
 
1243
test.t1 check   status  OK
 
1244
INSERT INTO t1 VALUES('uuABC');
 
1245
check table t1;
 
1246
Table   Op      Msg_type        Msg_text
 
1247
test.t1 check   status  OK
 
1248
INSERT INTO t1 VALUES('UuABC');
 
1249
check table t1;
 
1250
Table   Op      Msg_type        Msg_text
 
1251
test.t1 check   status  OK
 
1252
INSERT INTO t1 VALUES('uuABC');
 
1253
check table t1;
 
1254
Table   Op      Msg_type        Msg_text
 
1255
test.t1 check   status  OK
 
1256
alter table t1 add b int;
 
1257
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
 
1258
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2);
 
1259
delete from t1 where b=1;
 
1260
INSERT INTO t1 VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
 
1261
check table t1;
 
1262
Table   Op      Msg_type        Msg_text
 
1263
test.t1 check   status  OK
 
1264
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
 
1265
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4);
 
1266
delete from t1 where b=3;
 
1267
INSERT INTO t1 VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
 
1268
check table t1;
 
1269
Table   Op      Msg_type        Msg_text
 
1270
test.t1 check   status  OK
 
1271
drop table t1;
 
1272
set names utf8;
 
1273
create table t1 (s1 char(5) character set utf8);
 
1274
insert into t1 values
 
1275
('a'),('b'),(null),('ペテルグル'),('ü'),('Y');
 
1276
create index it1 on t1 (s1);
 
1277
select s1 as before_delete_general_ci from t1 where s1 like 'ペテ%';
 
1278
before_delete_general_ci
 
1279
ペテルグル
 
1280
delete from t1 where s1 = 'Y';
 
1281
select s1 as after_delete_general_ci from t1 where s1 like 'ペテ%';
 
1282
after_delete_general_ci
 
1283
ペテルグル
 
1284
drop table t1;
 
1285
set names utf8;
 
1286
create table t1 (s1 char(5) character set utf8 collate utf8_unicode_ci);
 
1287
insert into t1 values
 
1288
('a'),('b'),(null),('ペテルグル'),('ü'),('Y');
 
1289
create index it1 on t1 (s1);
 
1290
select s1 as before_delete_unicode_ci from t1 where s1 like 'ペテ%';
 
1291
before_delete_unicode_ci
 
1292
ペテルグル
 
1293
delete from t1 where s1 = 'Y';
 
1294
select s1 as after_delete_unicode_ci from t1 where s1 like 'ペテ%';
 
1295
after_delete_unicode_ci
 
1296
ペテルグル
 
1297
drop table t1;
 
1298
set names utf8;
 
1299
create table t1 (s1 char(5) character set utf8 collate utf8_bin);
 
1300
insert into t1 values
 
1301
('a'),('b'),(null),('ペテルグル'),('ü'),('Y');
 
1302
create index it1 on t1 (s1);
 
1303
select s1 as before_delete_bin from t1 where s1 like 'ペテ%';
 
1304
before_delete_bin
 
1305
ペテルグル
 
1306
delete from t1 where s1 = 'Y';
 
1307
select s1 as after_delete_bin from t1 where s1 like 'ペテ%';
 
1308
after_delete_bin
 
1309
ペテルグル
 
1310
drop table t1;
 
1311
set names utf8;
 
1312
create table t1 (a varchar(30) not null primary key)
 
1313
engine=innodb  default character set utf8 collate utf8_general_ci;
 
1314
insert into t1 values ('あいうえおかきくけこさしすせそ');
 
1315
insert into t1 values ('さしすせそかきくけこあいうえお');
 
1316
select a as gci1 from t1 where a like 'さしすせそかきくけこあいうえお%';
 
1317
gci1
 
1318
さしすせそかきくけこあいうえお
 
1319
select a as gci2 from t1 where a like 'あいうえおかきくけこさしすせそ';
 
1320
gci2
 
1321
あいうえおかきくけこさしすせそ
 
1322
drop table t1;
 
1323
set names utf8;
 
1324
create table t1 (a varchar(30) not null primary key)
 
1325
engine=innodb default character set utf8 collate utf8_unicode_ci;
 
1326
insert into t1 values ('あいうえおかきくけこさしすせそ');
 
1327
insert into t1 values ('さしすせそかきくけこあいうえお');
 
1328
select a as uci1 from t1 where a like 'さしすせそかきくけこあいうえお%';
 
1329
uci1
 
1330
さしすせそかきくけこあいうえお
 
1331
select a as uci2 from t1 where a like 'あいうえおかきくけこさしすせそ';
 
1332
uci2
 
1333
あいうえおかきくけこさしすせそ
 
1334
drop table t1;
 
1335
set names utf8;
 
1336
create table t1 (a varchar(30) not null primary key)
 
1337
engine=innodb default character set utf8 collate utf8_bin;
 
1338
insert into t1 values ('あいうえおかきくけこさしすせそ');
 
1339
insert into t1 values ('さしすせそかきくけこあいうえお');
 
1340
select a as bin1 from t1 where a like 'さしすせそかきくけこあいうえお%';
 
1341
bin1
 
1342
さしすせそかきくけこあいうえお
 
1343
select a as bin2 from t1 where a like 'あいうえおかきくけこさしすせそ';
 
1344
bin2
 
1345
あいうえおかきくけこさしすせそ
 
1346
drop table t1;
 
1347
SET NAMES utf8;
 
1348
CREATE TABLE t1 (id int PRIMARY KEY,
 
1349
a varchar(16) collate utf8_unicode_ci NOT NULL default '',
 
1350
b int,
 
1351
f varchar(128) default 'XXX',
 
1352
INDEX (a(4))
 
1353
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
 
1354
INSERT INTO t1(id, a, b) VALUES
 
1355
(1, 'cccc', 50), (2, 'cccc', 70), (3, 'cccc', 30),
 
1356
(4, 'cccc', 30), (5, 'cccc', 20), (6, 'bbbbbb', 40),
 
1357
(7, 'dddd', 30), (8, 'aaaa', 10), (9, 'aaaa', 50),
 
1358
(10, 'eeeee', 40), (11, 'bbbbbb', 60);
 
1359
SELECT id, a, b FROM t1;
 
1360
id      a       b
 
1361
1       cccc    50
 
1362
2       cccc    70
 
1363
3       cccc    30
 
1364
4       cccc    30
 
1365
5       cccc    20
 
1366
6       bbbbbb  40
 
1367
7       dddd    30
 
1368
8       aaaa    10
 
1369
9       aaaa    50
 
1370
10      eeeee   40
 
1371
11      bbbbbb  60
 
1372
SELECT id, a, b FROM t1 WHERE a BETWEEN 'aaaa' AND 'bbbbbb';
 
1373
id      a       b
 
1374
8       aaaa    10
 
1375
9       aaaa    50
 
1376
6       bbbbbb  40
 
1377
11      bbbbbb  60
 
1378
SELECT id, a FROM t1 WHERE a='bbbbbb';
 
1379
id      a
 
1380
6       bbbbbb
 
1381
11      bbbbbb
 
1382
SELECT id, a FROM t1 WHERE a='bbbbbb' ORDER BY b;
 
1383
id      a
 
1384
6       bbbbbb
 
1385
11      bbbbbb
 
1386
DROP TABLE t1;
 
1387
SET NAMES utf8;
 
1388
CREATE TABLE t1 (
 
1389
a CHAR(13) DEFAULT '',
 
1390
INDEX(a)
 
1391
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
 
1392
INSERT INTO t1 VALUES 
 
1393
('Käli Käli 2-4'), ('Käli Käli 2-4'),
 
1394
('Käli Käli 2+4'), ('Käli Käli 2+4'),
 
1395
('Käli Käli 2-6'), ('Käli Käli 2-6');
 
1396
INSERT INTO t1 SELECT * FROM t1;
 
1397
CREATE TABLE t2 (
 
1398
a CHAR(13) DEFAULT '',
 
1399
INDEX(a)
 
1400
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
1401
INSERT INTO t2 VALUES
 
1402
('Kali Kali 2-4'), ('Kali Kali 2-4'),
 
1403
('Kali Kali 2+4'), ('Kali Kali 2+4'),
 
1404
('Kali Kali 2-6'), ('Kali Kali 2-6');
 
1405
INSERT INTO t2 SELECT * FROM t2;
 
1406
SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4';
 
1407
a
 
1408
Käli Käli 2+4
 
1409
Käli Käli 2+4
 
1410
Käli Käli 2+4
 
1411
Käli Käli 2+4
 
1412
SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4';
 
1413
a
 
1414
Kali Kali 2+4
 
1415
Kali Kali 2+4
 
1416
Kali Kali 2+4
 
1417
Kali Kali 2+4
 
1418
EXPLAIN SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4';
 
1419
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1420
1       SIMPLE  t1      range   a       a       53      NULL    4       Using where; Using index
 
1421
EXPLAIN SELECT a FROM t1 WHERE a = 'Käli Käli 2+4';
 
1422
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1423
1       SIMPLE  t1      ref     a       a       53      const   4       Using where; Using index
 
1424
EXPLAIN SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4';
 
1425
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1426
1       SIMPLE  t2      range   a       a       14      NULL    4       Using where; Using index
 
1427
EXPLAIN SELECT a FROM t2 WHERE a = 'Kali Kali 2+4';
 
1428
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1429
1       SIMPLE  t2      ref     a       a       14      const   4       Using where; Using index
 
1430
DROP TABLE t1,t2;
 
1431
CREATE TABLE t1 (
 
1432
a char(255) DEFAULT '', 
 
1433
KEY(a(10))
 
1434
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
 
1435
INSERT INTO t1 VALUES ('Käli Käli 2-4');
 
1436
SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%';
 
1437
a
 
1438
Käli Käli 2-4
 
1439
INSERT INTO t1 VALUES ('Käli Käli 2-4');
 
1440
SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%';
 
1441
a
 
1442
Käli Käli 2-4
 
1443
Käli Käli 2-4
 
1444
DROP TABLE t1;
 
1445
CREATE TABLE t1 (
 
1446
a char(255) DEFAULT ''
 
1447
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
 
1448
INSERT INTO t1 VALUES ('Käli Käli 2-4');
 
1449
INSERT INTO t1 VALUES ('Käli Käli 2-4');
 
1450
SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%';
 
1451
a
 
1452
Käli Käli 2-4
 
1453
Käli Käli 2-4
 
1454
ALTER TABLE t1 ADD KEY (a(10));
 
1455
SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%';
 
1456
a
 
1457
Käli Käli 2-4
 
1458
Käli Käli 2-4
 
1459
DROP TABLE t1;
 
1460
SET NAMES latin2;
 
1461
CREATE TABLE t1 (
 
1462
id int(11) NOT NULL default '0',
 
1463
tid int(11) NOT NULL default '0',
 
1464
val text NOT NULL,
 
1465
INDEX idx(tid, val(10))
 
1466
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
1467
INSERT INTO t1 VALUES
 
1468
(40988,72,'VOLN� ADSL'),(41009,72,'VOLN� ADSL'),
 
1469
(41032,72,'VOLN� ADSL'),(41038,72,'VOLN� ADSL'),
 
1470
(41063,72,'VOLN� ADSL'),(41537,72,'VOLN� ADSL Office'),
 
1471
(42141,72,'VOLN� ADSL'),(42565,72,'VOLN� ADSL Combi'),
 
1472
(42749,72,'VOLN� ADSL'),(44205,72,'VOLN� ADSL');
 
1473
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL';
 
1474
id      tid     val
 
1475
40988   72      VOLN� ADSL
 
1476
41009   72      VOLN� ADSL
 
1477
41032   72      VOLN� ADSL
 
1478
41038   72      VOLN� ADSL
 
1479
41063   72      VOLN� ADSL
 
1480
42141   72      VOLN� ADSL
 
1481
42749   72      VOLN� ADSL
 
1482
44205   72      VOLN� ADSL
 
1483
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN� ADSL';
 
1484
id      tid     val
 
1485
40988   72      VOLN� ADSL
 
1486
41009   72      VOLN� ADSL
 
1487
41032   72      VOLN� ADSL
 
1488
41038   72      VOLN� ADSL
 
1489
41063   72      VOLN� ADSL
 
1490
42141   72      VOLN� ADSL
 
1491
42749   72      VOLN� ADSL
 
1492
44205   72      VOLN� ADSL
 
1493
SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLN� ADSL';
 
1494
id      tid     val
 
1495
40988   72      VOLN� ADSL
 
1496
41009   72      VOLN� ADSL
 
1497
41032   72      VOLN� ADSL
 
1498
41038   72      VOLN� ADSL
 
1499
41063   72      VOLN� ADSL
 
1500
42141   72      VOLN� ADSL
 
1501
42749   72      VOLN� ADSL
 
1502
44205   72      VOLN� ADSL
 
1503
ALTER TABLE t1 DROP KEY idx;
 
1504
ALTER TABLE t1 ADD KEY idx (tid,val(11));
 
1505
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN� ADSL';
 
1506
id      tid     val
 
1507
40988   72      VOLN� ADSL
 
1508
41009   72      VOLN� ADSL
 
1509
41032   72      VOLN� ADSL
 
1510
41038   72      VOLN� ADSL
 
1511
41063   72      VOLN� ADSL
 
1512
42141   72      VOLN� ADSL
 
1513
42749   72      VOLN� ADSL
 
1514
44205   72      VOLN� ADSL
 
1515
DROP TABLE t1;
 
1516
create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '')
 
1517
default charset=utf8 collate=utf8_unicode_ci;
 
1518
insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65'));
 
1519
explain select distinct a from t1;
 
1520
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1521
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       Using temporary
 
1522
select distinct a from t1;
 
1523
a
 
1524
e
 
1525
explain select a from t1 group by a;
 
1526
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1527
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       Using temporary; Using filesort
 
1528
select a from t1 group by a;
 
1529
a
 
1530
e
 
1531
drop table t1;
 
1532
create table t1(a char(10)) default charset utf8;
 
1533
insert into t1 values ('123'), ('456');
 
1534
explain
 
1535
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
 
1536
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1537
1       SIMPLE  Y       ALL     NULL    NULL    NULL    NULL    2       Using temporary; Using filesort
 
1538
1       SIMPLE  Z       ALL     NULL    NULL    NULL    NULL    2       Using where; Using join buffer
 
1539
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
 
1540
substr(Z.a,-1)  a
 
1541
3       123
 
1542
6       456
 
1543
drop table t1;
 
1544
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
 
1545
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
 
1546
SELECT id FROM t1;
 
1547
id
 
1548
xxx
 
1549
aa
 
1550
yyy
 
1551
aa
 
1552
SELECT DISTINCT id FROM t1;
 
1553
id
 
1554
xxx
 
1555
aa
 
1556
yyy
 
1557
SELECT DISTINCT id FROM t1 ORDER BY id;
 
1558
id
 
1559
aa
 
1560
xxx
 
1561
yyy
 
1562
DROP TABLE t1;
 
1563
create table t1 (
 
1564
a varchar(26) not null
 
1565
) default character set utf8;
 
1566
insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz');
 
1567
select * from t1;
 
1568
a
 
1569
abcdefghijklmnopqrstuvwxyz
 
1570
alter table t1 change a a varchar(20) character set utf8 not null;
 
1571
Warnings:
 
1572
Warning 1265    Data truncated for column 'a' at row 1
 
1573
select * from t1;
 
1574
a
 
1575
abcdefghijklmnopqrst
 
1576
alter table t1 change a a char(15) character set utf8 not null;
 
1577
Warnings:
 
1578
Warning 1265    Data truncated for column 'a' at row 1
 
1579
select * from t1;
 
1580
a
 
1581
abcdefghijklmno
 
1582
alter table t1 change a a char(10) character set utf8 not null;
 
1583
Warnings:
 
1584
Warning 1265    Data truncated for column 'a' at row 1
 
1585
select * from t1;
 
1586
a
 
1587
abcdefghij
 
1588
alter table t1 change a a varchar(5) character set utf8 not null;
 
1589
Warnings:
 
1590
Warning 1265    Data truncated for column 'a' at row 1
 
1591
select * from t1;
 
1592
a
 
1593
abcde
 
1594
drop table t1;
 
1595
create table t1 (
 
1596
a varchar(4000) not null
 
1597
) default character set utf8;
 
1598
insert into t1 values (repeat('a',4000));
 
1599
alter table t1 change a a varchar(3000) character set utf8 not null;
 
1600
Warnings:
 
1601
Warning 1265    Data truncated for column 'a' at row 1
 
1602
select length(a) from t1;
 
1603
length(a)
 
1604
3000
 
1605
drop table t1;
 
1606
set names utf8;
 
1607
select hex(char(1 using utf8));
 
1608
hex(char(1 using utf8))
 
1609
01
 
1610
select char(0xd1,0x8f using utf8);
 
1611
char(0xd1,0x8f using utf8)
 
1612
я
 
1613
select char(0xd18f using utf8);
 
1614
char(0xd18f using utf8)
 
1615
я
 
1616
select char(53647 using utf8);
 
1617
char(53647 using utf8)
 
1618
я
 
1619
select char(0xff,0x8f using utf8);
 
1620
char(0xff,0x8f using utf8)
 
1621
 
 
1622
Warnings:
 
1623
Warning 1300    Invalid utf8 character string: 'FF8F'
 
1624
select convert(char(0xff,0x8f) using utf8);
 
1625
convert(char(0xff,0x8f) using utf8)
 
1626
 
 
1627
Warnings:
 
1628
Warning 1300    Invalid utf8 character string: 'FF8F'
 
1629
set sql_mode=traditional;
 
1630
select char(0xff,0x8f using utf8);
 
1631
char(0xff,0x8f using utf8)
 
1632
NULL
 
1633
Warnings:
 
1634
Error   1300    Invalid utf8 character string: 'FF8F'
 
1635
select char(195 using utf8);
 
1636
char(195 using utf8)
 
1637
NULL
 
1638
Warnings:
 
1639
Error   1300    Invalid utf8 character string: 'C3'
 
1640
select char(196 using utf8);
 
1641
char(196 using utf8)
 
1642
NULL
 
1643
Warnings:
 
1644
Error   1300    Invalid utf8 character string: 'C4'
 
1645
select char(2557 using utf8);
 
1646
char(2557 using utf8)
 
1647
NULL
 
1648
Warnings:
 
1649
Error   1300    Invalid utf8 character string: 'FD'
 
1650
select convert(char(0xff,0x8f) using utf8);
 
1651
convert(char(0xff,0x8f) using utf8)
 
1652
NULL
 
1653
Warnings:
 
1654
Error   1300    Invalid utf8 character string: 'FF8F'
 
1655
select hex(convert(char(2557 using latin1) using utf8));
 
1656
hex(convert(char(2557 using latin1) using utf8))
 
1657
09C3BD
 
1658
select hex(char(195));
 
1659
hex(char(195))
 
1660
C3
 
1661
select hex(char(196));
 
1662
hex(char(196))
 
1663
C4
 
1664
select hex(char(2557));
 
1665
hex(char(2557))
 
1666
09FD
 
1667
set names utf8;
 
1668
create table t1 (a char(1)) default character set utf8;
 
1669
create table t2 (a char(1)) default character set utf8;
 
1670
insert into t1 values('a'),('a'),(0xE38182),(0xE38182);
 
1671
insert into t1 values('i'),('i'),(0xE38184),(0xE38184);
 
1672
select * from t1 union distinct select * from t2;
 
1673
a
 
1674
a
 
1675
 
1676
i
 
1677
 
1678
drop table t1,t2;
 
1679
set names utf8;
 
1680
create table t1 (a char(10), b varchar(10));
 
1681
insert into t1 values ('bar','kostja');
 
1682
insert into t1 values ('kostja','bar');
 
1683
prepare my_stmt from "select * from t1 where a=?";
 
1684
set @a:='bar';
 
1685
execute my_stmt using @a;
 
1686
a       b
 
1687
bar     kostja
 
1688
set @a:='kostja';
 
1689
execute my_stmt using @a;
 
1690
a       b
 
1691
kostja  bar
 
1692
set @a:=null;
 
1693
execute my_stmt using @a;
 
1694
a       b
 
1695
drop table if exists t1;
 
1696
drop table if exists t1;
 
1697
drop view if exists v1, v2;
 
1698
set names utf8;
 
1699
create table t1(col1 varchar(12) character set utf8 collate utf8_unicode_ci);
 
1700
insert into t1 values('t1_val');
 
1701
create view v1 as select 'v1_val' as col1;
 
1702
select coercibility(col1), collation(col1) from v1;
 
1703
coercibility(col1)      collation(col1)
 
1704
4       utf8_general_ci
 
1705
create view v2 as select col1 from v1 union select col1 from t1;
 
1706
select coercibility(col1), collation(col1)from v2;
 
1707
coercibility(col1)      collation(col1)
 
1708
2       utf8_unicode_ci
 
1709
2       utf8_unicode_ci
 
1710
drop view v1, v2;
 
1711
create view v1 as select 'v1_val' collate utf8_swedish_ci as col1;
 
1712
select coercibility(col1), collation(col1) from v1;
 
1713
coercibility(col1)      collation(col1)
 
1714
0       utf8_swedish_ci
 
1715
create view v2 as select col1 from v1 union select col1 from t1;
 
1716
select coercibility(col1), collation(col1) from v2;
 
1717
coercibility(col1)      collation(col1)
 
1718
0       utf8_swedish_ci
 
1719
0       utf8_swedish_ci
 
1720
drop view v1, v2;
 
1721
drop table t1;
 
1722
set names utf8;
 
1723
create table t1 (a varchar(10) character set latin1, b int);
 
1724
insert into t1 values ('a',1);
 
1725
select concat(a, if(b>10, N'x', N'y')) from t1;
 
1726
concat(a, if(b>10, N'x', N'y'))
 
1727
ay
 
1728
select concat(a, if(b>10, N'æ', N'ß')) from t1;
 
1729
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
 
1730
drop table t1;
 
1731
set names utf8;
 
1732
create table t1 (a varchar(10) character set latin1, b int);
 
1733
insert into t1 values ('a',1);
 
1734
select concat(a, if(b>10, _utf8'x', _utf8'y')) from t1;
 
1735
concat(a, if(b>10, _utf8'x', _utf8'y'))
 
1736
ay
 
1737
select concat(a, if(b>10, _utf8'æ', _utf8'ß')) from t1;
 
1738
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
 
1739
drop table t1;
 
1740
set names utf8;
 
1741
create table t1 (a varchar(10) character set latin1, b int);
 
1742
insert into t1 values ('a',1);
 
1743
select concat(a, if(b>10, _utf8 0x78, _utf8 0x79)) from t1;
 
1744
concat(a, if(b>10, _utf8 0x78, _utf8 0x79))
 
1745
ay
 
1746
select concat(a, if(b>10, _utf8 0xC3A6, _utf8 0xC3AF)) from t1;
 
1747
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
 
1748
drop table t1;
 
1749
set names utf8;
 
1750
create table t1 (a varchar(10) character set latin1, b int);
 
1751
insert into t1 values ('a',1);
 
1752
select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
 
1753
concat(a, if(b>10, 'x' 'x', 'y' 'y'))
 
1754
ayy
 
1755
select concat(a, if(b>10, 'x' 'æ', 'y' 'ß')) from t1;
 
1756
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'concat'
 
1757
drop table t1;
 
1758
CREATE TABLE t1 (
 
1759
colA int(11) NOT NULL,
 
1760
colB varchar(255) character set utf8 NOT NULL,
 
1761
PRIMARY KEY  (colA)
 
1762
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
1763
INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar');
 
1764
CREATE TABLE t2 (
 
1765
colA int(11) NOT NULL,
 
1766
colB varchar(255) character set utf8 NOT NULL,
 
1767
KEY bad  (colA,colB(3))
 
1768
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
1769
INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
 
1770
SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
 
1771
WHERE t1.colA < 3;
 
1772
colA    colB    colA    colB
 
1773
1       foo     1       foo
 
1774
2       foo bar 2       foo bar
 
1775
DROP TABLE t1, t2;
 
1776
SELECT 'н1234567890' UNION SELECT _binary '1';
 
1777
н1234567890
 
1778
н1234567890
 
1779
1
 
1780
SELECT 'н1234567890' UNION SELECT 1;
 
1781
н1234567890
 
1782
н1234567890
 
1783
1
 
1784
SELECT '1' UNION SELECT 'н1234567890';
 
1785
1
 
1786
1
 
1787
н1234567890
 
1788
SELECT 1 UNION SELECT 'н1234567890';
 
1789
1
 
1790
1
 
1791
н1234567890
 
1792
CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8;
 
1793
CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT);
 
1794
INSERT INTO t1 (c) VALUES ('н1234567890');
 
1795
INSERT INTO t2 (b, i) VALUES ('1', 1);
 
1796
SELECT c FROM t1 UNION SELECT b FROM t2;
 
1797
c
 
1798
н1234567890
 
1799
1
 
1800
SELECT c FROM t1 UNION SELECT i FROM t2;
 
1801
c
 
1802
н1234567890
 
1803
1
 
1804
SELECT b FROM t2 UNION SELECT c FROM t1;
 
1805
b
 
1806
1
 
1807
н1234567890
 
1808
SELECT i FROM t2 UNION SELECT c FROM t1;
 
1809
i
 
1810
1
 
1811
н1234567890
 
1812
DROP TABLE t1, t2;
 
1813
set sql_mode=traditional;
 
1814
select hex(char(0xFF using utf8));
 
1815
hex(char(0xFF using utf8))
 
1816
NULL
 
1817
Warnings:
 
1818
Error   1300    Invalid utf8 character string: 'FF'
 
1819
select hex(convert(0xFF using utf8));
 
1820
hex(convert(0xFF using utf8))
 
1821
NULL
 
1822
Warnings:
 
1823
Error   1300    Invalid utf8 character string: 'FF'
 
1824
select hex(_utf8 0x616263FF);
 
1825
ERROR HY000: Invalid utf8 character string: 'FF'
 
1826
select hex(_utf8 X'616263FF');
 
1827
ERROR HY000: Invalid utf8 character string: 'FF'
 
1828
select hex(_utf8 B'001111111111');
 
1829
ERROR HY000: Invalid utf8 character string: 'FF'
 
1830
select (_utf8 X'616263FF');
 
1831
ERROR HY000: Invalid utf8 character string: 'FF'
 
1832
set sql_mode=default;
 
1833
select hex(char(0xFF using utf8));
 
1834
hex(char(0xFF using utf8))
 
1835
 
 
1836
Warnings:
 
1837
Warning 1300    Invalid utf8 character string: 'FF'
 
1838
select hex(convert(0xFF using utf8));
 
1839
hex(convert(0xFF using utf8))
 
1840
 
 
1841
Warnings:
 
1842
Warning 1300    Invalid utf8 character string: 'FF'
 
1843
select hex(_utf8 0x616263FF);
 
1844
ERROR HY000: Invalid utf8 character string: 'FF'
 
1845
select hex(_utf8 X'616263FF');
 
1846
ERROR HY000: Invalid utf8 character string: 'FF'
 
1847
select hex(_utf8 B'001111111111');
 
1848
ERROR HY000: Invalid utf8 character string: 'FF'
 
1849
select (_utf8 X'616263FF');
 
1850
ERROR HY000: Invalid utf8 character string: 'FF'
 
1851
DROP TABLE IF EXISTS t1;
 
1852
CREATE TABLE t1 (
 
1853
predicted_order int NOT NULL,
 
1854
utf8_encoding VARCHAR(10) NOT NULL
 
1855
) CHARACTER SET utf8;
 
1856
INSERT INTO t1 VALUES (19, x'E0B696'), (30, x'E0B69AE0B798'), (61, x'E0B6AF'), (93, x'E0B799'), (52, x'E0B6A6'), (73, x'E0B6BBE0B78AE2808D'), (3, x'E0B686'), (56, x'E0B6AA'), (55, x'E0B6A9'), (70, x'E0B6B9'), (94, x'E0B79A'), (80, x'E0B785'), (25, x'E0B69AE0B791'), (48, x'E0B6A2'), (13, x'E0B690'), (86, x'E0B793'), (91, x'E0B79F'), (81, x'E0B786'), (79, x'E0B784'), (14, x'E0B691'), (99, x'E0B78A'), (8, x'E0B68B'), (68, x'E0B6B7'), (22, x'E0B69A'), (16, x'E0B693'), (33, x'E0B69AE0B7B3'), (38, x'E0B69AE0B79D'), (21, x'E0B683'), (11, x'E0B68E'), (77, x'E0B782'), (40, x'E0B69AE0B78A'), (101, x'E0B78AE2808DE0B6BB'), (35, x'E0B69AE0B79A'), (1, x'E0B7B4'), (9, x'E0B68C'), (96, x'E0B79C'), (6, x'E0B689'), (95, x'E0B79B'), (88, x'E0B796'), (64, x'E0B6B3'), (26, x'E0B69AE0B792'), (82, x'E0B78F'), (28, x'E0B69AE0B794'), (39, x'E0B69AE0B79E'), (97, x'E0B79D'), (2, x'E0B685'), (75, x'E0B780'), (34, x'E0B69AE0B799'), (69, x'E0B6B8'), (83, x'E0B790'), (18, x'E0B695'), (90, x'E0B7B2'), (17, x'E0B694'), (72, x'E0B6BB'), (66, x'E0B6B5'), (59, x'E0B6AD'), (44, x'E0B69E'), (15, x'E0B692'), (23, x'E0B69AE0B78F'), (65, x'E0B6B4'), (42, x'E0B69C'), (63, x'E0B6B1'), (85, x'E0B792'), (47, x'E0B6A1'), (49, x'E0B6A3'), (92, x'E0B7B3'), (78, x'E0B783'), (36, x'E0B69AE0B79B'), (4, x'E0B687'), (24, x'E0B69AE0B790'), (87, x'E0B794'), (37, x'E0B69AE0B79C'), (32, x'E0B69AE0B79F'), (29, x'E0B69AE0B796'), (43, x'E0B69D'), (62, x'E0B6B0'), (100, x'E0B78AE2808DE0B6BA'), (60, x'E0B6AE'), (45, x'E0B69F'), (12, x'E0B68F'), (46, x'E0B6A0'), (50, x'E0B6A5'), (51, x'E0B6A4'), (5, x'E0B688'), (76, x'E0B781'), (89, x'E0B798'), (74, x'E0B6BD'), (10, x'E0B68D'), (57, x'E0B6AB'), (71, x'E0B6BA'), (58, x'E0B6AC'), (27, x'E0B69AE0B793'), (54, x'E0B6A8'), (84, x'E0B791'), (31, x'E0B69AE0B7B2'), (98, x'E0B79E'), (53, x'E0B6A7'), (41, x'E0B69B'), (67, x'E0B6B6'), (7, x'E0B68A'), (20, x'E0B682');
 
1857
SELECT predicted_order, hex(utf8_encoding) FROM t1 ORDER BY utf8_encoding COLLATE utf8_sinhala_ci;
 
1858
predicted_order hex(utf8_encoding)
 
1859
1       E0B7B4
 
1860
2       E0B685
 
1861
3       E0B686
 
1862
4       E0B687
 
1863
5       E0B688
 
1864
6       E0B689
 
1865
7       E0B68A
 
1866
8       E0B68B
 
1867
9       E0B68C
 
1868
10      E0B68D
 
1869
11      E0B68E
 
1870
12      E0B68F
 
1871
13      E0B690
 
1872
14      E0B691
 
1873
15      E0B692
 
1874
16      E0B693
 
1875
17      E0B694
 
1876
18      E0B695
 
1877
19      E0B696
 
1878
20      E0B682
 
1879
21      E0B683
 
1880
22      E0B69A
 
1881
23      E0B69AE0B78F
 
1882
24      E0B69AE0B790
 
1883
25      E0B69AE0B791
 
1884
26      E0B69AE0B792
 
1885
27      E0B69AE0B793
 
1886
28      E0B69AE0B794
 
1887
29      E0B69AE0B796
 
1888
30      E0B69AE0B798
 
1889
31      E0B69AE0B7B2
 
1890
32      E0B69AE0B79F
 
1891
33      E0B69AE0B7B3
 
1892
34      E0B69AE0B799
 
1893
35      E0B69AE0B79A
 
1894
36      E0B69AE0B79B
 
1895
37      E0B69AE0B79C
 
1896
38      E0B69AE0B79D
 
1897
39      E0B69AE0B79E
 
1898
40      E0B69AE0B78A
 
1899
41      E0B69B
 
1900
42      E0B69C
 
1901
43      E0B69D
 
1902
44      E0B69E
 
1903
45      E0B69F
 
1904
46      E0B6A0
 
1905
47      E0B6A1
 
1906
48      E0B6A2
 
1907
49      E0B6A3
 
1908
50      E0B6A5
 
1909
51      E0B6A4
 
1910
52      E0B6A6
 
1911
53      E0B6A7
 
1912
54      E0B6A8
 
1913
55      E0B6A9
 
1914
56      E0B6AA
 
1915
57      E0B6AB
 
1916
58      E0B6AC
 
1917
59      E0B6AD
 
1918
60      E0B6AE
 
1919
61      E0B6AF
 
1920
62      E0B6B0
 
1921
63      E0B6B1
 
1922
64      E0B6B3
 
1923
65      E0B6B4
 
1924
66      E0B6B5
 
1925
67      E0B6B6
 
1926
68      E0B6B7
 
1927
69      E0B6B8
 
1928
70      E0B6B9
 
1929
71      E0B6BA
 
1930
72      E0B6BB
 
1931
73      E0B6BBE0B78AE2808D
 
1932
74      E0B6BD
 
1933
75      E0B780
 
1934
76      E0B781
 
1935
77      E0B782
 
1936
78      E0B783
 
1937
79      E0B784
 
1938
80      E0B785
 
1939
81      E0B786
 
1940
82      E0B78F
 
1941
83      E0B790
 
1942
84      E0B791
 
1943
85      E0B792
 
1944
86      E0B793
 
1945
87      E0B794
 
1946
88      E0B796
 
1947
89      E0B798
 
1948
90      E0B7B2
 
1949
91      E0B79F
 
1950
92      E0B7B3
 
1951
93      E0B799
 
1952
94      E0B79A
 
1953
95      E0B79B
 
1954
96      E0B79C
 
1955
97      E0B79D
 
1956
98      E0B79E
 
1957
99      E0B78A
 
1958
100     E0B78AE2808DE0B6BA
 
1959
101     E0B78AE2808DE0B6BB
 
1960
DROP TABLE t1;
 
1961
End of 5.1 tests
 
1962
set names utf8;
 
1963
select @@collation_connection;
 
1964
@@collation_connection
 
1965
utf8_general_ci
 
1966
select hex(weight_string('a'));
 
1967
hex(weight_string('a'))
 
1968
0041
 
1969
select hex(weight_string('A'));
 
1970
hex(weight_string('A'))
 
1971
0041
 
1972
select hex(weight_string('abc'));
 
1973
hex(weight_string('abc'))
 
1974
004100420043
 
1975
select hex(weight_string('abc' as char(2)));
 
1976
hex(weight_string('abc' as char(2)))
 
1977
00410042
 
1978
select hex(weight_string('abc' as char(3)));
 
1979
hex(weight_string('abc' as char(3)))
 
1980
004100420043
 
1981
select hex(weight_string('abc' as char(5)));
 
1982
hex(weight_string('abc' as char(5)))
 
1983
00410042004300200020
 
1984
select @@collation_connection;
 
1985
@@collation_connection
 
1986
utf8_general_ci
 
1987
select hex(weight_string('a' LEVEL 1));
 
1988
hex(weight_string('a' LEVEL 1))
 
1989
0041
 
1990
select hex(weight_string('A' LEVEL 1));
 
1991
hex(weight_string('A' LEVEL 1))
 
1992
0041
 
1993
select hex(weight_string('abc' LEVEL 1));
 
1994
hex(weight_string('abc' LEVEL 1))
 
1995
004100420043
 
1996
select hex(weight_string('abc' as char(2) LEVEL 1));
 
1997
hex(weight_string('abc' as char(2) LEVEL 1))
 
1998
00410042
 
1999
select hex(weight_string('abc' as char(3) LEVEL 1));
 
2000
hex(weight_string('abc' as char(3) LEVEL 1))
 
2001
004100420043
 
2002
select hex(weight_string('abc' as char(5) LEVEL 1));
 
2003
hex(weight_string('abc' as char(5) LEVEL 1))
 
2004
00410042004300200020
 
2005
select hex(weight_string('abc' as char(5) LEVEL 1 REVERSE));
 
2006
hex(weight_string('abc' as char(5) LEVEL 1 REVERSE))
 
2007
20002000430042004100
 
2008
select hex(weight_string('abc' as char(5) LEVEL 1 DESC));
 
2009
hex(weight_string('abc' as char(5) LEVEL 1 DESC))
 
2010
FFBEFFBDFFBCFFDFFFDF
 
2011
select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE));
 
2012
hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE))
 
2013
DFFFDFFFBCFFBDFFBEFF
 
2014
set @@collation_connection=utf8_bin;
 
2015
select @@collation_connection;
 
2016
@@collation_connection
 
2017
utf8_bin
 
2018
select hex(weight_string('a'));
 
2019
hex(weight_string('a'))
 
2020
0061
 
2021
select hex(weight_string('A'));
 
2022
hex(weight_string('A'))
 
2023
0041
 
2024
select hex(weight_string('abc'));
 
2025
hex(weight_string('abc'))
 
2026
006100620063
 
2027
select hex(weight_string('abc' as char(2)));
 
2028
hex(weight_string('abc' as char(2)))
 
2029
00610062
 
2030
select hex(weight_string('abc' as char(3)));
 
2031
hex(weight_string('abc' as char(3)))
 
2032
006100620063
 
2033
select hex(weight_string('abc' as char(5)));
 
2034
hex(weight_string('abc' as char(5)))
 
2035
00610062006300200020
 
2036
select @@collation_connection;
 
2037
@@collation_connection
 
2038
utf8_bin
 
2039
select hex(weight_string('a' LEVEL 1));
 
2040
hex(weight_string('a' LEVEL 1))
 
2041
0061
 
2042
select hex(weight_string('A' LEVEL 1));
 
2043
hex(weight_string('A' LEVEL 1))
 
2044
0041
 
2045
select hex(weight_string('abc' LEVEL 1));
 
2046
hex(weight_string('abc' LEVEL 1))
 
2047
006100620063
 
2048
select hex(weight_string('abc' as char(2) LEVEL 1));
 
2049
hex(weight_string('abc' as char(2) LEVEL 1))
 
2050
00610062
 
2051
select hex(weight_string('abc' as char(3) LEVEL 1));
 
2052
hex(weight_string('abc' as char(3) LEVEL 1))
 
2053
006100620063
 
2054
select hex(weight_string('abc' as char(5) LEVEL 1));
 
2055
hex(weight_string('abc' as char(5) LEVEL 1))
 
2056
00610062006300200020
 
2057
select hex(weight_string('abc' as char(5) LEVEL 1 REVERSE));
 
2058
hex(weight_string('abc' as char(5) LEVEL 1 REVERSE))
 
2059
20002000630062006100
 
2060
select hex(weight_string('abc' as char(5) LEVEL 1 DESC));
 
2061
hex(weight_string('abc' as char(5) LEVEL 1 DESC))
 
2062
FF9EFF9DFF9CFFDFFFDF
 
2063
select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE));
 
2064
hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE))
 
2065
DFFFDFFF9CFF9DFF9EFF
 
2066
set max_sort_length=5;
 
2067
select @@max_sort_length;
 
2068
@@max_sort_length
 
2069
5
 
2070
create table t1 (a varchar(128) character set utf8 collate utf8_general_ci);
 
2071
insert into t1 values ('a'),('b'),('c');
 
2072
select * from t1 order by a;
 
2073
a
 
2074
a
 
2075
b
 
2076
c
 
2077
alter table t1 modify a varchar(128) character set utf8 collate utf8_bin;
 
2078
select * from t1 order by a;
 
2079
a
 
2080
a
 
2081
b
 
2082
c
 
2083
drop table t1;
 
2084
set max_sort_length=default;
 
2085
DROP TABLE IF EXISTS t1;
 
2086
CREATE TABLE t1 (
 
2087
predicted_order int NOT NULL,
 
2088
utf8_encoding VARCHAR(10) NOT NULL
 
2089
) CHARACTER SET utf8;
 
2090
INSERT INTO t1 VALUES (19, x'E0B696'), (30, x'E0B69AE0B798'), (61, x'E0B6AF'), (93, x'E0B799'), (52, x'E0B6A6'), (73, x'E0B6BBE0B78AE2808D'), (3, x'E0B686'), (56, x'E0B6AA'), (55, x'E0B6A9'), (70, x'E0B6B9'), (94, x'E0B79A'), (80, x'E0B785'), (25, x'E0B69AE0B791'), (48, x'E0B6A2'), (13, x'E0B690'), (86, x'E0B793'), (91, x'E0B79F'), (81, x'E0B786'), (79, x'E0B784'), (14, x'E0B691'), (99, x'E0B78A'), (8, x'E0B68B'), (68, x'E0B6B7'), (22, x'E0B69A'), (16, x'E0B693'), (33, x'E0B69AE0B7B3'), (38, x'E0B69AE0B79D'), (21, x'E0B683'), (11, x'E0B68E'), (77, x'E0B782'), (40, x'E0B69AE0B78A'), (101, x'E0B78AE2808DE0B6BB'), (35, x'E0B69AE0B79A'), (1, x'E0B7B4'), (9, x'E0B68C'), (96, x'E0B79C'), (6, x'E0B689'), (95, x'E0B79B'), (88, x'E0B796'), (64, x'E0B6B3'), (26, x'E0B69AE0B792'), (82, x'E0B78F'), (28, x'E0B69AE0B794'), (39, x'E0B69AE0B79E'), (97, x'E0B79D'), (2, x'E0B685'), (75, x'E0B780'), (34, x'E0B69AE0B799'), (69, x'E0B6B8'), (83, x'E0B790'), (18, x'E0B695'), (90, x'E0B7B2'), (17, x'E0B694'), (72, x'E0B6BB'), (66, x'E0B6B5'), (59, x'E0B6AD'), (44, x'E0B69E'), (15, x'E0B692'), (23, x'E0B69AE0B78F'), (65, x'E0B6B4'), (42, x'E0B69C'), (63, x'E0B6B1'), (85, x'E0B792'), (47, x'E0B6A1'), (49, x'E0B6A3'), (92, x'E0B7B3'), (78, x'E0B783'), (36, x'E0B69AE0B79B'), (4, x'E0B687'), (24, x'E0B69AE0B790'), (87, x'E0B794'), (37, x'E0B69AE0B79C'), (32, x'E0B69AE0B79F'), (29, x'E0B69AE0B796'), (43, x'E0B69D'), (62, x'E0B6B0'), (100, x'E0B78AE2808DE0B6BA'), (60, x'E0B6AE'), (45, x'E0B69F'), (12, x'E0B68F'), (46, x'E0B6A0'), (50, x'E0B6A5'), (51, x'E0B6A4'), (5, x'E0B688'), (76, x'E0B781'), (89, x'E0B798'), (74, x'E0B6BD'), (10, x'E0B68D'), (57, x'E0B6AB'), (71, x'E0B6BA'), (58, x'E0B6AC'), (27, x'E0B69AE0B793'), (54, x'E0B6A8'), (84, x'E0B791'), (31, x'E0B69AE0B7B2'), (98, x'E0B79E'), (53, x'E0B6A7'), (41, x'E0B69B'), (67, x'E0B6B6'), (7, x'E0B68A'), (20, x'E0B682');
 
2091
SELECT predicted_order, hex(utf8_encoding) FROM t1 ORDER BY utf8_encoding COLLATE utf8_sinhala_ci;
 
2092
predicted_order hex(utf8_encoding)
 
2093
1       E0B7B4
 
2094
2       E0B685
 
2095
3       E0B686
 
2096
4       E0B687
 
2097
5       E0B688
 
2098
6       E0B689
 
2099
7       E0B68A
 
2100
8       E0B68B
 
2101
9       E0B68C
 
2102
10      E0B68D
 
2103
11      E0B68E
 
2104
12      E0B68F
 
2105
13      E0B690
 
2106
14      E0B691
 
2107
15      E0B692
 
2108
16      E0B693
 
2109
17      E0B694
 
2110
18      E0B695
 
2111
19      E0B696
 
2112
20      E0B682
 
2113
21      E0B683
 
2114
22      E0B69A
 
2115
23      E0B69AE0B78F
 
2116
24      E0B69AE0B790
 
2117
25      E0B69AE0B791
 
2118
26      E0B69AE0B792
 
2119
27      E0B69AE0B793
 
2120
28      E0B69AE0B794
 
2121
29      E0B69AE0B796
 
2122
30      E0B69AE0B798
 
2123
31      E0B69AE0B7B2
 
2124
32      E0B69AE0B79F
 
2125
33      E0B69AE0B7B3
 
2126
34      E0B69AE0B799
 
2127
35      E0B69AE0B79A
 
2128
36      E0B69AE0B79B
 
2129
37      E0B69AE0B79C
 
2130
38      E0B69AE0B79D
 
2131
39      E0B69AE0B79E
 
2132
40      E0B69AE0B78A
 
2133
41      E0B69B
 
2134
42      E0B69C
 
2135
43      E0B69D
 
2136
44      E0B69E
 
2137
45      E0B69F
 
2138
46      E0B6A0
 
2139
47      E0B6A1
 
2140
48      E0B6A2
 
2141
49      E0B6A3
 
2142
50      E0B6A5
 
2143
51      E0B6A4
 
2144
52      E0B6A6
 
2145
53      E0B6A7
 
2146
54      E0B6A8
 
2147
55      E0B6A9
 
2148
56      E0B6AA
 
2149
57      E0B6AB
 
2150
58      E0B6AC
 
2151
59      E0B6AD
 
2152
60      E0B6AE
 
2153
61      E0B6AF
 
2154
62      E0B6B0
 
2155
63      E0B6B1
 
2156
64      E0B6B3
 
2157
65      E0B6B4
 
2158
66      E0B6B5
 
2159
67      E0B6B6
 
2160
68      E0B6B7
 
2161
69      E0B6B8
 
2162
70      E0B6B9
 
2163
71      E0B6BA
 
2164
72      E0B6BB
 
2165
73      E0B6BBE0B78AE2808D
 
2166
74      E0B6BD
 
2167
75      E0B780
 
2168
76      E0B781
 
2169
77      E0B782
 
2170
78      E0B783
 
2171
79      E0B784
 
2172
80      E0B785
 
2173
81      E0B786
 
2174
82      E0B78F
 
2175
83      E0B790
 
2176
84      E0B791
 
2177
85      E0B792
 
2178
86      E0B793
 
2179
87      E0B794
 
2180
88      E0B796
 
2181
89      E0B798
 
2182
90      E0B7B2
 
2183
91      E0B79F
 
2184
92      E0B7B3
 
2185
93      E0B799
 
2186
94      E0B79A
 
2187
95      E0B79B
 
2188
96      E0B79C
 
2189
97      E0B79D
 
2190
98      E0B79E
 
2191
99      E0B78A
 
2192
100     E0B78AE2808DE0B6BA
 
2193
101     E0B78AE2808DE0B6BB
 
2194
DROP TABLE t1;
 
2195
CREATE DATABASE `𐀀`;
 
2196
ERROR HY000: Invalid identifier character string: '𐀀'
 
2197
CREATE TABLE `𐀀` (a int);
 
2198
ERROR HY000: Invalid identifier character string: '𐀀'
 
2199
CREATE TABLE test.t1 SELECT '𐀀';
 
2200
ERROR 42000: Incorrect column name '𐀀'
 
2201
CREATE USER `𐀀`;
 
2202
ERROR HY000: Invalid identifier character string: '𐀀'
 
2203
End of tests