~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
Import upstream version 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
DROP TABLE IF EXISTS t1;
 
2
SET @test_character_set= 'ucs2';
 
3
SET @test_collation= 'ucs2_general_ci';
 
4
SET @safe_character_set_server= @@character_set_server;
 
5
SET @safe_collation_server= @@collation_server;
 
6
SET @safe_character_set_client= @@character_set_client;
 
7
SET @safe_character_set_results= @@character_set_results;
 
8
SET character_set_server= @test_character_set;
 
9
SET collation_server= @test_collation;
 
10
CREATE DATABASE d1;
 
11
USE d1;
 
12
CREATE TABLE t1 (c CHAR(10), KEY(c));
 
13
SHOW FULL COLUMNS FROM t1;
 
14
Field   Type    Collation       Null    Key     Default Extra   Privileges      Comment
 
15
c       char(10)        ucs2_general_ci YES     MUL     NULL                    
 
16
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
 
17
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
 
18
want3results
 
19
aaa
 
20
aaaa
 
21
aaaaa
 
22
DROP TABLE t1;
 
23
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
 
24
SHOW FULL COLUMNS FROM t1;
 
25
Field   Type    Collation       Null    Key     Default Extra   Privileges      Comment
 
26
c1      varchar(15)     ucs2_general_ci YES     MUL     NULL                    
 
27
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
 
28
SELECT c1 as want3results from t1 where c1 like 'l%';
 
29
want3results
 
30
location
 
31
loberge
 
32
lotre
 
33
SELECT c1 as want3results from t1 where c1 like 'lo%';
 
34
want3results
 
35
location
 
36
loberge
 
37
lotre
 
38
SELECT c1 as want1result  from t1 where c1 like 'loc%';
 
39
want1result
 
40
location
 
41
SELECT c1 as want1result  from t1 where c1 like 'loca%';
 
42
want1result
 
43
location
 
44
SELECT c1 as want1result  from t1 where c1 like 'locat%';
 
45
want1result
 
46
location
 
47
SELECT c1 as want1result  from t1 where c1 like 'locati%';
 
48
want1result
 
49
location
 
50
SELECT c1 as want1result  from t1 where c1 like 'locatio%';
 
51
want1result
 
52
location
 
53
SELECT c1 as want1result  from t1 where c1 like 'location%';
 
54
want1result
 
55
location
 
56
DROP TABLE t1;
 
57
create table t1 (a set('a') not null);
 
58
insert into t1 values (),();
 
59
Warnings:
 
60
Warning 1364    Field 'a' doesn't have a default value
 
61
select cast(a as char(1)) from t1;
 
62
cast(a as char(1))
 
63
 
 
64
 
 
65
select a sounds like a from t1;
 
66
a sounds like a
 
67
1
 
68
1
 
69
select 1 from t1 order by cast(a as char(1));
 
70
1
 
71
1
 
72
1
 
73
drop table t1;
 
74
set names utf8;
 
75
create table t1 (
 
76
name varchar(10),
 
77
level smallint unsigned);
 
78
show create table t1;
 
79
Table   Create Table
 
80
t1      CREATE TABLE `t1` (
 
81
  `name` varchar(10) DEFAULT NULL,
 
82
  `level` smallint(5) unsigned DEFAULT NULL
 
83
) ENGINE=MyISAM DEFAULT CHARSET=ucs2
 
84
insert into t1 values ('string',1);
 
85
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
 
86
concat(name,space(level))       concat(name, repeat(' ',level))
 
87
string  string 
 
88
drop table t1;
 
89
DROP DATABASE d1;
 
90
USE test;
 
91
SET character_set_server= @safe_character_set_server;
 
92
SET collation_server= @safe_collation_server;
 
93
SET character_set_client= @safe_character_set_client;
 
94
SET character_set_results= @safe_character_set_results;
 
95
SET NAMES latin1;
 
96
SET character_set_connection=ucs2;
 
97
select 'a' = 'a', 'a' = 'a ', 'a ' = 'a';
 
98
'a' = 'a'       'a' = 'a '      'a ' = 'a'
 
99
1       1       1
 
100
select 'a\0' = 'a', 'a\0' < 'a', 'a\0' > 'a';
 
101
'a\0' = 'a'     'a\0' < 'a'     'a\0' > 'a'
 
102
0       1       0
 
103
select 'a' = 'a\0', 'a' < 'a\0', 'a' > 'a\0';
 
104
'a' = 'a\0'     'a' < 'a\0'     'a' > 'a\0'
 
105
0       0       1
 
106
select 'a\0' = 'a ', 'a\0' < 'a ', 'a\0' > 'a ';
 
107
'a\0' = 'a '    'a\0' < 'a '    'a\0' > 'a '
 
108
0       1       0
 
109
select 'a ' = 'a\0', 'a ' < 'a\0', 'a ' > 'a\0';
 
110
'a ' = 'a\0'    'a ' < 'a\0'    'a ' > 'a\0'
 
111
0       0       1
 
112
select 'a  a' > 'a', 'a  \0' < 'a';
 
113
'a  a' > 'a'    'a  \0' < 'a'
 
114
1       1
 
115
select binary 'a  a' > 'a', binary 'a  \0' > 'a', binary 'a\0' > 'a';
 
116
binary 'a  a' > 'a'     binary 'a  \0' > 'a'    binary 'a\0' > 'a'
 
117
1       1       1
 
118
SET CHARACTER SET koi8r;
 
119
create table t1 (a varchar(2) character set ucs2 collate ucs2_bin, key(a));
 
120
insert into t1 values ('A'),('A'),('B'),('C'),('D'),('A\t');
 
121
insert into t1 values ('A\0'),('A\0'),('A\0'),('A\0'),('AZ');
 
122
select hex(a) from t1 where a like 'A_' order by a;
 
123
hex(a)
 
124
00410000
 
125
00410000
 
126
00410000
 
127
00410000
 
128
00410009
 
129
0041005A
 
130
select hex(a) from t1 ignore key(a) where a like 'A_' order by a;
 
131
hex(a)
 
132
00410000
 
133
00410000
 
134
00410000
 
135
00410000
 
136
00410009
 
137
0041005A
 
138
drop table t1;
 
139
CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2, word2 CHAR(64) CHARACTER SET ucs2);
 
140
INSERT INTO t1 VALUES (_koi8r'�',_koi8r'�'), (X'2004',X'2004');
 
141
SELECT hex(word) FROM t1 ORDER BY word;
 
142
hex(word)
 
143
0420
 
144
2004
 
145
SELECT hex(word2) FROM t1 ORDER BY word2;
 
146
hex(word2)
 
147
0420
 
148
2004
 
149
DELETE FROM t1;
 
150
INSERT INTO t1 VALUES (X'042000200020',X'042000200020'), (X'200400200020', X'200400200020');
 
151
SELECT hex(word) FROM t1 ORDER BY word;
 
152
hex(word)
 
153
042000200020
 
154
200400200020
 
155
SELECT hex(word2) FROM t1 ORDER BY word2;
 
156
hex(word2)
 
157
0420
 
158
2004
 
159
DROP TABLE t1;
 
160
SELECT LPAD(_ucs2 X'0420',10,_ucs2 X'0421');
 
161
LPAD(_ucs2 X'0420',10,_ucs2 X'0421')
 
162
����������
 
163
SELECT LPAD(_ucs2 X'0420',10,_ucs2 X'04210422');
 
164
LPAD(_ucs2 X'0420',10,_ucs2 X'04210422')
 
165
����������
 
166
SELECT LPAD(_ucs2 X'0420',10,_ucs2 X'042104220423');
 
167
LPAD(_ucs2 X'0420',10,_ucs2 X'042104220423')
 
168
����������
 
169
SELECT LPAD(_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423');
 
170
LPAD(_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423')
 
171
����������
 
172
SELECT RPAD(_ucs2 X'0420',10,_ucs2 X'0421');
 
173
RPAD(_ucs2 X'0420',10,_ucs2 X'0421')
 
174
����������
 
175
SELECT RPAD(_ucs2 X'0420',10,_ucs2 X'04210422');
 
176
RPAD(_ucs2 X'0420',10,_ucs2 X'04210422')
 
177
����������
 
178
SELECT RPAD(_ucs2 X'0420',10,_ucs2 X'042104220423');
 
179
RPAD(_ucs2 X'0420',10,_ucs2 X'042104220423')
 
180
����������
 
181
SELECT RPAD(_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423');
 
182
RPAD(_ucs2 X'0420042104220423042404250426042704280429042A042B',10,_ucs2 X'042104220423')
 
183
����������
 
184
CREATE TABLE t1 SELECT 
 
185
LPAD(_ucs2 X'0420',10,_ucs2 X'0421') l,
 
186
RPAD(_ucs2 X'0420',10,_ucs2 X'0421') r;
 
187
SHOW CREATE TABLE t1;
 
188
Table   Create Table
 
189
t1      CREATE TABLE `t1` (
 
190
  `l` varchar(10) CHARACTER SET ucs2 NOT NULL DEFAULT '',
 
191
  `r` varchar(10) CHARACTER SET ucs2 NOT NULL DEFAULT ''
 
192
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
193
DROP TABLE t1;
 
194
create table t2(f1 Char(30));
 
195
insert into t2 values ("103000"), ("22720000"), ("3401200"), ("78000");
 
196
select lpad(f1, 12, "-o-/") from t2;
 
197
lpad(f1, 12, "-o-/")
 
198
-o-/-o103000
 
199
-o-/22720000
 
200
-o-/-3401200
 
201
-o-/-o-78000
 
202
drop table t2;
 
203
SET NAMES koi8r;
 
204
SET character_set_connection=ucs2;
 
205
create table t1 (a varchar(10) character set ucs2, key(a));
 
206
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
 
207
explain select * from t1 where a like 'abc%';
 
208
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
209
1       SIMPLE  t1      range   a       a       23      NULL    1       Using where; Using index
 
210
explain select * from t1 where a like concat('abc','%');
 
211
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
212
1       SIMPLE  t1      range   a       a       23      NULL    1       Using where; Using index
 
213
select * from t1 where a like "abc%";
 
214
a
 
215
abc
 
216
abcd
 
217
select * from t1 where a like concat("abc","%");
 
218
a
 
219
abc
 
220
abcd
 
221
select * from t1 where a like "ABC%";
 
222
a
 
223
abc
 
224
abcd
 
225
select * from t1 where a like "test%";
 
226
a
 
227
test
 
228
select * from t1 where a like "te_t";
 
229
a
 
230
test
 
231
select * from t1 where a like "%a%";
 
232
a
 
233
a
 
234
abc
 
235
abcd
 
236
select * from t1 where a like "%abcd%";
 
237
a
 
238
abcd
 
239
select * from t1 where a like "%abc\d%";
 
240
a
 
241
abcd
 
242
drop table t1;
 
243
select 'AA' like 'AA';
 
244
'AA' like 'AA'
 
245
1
 
246
select 'AA' like 'A%A';
 
247
'AA' like 'A%A'
 
248
1
 
249
select 'AA' like 'A%%A';
 
250
'AA' like 'A%%A'
 
251
1
 
252
select 'AA' like 'AA%';
 
253
'AA' like 'AA%'
 
254
1
 
255
select 'AA' like '%AA%';
 
256
'AA' like '%AA%'
 
257
1
 
258
select 'AA' like '%A';
 
259
'AA' like '%A'
 
260
1
 
261
select 'AA' like '%AA';
 
262
'AA' like '%AA'
 
263
1
 
264
select 'AA' like 'A%A%';
 
265
'AA' like 'A%A%'
 
266
1
 
267
select 'AA' like '_%_%';
 
268
'AA' like '_%_%'
 
269
1
 
270
select 'AA' like '%A%A';
 
271
'AA' like '%A%A'
 
272
1
 
273
select 'AAA'like 'A%A%A';
 
274
'AAA'like 'A%A%A'
 
275
1
 
276
select 'AZ' like 'AZ';
 
277
'AZ' like 'AZ'
 
278
1
 
279
select 'AZ' like 'A%Z';
 
280
'AZ' like 'A%Z'
 
281
1
 
282
select 'AZ' like 'A%%Z';
 
283
'AZ' like 'A%%Z'
 
284
1
 
285
select 'AZ' like 'AZ%';
 
286
'AZ' like 'AZ%'
 
287
1
 
288
select 'AZ' like '%AZ%';
 
289
'AZ' like '%AZ%'
 
290
1
 
291
select 'AZ' like '%Z';
 
292
'AZ' like '%Z'
 
293
1
 
294
select 'AZ' like '%AZ';
 
295
'AZ' like '%AZ'
 
296
1
 
297
select 'AZ' like 'A%Z%';
 
298
'AZ' like 'A%Z%'
 
299
1
 
300
select 'AZ' like '_%_%';
 
301
'AZ' like '_%_%'
 
302
1
 
303
select 'AZ' like '%A%Z';
 
304
'AZ' like '%A%Z'
 
305
1
 
306
select 'AZ' like 'A_';
 
307
'AZ' like 'A_'
 
308
1
 
309
select 'AZ' like '_Z';
 
310
'AZ' like '_Z'
 
311
1
 
312
select 'AMZ'like 'A%M%Z';
 
313
'AMZ'like 'A%M%Z'
 
314
1
 
315
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ucs2);
 
316
INSERT INTO t1 VALUES ('����'),('����'),('����'),('����'),('����'),('����');
 
317
INSERT INTO t1 VALUES ('����������'),('����������'),('����������'),('����������');
 
318
INSERT INTO t1 VALUES ('����������'),('����������'),('����������'),('����������');
 
319
INSERT INTO t1 VALUES ('����������'),('����������'),('����������'),('����������');
 
320
SELECT * FROM t1 WHERE a LIKE '%����%';
 
321
a
 
322
����
 
323
����
 
324
����
 
325
����
 
326
����
 
327
����
 
328
����������
 
329
����������
 
330
����������
 
331
����������
 
332
����������
 
333
����������
 
334
����������
 
335
����������
 
336
����������
 
337
����������
 
338
����������
 
339
����������
 
340
SELECT * FROM t1 WHERE a LIKE '%���%';
 
341
a
 
342
����
 
343
����
 
344
����
 
345
����
 
346
����
 
347
����
 
348
����������
 
349
����������
 
350
����������
 
351
����������
 
352
����������
 
353
����������
 
354
����������
 
355
����������
 
356
����������
 
357
����������
 
358
����������
 
359
����������
 
360
SELECT * FROM t1 WHERE a LIKE '����%';
 
361
a
 
362
����
 
363
����
 
364
����
 
365
����
 
366
����
 
367
����
 
368
����������
 
369
����������
 
370
����������
 
371
����������
 
372
����������
 
373
����������
 
374
����������
 
375
����������
 
376
����������
 
377
����������
 
378
����������
 
379
����������
 
380
SELECT * FROM t1 WHERE a LIKE '����%' COLLATE ucs2_bin;
 
381
a
 
382
����
 
383
����������
 
384
DROP TABLE t1;
 
385
CREATE TABLE t1 (word varchar(64) NOT NULL, PRIMARY KEY (word))
 
386
ENGINE=MyISAM CHARACTER SET ucs2 COLLATE ucs2_general_ci;
 
387
INSERT INTO t1 (word) VALUES ("cat");
 
388
SELECT * FROM t1 WHERE word LIKE "c%";
 
389
word
 
390
cat
 
391
SELECT * FROM t1 WHERE word LIKE "ca_";
 
392
word
 
393
cat
 
394
SELECT * FROM t1 WHERE word LIKE "cat";
 
395
word
 
396
cat
 
397
SELECT * FROM t1 WHERE word LIKE _ucs2 x'00630025';
 
398
word
 
399
cat
 
400
SELECT * FROM t1 WHERE word LIKE _ucs2 x'00630061005F';
 
401
word
 
402
cat
 
403
DROP TABLE t1;
 
404
select insert(_ucs2 0x006100620063,10,2,_ucs2 0x006400650066);
 
405
insert(_ucs2 0x006100620063,10,2,_ucs2 0x006400650066)
 
406
abc
 
407
select insert(_ucs2 0x006100620063,1,2,_ucs2 0x006400650066);
 
408
insert(_ucs2 0x006100620063,1,2,_ucs2 0x006400650066)
 
409
defc
 
410
SET NAMES latin1;
 
411
CREATE TABLE t1 (
 
412
word VARCHAR(64),
 
413
bar INT(11) default 0,
 
414
PRIMARY KEY (word))
 
415
ENGINE=MyISAM
 
416
CHARSET ucs2
 
417
COLLATE ucs2_general_ci ;
 
418
INSERT INTO t1 (word) VALUES ("aar");
 
419
INSERT INTO t1 (word) VALUES ("a");
 
420
INSERT INTO t1 (word) VALUES ("aardvar");
 
421
INSERT INTO t1 (word) VALUES ("aardvark");
 
422
INSERT INTO t1 (word) VALUES ("aardvara");
 
423
INSERT INTO t1 (word) VALUES ("aardvarz");
 
424
EXPLAIN SELECT * FROM t1 ORDER BY word;
 
425
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
426
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    6       Using filesort
 
427
SELECT * FROM t1 ORDER BY word;
 
428
word    bar
 
429
a       0
 
430
aar     0
 
431
aardvar 0
 
432
aardvara        0
 
433
aardvark        0
 
434
aardvarz        0
 
435
EXPLAIN SELECT word FROM t1 ORDER BY word;
 
436
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
437
1       SIMPLE  t1      index   NULL    PRIMARY 130     NULL    6       Using index
 
438
SELECT word FROM t1 ORDER by word;
 
439
word
 
440
a
 
441
aar
 
442
aardvar
 
443
aardvara
 
444
aardvark
 
445
aardvarz
 
446
DROP TABLE t1;
 
447
CREATE TABLE t1 (
 
448
word VARCHAR(64) ,
 
449
PRIMARY KEY (word))
 
450
ENGINE=MyISAM
 
451
CHARSET ucs2
 
452
COLLATE ucs2_general_ci;
 
453
INSERT INTO t1 (word) VALUES ("aar");
 
454
INSERT INTO t1 (word) VALUES ("a");
 
455
INSERT INTO t1 (word) VALUES ("aardvar");
 
456
INSERT INTO t1 (word) VALUES ("aardvark");
 
457
INSERT INTO t1 (word) VALUES ("aardvara");
 
458
INSERT INTO t1 (word) VALUES ("aardvarz");
 
459
EXPLAIN SELECT * FROM t1 ORDER BY WORD;
 
460
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
461
1       SIMPLE  t1      index   NULL    PRIMARY 130     NULL    6       Using index
 
462
SELECT * FROM t1 ORDER BY word;
 
463
word
 
464
a
 
465
aar
 
466
aardvar
 
467
aardvara
 
468
aardvark
 
469
aardvarz
 
470
DROP TABLE t1;
 
471
CREATE TABLE t1 (
 
472
word TEXT,
 
473
bar INT(11) AUTO_INCREMENT,
 
474
PRIMARY KEY (bar))
 
475
ENGINE=MyISAM
 
476
CHARSET ucs2
 
477
COLLATE ucs2_general_ci ;
 
478
INSERT INTO t1 (word) VALUES ("aar");
 
479
INSERT INTO t1 (word) VALUES ("a" );
 
480
INSERT INTO t1 (word) VALUES ("aardvar");
 
481
INSERT INTO t1 (word) VALUES ("aardvark");
 
482
INSERT INTO t1 (word) VALUES ("aardvara");
 
483
INSERT INTO t1 (word) VALUES ("aardvarz");
 
484
EXPLAIN SELECT * FROM t1 ORDER BY word;
 
485
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
486
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    6       Using filesort
 
487
SELECT * FROM t1 ORDER BY word;
 
488
word    bar
 
489
a       2
 
490
aar     1
 
491
aardvar 3
 
492
aardvara        5
 
493
aardvark        4
 
494
aardvarz        6
 
495
EXPLAIN SELECT word FROM t1 ORDER BY word;
 
496
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
497
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    6       Using filesort
 
498
SELECT word FROM t1 ORDER BY word;
 
499
word
 
500
a
 
501
aar
 
502
aardvar
 
503
aardvara
 
504
aardvark
 
505
aardvarz
 
506
DROP TABLE t1;
 
507
SELECT HEX(_ucs2 0x0);
 
508
HEX(_ucs2 0x0)
 
509
0000
 
510
SELECT HEX(_ucs2 0x01);
 
511
HEX(_ucs2 0x01)
 
512
0001
 
513
SELECT HEX(_ucs2 0x012);
 
514
HEX(_ucs2 0x012)
 
515
0012
 
516
SELECT HEX(_ucs2 0x0123);
 
517
HEX(_ucs2 0x0123)
 
518
0123
 
519
SELECT HEX(_ucs2 0x01234);
 
520
HEX(_ucs2 0x01234)
 
521
00001234
 
522
SELECT HEX(_ucs2 0x012345);
 
523
HEX(_ucs2 0x012345)
 
524
00012345
 
525
SELECT HEX(_ucs2 0x0123456);
 
526
HEX(_ucs2 0x0123456)
 
527
00123456
 
528
SELECT HEX(_ucs2 0x01234567);
 
529
HEX(_ucs2 0x01234567)
 
530
01234567
 
531
SELECT HEX(_ucs2 0x012345678);
 
532
HEX(_ucs2 0x012345678)
 
533
000012345678
 
534
SELECT HEX(_ucs2 0x0123456789);
 
535
HEX(_ucs2 0x0123456789)
 
536
000123456789
 
537
SELECT HEX(_ucs2 0x0123456789A);
 
538
HEX(_ucs2 0x0123456789A)
 
539
00123456789A
 
540
SELECT HEX(_ucs2 0x0123456789AB);
 
541
HEX(_ucs2 0x0123456789AB)
 
542
0123456789AB
 
543
SELECT HEX(_ucs2 0x0123456789ABC);
 
544
HEX(_ucs2 0x0123456789ABC)
 
545
0000123456789ABC
 
546
SELECT HEX(_ucs2 0x0123456789ABCD);
 
547
HEX(_ucs2 0x0123456789ABCD)
 
548
000123456789ABCD
 
549
SELECT HEX(_ucs2 0x0123456789ABCDE);
 
550
HEX(_ucs2 0x0123456789ABCDE)
 
551
00123456789ABCDE
 
552
SELECT HEX(_ucs2 0x0123456789ABCDEF);
 
553
HEX(_ucs2 0x0123456789ABCDEF)
 
554
0123456789ABCDEF
 
555
SELECT hex(cast(0xAA as char character set ucs2));
 
556
hex(cast(0xAA as char character set ucs2))
 
557
00AA
 
558
SELECT hex(convert(0xAA using ucs2));
 
559
hex(convert(0xAA using ucs2))
 
560
00AA
 
561
CREATE TABLE t1 (a char(10) character set ucs2);
 
562
INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
 
563
SELECT HEX(a) FROM t1;
 
564
HEX(a)
 
565
000A
 
566
00AA
 
567
0AAA
 
568
AAAA
 
569
000AAAAA
 
570
DROP TABLE t1;
 
571
CREATE TABLE t1 (a varchar(10) character set ucs2);
 
572
INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
 
573
SELECT HEX(a) FROM t1;
 
574
HEX(a)
 
575
000A
 
576
00AA
 
577
0AAA
 
578
AAAA
 
579
000AAAAA
 
580
DROP TABLE t1;
 
581
CREATE TABLE t1 (a text character set ucs2);
 
582
INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
 
583
SELECT HEX(a) FROM t1;
 
584
HEX(a)
 
585
000A
 
586
00AA
 
587
0AAA
 
588
AAAA
 
589
000AAAAA
 
590
DROP TABLE t1;
 
591
CREATE TABLE t1 (a mediumtext character set ucs2);
 
592
INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
 
593
SELECT HEX(a) FROM t1;
 
594
HEX(a)
 
595
000A
 
596
00AA
 
597
0AAA
 
598
AAAA
 
599
000AAAAA
 
600
DROP TABLE t1;
 
601
CREATE TABLE t1 (a longtext character set ucs2);
 
602
INSERT INTO t1 VALUES (0xA),(0xAA),(0xAAA),(0xAAAA),(0xAAAAA);
 
603
SELECT HEX(a) FROM t1;
 
604
HEX(a)
 
605
000A
 
606
00AA
 
607
0AAA
 
608
AAAA
 
609
000AAAAA
 
610
DROP TABLE t1;
 
611
create table t1 (s1 char character set `ucs2` collate `ucs2_czech_ci`);
 
612
insert into t1 values ('0'),('1'),('2'),('a'),('b'),('c');
 
613
select s1 from t1 where s1 > 'a' order by s1;
 
614
s1
 
615
b
 
616
c
 
617
drop table t1;
 
618
create table t1(a char(1)) default charset = ucs2;
 
619
insert into t1 values ('a'),('b'),('c');
 
620
alter table t1 modify a char(5);
 
621
select a, hex(a) from t1;
 
622
a       hex(a)
 
623
a       0061
 
624
b       0062
 
625
c       0063
 
626
drop table t1;
 
627
set @ivar= 1234;
 
628
set @str1 = 'select ?';
 
629
set @str2 = convert(@str1 using ucs2);
 
630
prepare stmt1 from @str2;
 
631
execute stmt1 using @ivar;
 
632
?
 
633
1234
 
634
set names latin1;
 
635
create table t1 (a enum('x','y','z') character set ucs2);
 
636
show create table t1;
 
637
Table   Create Table
 
638
t1      CREATE TABLE `t1` (
 
639
  `a` enum('x','y','z') CHARACTER SET ucs2 DEFAULT NULL
 
640
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
641
insert into t1 values ('x');
 
642
insert into t1 values ('y');
 
643
insert into t1 values ('z');
 
644
select a, hex(a) from t1 order by a;
 
645
a       hex(a)
 
646
x       0078
 
647
y       0079
 
648
z       007A
 
649
alter table t1 change a a enum('x','y','z','d','e','�','�','�') character set ucs2;
 
650
show create table t1;
 
651
Table   Create Table
 
652
t1      CREATE TABLE `t1` (
 
653
  `a` enum('x','y','z','d','e','�','�','�') CHARACTER SET ucs2 DEFAULT NULL
 
654
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
655
insert into t1 values ('D');
 
656
insert into t1 values ('E ');
 
657
insert into t1 values ('�');
 
658
insert into t1 values ('�');
 
659
insert into t1 values ('�');
 
660
select a, hex(a) from t1 order by a;
 
661
a       hex(a)
 
662
x       0078
 
663
y       0079
 
664
z       007A
 
665
d       0064
 
666
e       0065
 
667
�       00E4
 
668
�       00F6
 
669
�       00FC
 
670
drop table t1;
 
671
create table t1 (a set ('x','y','z','�','�','�') character set ucs2);
 
672
show create table t1;
 
673
Table   Create Table
 
674
t1      CREATE TABLE `t1` (
 
675
  `a` set('x','y','z','�','�','�') CHARACTER SET ucs2 DEFAULT NULL
 
676
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
677
insert into t1 values ('x');
 
678
insert into t1 values ('y');
 
679
insert into t1 values ('z');
 
680
insert into t1 values ('x,y');
 
681
insert into t1 values ('x,y,z,�,�,�');
 
682
select a, hex(a) from t1 order by a;
 
683
a       hex(a)
 
684
x       0078
 
685
y       0079
 
686
x,y     0078002C0079
 
687
z       007A
 
688
x,y,z,�,�,�     0078002C0079002C007A002C00E4002C00F6002C00FC
 
689
drop table t1;
 
690
create table t1(a enum('a','b','c')) default character set ucs2;
 
691
insert into t1 values('a'),('b'),('c');
 
692
alter table t1 add b char(1);
 
693
show warnings;
 
694
Level   Code    Message
 
695
select * from t1 order by a;
 
696
a       b
 
697
a       NULL
 
698
b       NULL
 
699
c       NULL
 
700
drop table t1;
 
701
SET collation_connection='ucs2_general_ci';
 
702
create table t1 select repeat('a',4000) a;
 
703
delete from t1;
 
704
insert into t1 values ('a'), ('a '), ('a\t');
 
705
select collation(a),hex(a) from t1 order by a;
 
706
collation(a)    hex(a)
 
707
ucs2_general_ci 00610009
 
708
ucs2_general_ci 0061
 
709
ucs2_general_ci 00610020
 
710
drop table t1;
 
711
select @@collation_connection;
 
712
@@collation_connection
 
713
ucs2_general_ci
 
714
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
 
715
insert into t1 values('abcdef');
 
716
insert into t1 values('_bcdef');
 
717
insert into t1 values('a_cdef');
 
718
insert into t1 values('ab_def');
 
719
insert into t1 values('abc_ef');
 
720
insert into t1 values('abcd_f');
 
721
insert into t1 values('abcde_');
 
722
select c1 as c1u from t1 where c1 like 'ab\_def';
 
723
c1u
 
724
ab_def
 
725
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
 
726
c2h
 
727
ab_def
 
728
drop table t1;
 
729
drop table if exists t1;
 
730
create table t1 as select repeat(' ', 64) as s1;
 
731
select collation(s1) from t1;
 
732
collation(s1)
 
733
ucs2_general_ci
 
734
delete from t1;
 
735
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
 
736
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
 
737
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
 
738
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
 
739
select s1, hex(s1) from t1 order by s1, binary s1;
 
740
s1      hex(s1)
 
741
a       0061
 
742
�       00E4
 
743
ae      00610065
 
744
o       006F
 
745
�       00F6
 
746
oe      006F0065
 
747
s       0073
 
748
�       00DF
 
749
ss      00730073
 
750
u       0075
 
751
�       00FC
 
752
ue      00750065
 
753
select group_concat(s1 order by binary s1) from t1 group by s1;
 
754
group_concat(s1 order by binary s1)
 
755
a,�
 
756
ae
 
757
o,�
 
758
oe
 
759
s,�
 
760
ss
 
761
u,�
 
762
ue
 
763
drop table t1;
 
764
CREATE TABLE t1 AS
 
765
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
 
766
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
 
767
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
 
768
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
 
769
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
 
770
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
 
771
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
 
772
hex(concat(repeat(0xF1F2, 10), '%'))
 
773
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025
 
774
3 rows expected
 
775
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
 
776
a       hex(b)  c
 
777
2       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2        
 
778
3       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2    
 
779
4       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2        
 
780
DROP TABLE t1;
 
781
SET NAMES latin1;
 
782
SET collation_connection='ucs2_bin';
 
783
create table t1 select repeat('a',4000) a;
 
784
delete from t1;
 
785
insert into t1 values ('a'), ('a '), ('a\t');
 
786
select collation(a),hex(a) from t1 order by a;
 
787
collation(a)    hex(a)
 
788
ucs2_bin        00610009
 
789
ucs2_bin        0061
 
790
ucs2_bin        00610020
 
791
drop table t1;
 
792
select @@collation_connection;
 
793
@@collation_connection
 
794
ucs2_bin
 
795
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
 
796
insert into t1 values('abcdef');
 
797
insert into t1 values('_bcdef');
 
798
insert into t1 values('a_cdef');
 
799
insert into t1 values('ab_def');
 
800
insert into t1 values('abc_ef');
 
801
insert into t1 values('abcd_f');
 
802
insert into t1 values('abcde_');
 
803
select c1 as c1u from t1 where c1 like 'ab\_def';
 
804
c1u
 
805
ab_def
 
806
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
 
807
c2h
 
808
ab_def
 
809
drop table t1;
 
810
CREATE TABLE t1 AS
 
811
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
 
812
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
 
813
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
 
814
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
 
815
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
 
816
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
 
817
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
 
818
hex(concat(repeat(0xF1F2, 10), '%'))
 
819
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025
 
820
3 rows expected
 
821
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
 
822
a       hex(b)  c
 
823
2       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2        
 
824
3       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2    
 
825
4       F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2        
 
826
DROP TABLE t1;
 
827
select hex(substr(_ucs2 0x00e400e50068,1));
 
828
hex(substr(_ucs2 0x00e400e50068,1))
 
829
00E400E50068
 
830
select hex(substr(_ucs2 0x00e400e50068,2));
 
831
hex(substr(_ucs2 0x00e400e50068,2))
 
832
00E50068
 
833
select hex(substr(_ucs2 0x00e400e50068,3));
 
834
hex(substr(_ucs2 0x00e400e50068,3))
 
835
0068
 
836
select hex(substr(_ucs2 0x00e400e50068,-1));
 
837
hex(substr(_ucs2 0x00e400e50068,-1))
 
838
0068
 
839
select hex(substr(_ucs2 0x00e400e50068,-2));
 
840
hex(substr(_ucs2 0x00e400e50068,-2))
 
841
00E50068
 
842
select hex(substr(_ucs2 0x00e400e50068,-3));
 
843
hex(substr(_ucs2 0x00e400e50068,-3))
 
844
00E400E50068
 
845
SET NAMES latin1;
 
846
SET collation_connection='ucs2_swedish_ci';
 
847
CREATE TABLE t1 (Field1 int(10) default '0');
 
848
INSERT INTO t1 VALUES ('-1');
 
849
SELECT * FROM t1;
 
850
Field1
 
851
-1
 
852
DROP TABLE t1;
 
853
CREATE TABLE t1 (Field1 int(10) unsigned default '0');
 
854
INSERT INTO t1 VALUES ('-1');
 
855
Warnings:
 
856
Warning 1264    Out of range value for column 'Field1' at row 1
 
857
DROP TABLE t1;
 
858
SET NAMES latin1;
 
859
SELECT CONVERT(103, CHAR(50) UNICODE);
 
860
CONVERT(103, CHAR(50) UNICODE)
 
861
103
 
862
SELECT CONVERT(103.0, CHAR(50) UNICODE);
 
863
CONVERT(103.0, CHAR(50) UNICODE)
 
864
103.0
 
865
SELECT CONVERT(-103, CHAR(50) UNICODE);
 
866
CONVERT(-103, CHAR(50) UNICODE)
 
867
-103
 
868
SELECT CONVERT(-103.0, CHAR(50) UNICODE);
 
869
CONVERT(-103.0, CHAR(50) UNICODE)
 
870
-103.0
 
871
CREATE TABLE t1 (
 
872
a varchar(255) NOT NULL default '',
 
873
KEY a (a)
 
874
) ENGINE=MyISAM DEFAULT CHARSET=ucs2 COLLATE ucs2_general_ci;
 
875
insert into t1 values (0x803d);
 
876
insert into t1 values (0x005b);
 
877
select hex(a) from t1;
 
878
hex(a)
 
879
005B
 
880
803D
 
881
drop table t1;
 
882
create table t1(f1 varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL) engine=InnoDB;
 
883
insert into t1 values('a');
 
884
create index t1f1 on t1(f1);
 
885
select f1 from t1 where f1 like 'a%';
 
886
f1
 
887
a
 
888
drop table t1;
 
889
create table t1 (utext varchar(20) character set ucs2);
 
890
insert into t1 values ("lily");
 
891
insert into t1 values ("river");
 
892
prepare stmt from 'select utext from t1 where utext like ?';
 
893
set @param1='%%';
 
894
execute stmt using @param1;
 
895
utext
 
896
lily
 
897
river
 
898
execute stmt using @param1;
 
899
utext
 
900
lily
 
901
river
 
902
select utext from t1 where utext like '%%';
 
903
utext
 
904
lily
 
905
river
 
906
drop table t1;
 
907
deallocate prepare stmt;
 
908
create table t1 (
 
909
a char(10) unicode not null, 
 
910
index a (a)
 
911
) engine=myisam;
 
912
insert into t1 values (repeat(0x201f, 10));
 
913
insert into t1 values (repeat(0x2020, 10));
 
914
insert into t1 values (repeat(0x2021, 10));
 
915
explain select hex(a) from t1 order by a;
 
916
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
917
1       SIMPLE  t1      index   NULL    a       20      NULL    3       Using index
 
918
select hex(a) from t1 order by a;
 
919
hex(a)
 
920
201F201F201F201F201F201F201F201F201F201F
 
921
2020202020202020202020202020202020202020
 
922
2021202120212021202120212021202120212021
 
923
alter table t1 drop index a;
 
924
select hex(a) from t1 order by a;
 
925
hex(a)
 
926
201F201F201F201F201F201F201F201F201F201F
 
927
2020202020202020202020202020202020202020
 
928
2021202120212021202120212021202120212021
 
929
drop table t1;
 
930
CREATE TABLE t1 (id int, s char(5) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci);
 
931
INSERT INTO t1 VALUES (1, 'ZZZZZ'), (1, 'ZZZ'), (2, 'ZZZ'), (2, 'ZZZZZ');
 
932
SELECT id, MIN(s) FROM t1 GROUP BY id;
 
933
id      MIN(s)
 
934
1       ZZZ
 
935
2       ZZZ
 
936
DROP TABLE t1;
 
937
drop table if exists bug20536;
 
938
set names latin1;
 
939
create table bug20536 (id bigint not null auto_increment primary key, name
 
940
varchar(255) character set ucs2 not null);
 
941
insert into `bug20536` (`id`,`name`) values (1, _latin1 x'7465737431'), (2, "'test\\_2'");
 
942
select md5(name) from bug20536;
 
943
md5(name)
 
944
f4b7ce8b45a20e3c4e84bef515d1525c
 
945
48d95db0d8305c2fe11548a3635c9385
 
946
select sha1(name) from bug20536;
 
947
sha1(name)
 
948
e0b52f38deddb9f9e8d5336b153592794cb49baf
 
949
677d4d505355eb5b0549b865fcae4b7f0c28aef5
 
950
select make_set(3, name, upper(name)) from bug20536;
 
951
make_set(3, name, upper(name))
 
952
test1,TEST1
 
953
'test\_2','TEST\_2'
 
954
select export_set(5, name, upper(name)) from bug20536;
 
955
export_set(5, name, upper(name))
 
956
test1,TEST1,test1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1,TEST1
 
957
'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2','TEST\_2'
 
958
select export_set(5, name, upper(name), ",", 5) from bug20536;
 
959
export_set(5, name, upper(name), ",", 5)
 
960
test1,TEST1,test1,TEST1,TEST1
 
961
'test\_2','TEST\_2','test\_2','TEST\_2','TEST\_2'
 
962
CREATE TABLE t1 (
 
963
status enum('active','passive') collate latin1_general_ci 
 
964
NOT NULL default 'passive'
 
965
);
 
966
SHOW CREATE TABLE t1;
 
967
Table   Create Table
 
968
t1      CREATE TABLE `t1` (
 
969
  `status` enum('active','passive') CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT 'passive'
 
970
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
971
ALTER TABLE t1 ADD a int NOT NULL AFTER status;
 
972
CREATE TABLE t2 (
 
973
status enum('active','passive') collate ucs2_turkish_ci 
 
974
NOT NULL default 'passive'
 
975
);
 
976
SHOW CREATE TABLE t2;
 
977
Table   Create Table
 
978
t2      CREATE TABLE `t2` (
 
979
  `status` enum('active','passive') CHARACTER SET ucs2 COLLATE ucs2_turkish_ci NOT NULL DEFAULT 'passive'
 
980
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
981
ALTER TABLE t2 ADD a int NOT NULL AFTER status;
 
982
DROP TABLE t1,t2;
 
983
select password(name) from bug20536;
 
984
password(name)
 
985
????????????????????
 
986
????????????????????
 
987
select old_password(name) from bug20536;
 
988
old_password(name)
 
989
????????
 
990
????????
 
991
select quote(name) from bug20536;
 
992
quote(name)
 
993
????????
 
994
????????????????
 
995
drop table bug20536;
 
996
set names ucs2;
 
997
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
 
998
set names ucs2 collate ucs2_bin;
 
999
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
 
1000
set character_set_client= ucs2;
 
1001
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
 
1002
set character_set_client= concat('ucs', substr('2', 1));
 
1003
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
 
1004
CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci);
 
1005
INSERT INTO t1 VALUES('abcd');
 
1006
SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE);
 
1007
a
 
1008
abcd
 
1009
DROP TABLE t1;
 
1010
End of 4.1 tests
 
1011
CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3));
 
1012
INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0);
 
1013
update t1 set b=a;
 
1014
SELECT * FROM t1;
 
1015
a       b
 
1016
1.1     1.100
 
1017
2.1     2.100
 
1018
DROP TABLE t1;
 
1019
create table t1 (utext varchar(20) character set ucs2);
 
1020
insert into t1 values ("lily");
 
1021
insert into t1 values ("river");
 
1022
prepare stmt from 'select utext from t1 where utext like ?';
 
1023
set @param1='%%';
 
1024
execute stmt using @param1;
 
1025
utext
 
1026
lily
 
1027
river
 
1028
execute stmt using @param1;
 
1029
utext
 
1030
lily
 
1031
river
 
1032
select utext from t1 where utext like '%%';
 
1033
utext
 
1034
lily
 
1035
river
 
1036
drop table t1;
 
1037
deallocate prepare stmt;
 
1038
set names latin1;
 
1039
set character_set_connection=ucs2;
 
1040
select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb');
 
1041
soundex('')     soundex('he')   soundex('hello all folks')      soundex('#3556 in bugdb')
 
1042
        H000    H4142   I51231
 
1043
select hex(soundex('')),hex(soundex('he')),hex(soundex('hello all folks')),hex(soundex('#3556 in bugdb'));
 
1044
hex(soundex(''))        hex(soundex('he'))      hex(soundex('hello all folks')) hex(soundex('#3556 in bugdb'))
 
1045
        0048003000300030        00480034003100340032    004900350031003200330031
 
1046
select 'mood' sounds like 'mud';
 
1047
'mood' sounds like 'mud'
 
1048
1
 
1049
select hex(soundex(_ucs2 0x041004110412));
 
1050
hex(soundex(_ucs2 0x041004110412))
 
1051
0410003000300030
 
1052
select hex(soundex(_ucs2 0x00BF00C0));
 
1053
hex(soundex(_ucs2 0x00BF00C0))
 
1054
00C0003000300030
 
1055
set names latin1;
 
1056
create table t1(a blob, b text charset utf8, c text charset ucs2);
 
1057
select data_type, character_octet_length, character_maximum_length
 
1058
from information_schema.columns where table_name='t1';
 
1059
data_type       character_octet_length  character_maximum_length
 
1060
blob    65535   65535
 
1061
text    65535   65535
 
1062
text    65535   32767
 
1063
drop table t1;
 
1064
create table t1 (a char(1) character set ucs2);
 
1065
insert into t1 values ('a'),('b'),('c');
 
1066
select hex(group_concat(a)) from t1;
 
1067
hex(group_concat(a))
 
1068
0061002C0062002C0063
 
1069
select collation(group_concat(a)) from t1;
 
1070
collation(group_concat(a))
 
1071
ucs2_general_ci
 
1072
drop table t1;
 
1073
set names latin1;
 
1074
create table t1 (a char(1) character set latin1);
 
1075
insert into t1 values ('a'),('b'),('c');
 
1076
set character_set_connection=ucs2;
 
1077
select hex(group_concat(a separator ',')) from t1;
 
1078
hex(group_concat(a separator ','))
 
1079
612C622C63
 
1080
select collation(group_concat(a separator ',')) from t1;
 
1081
collation(group_concat(a separator ','))
 
1082
latin1_swedish_ci
 
1083
drop table t1;
 
1084
set names latin1;
 
1085
create table t1 (s1 char(1) character set ascii, s2 char(1) character set ucs2);
 
1086
insert into t1 (s1) values (0x7f);
 
1087
update t1 set s2 = s1;
 
1088
select hex(s2) from t1;
 
1089
hex(s2)
 
1090
007F
 
1091
select hex(convert(s1 using latin1)) from t1;
 
1092
hex(convert(s1 using latin1))
 
1093
7F
 
1094
drop table t1;
 
1095
create table t1 (a varchar(15) character set ascii not null, b int);
 
1096
insert into t1 values ('a',1);
 
1097
select concat(a,if(b<10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
 
1098
concat(a,if(b<10,_ucs2 0x0061,_ucs2 0x0062))
 
1099
aa
 
1100
select concat(a,if(b>10,_ucs2 0x0061,_ucs2 0x0062)) from t1;
 
1101
concat(a,if(b>10,_ucs2 0x0061,_ucs2 0x0062))
 
1102
ab
 
1103
select * from t1 where a=if(b<10,_ucs2 0x0061,_ucs2 0x0062);
 
1104
a       b
 
1105
a       1
 
1106
select * from t1 where a=if(b>10,_ucs2 0x0061,_ucs2 0x0062);
 
1107
a       b
 
1108
select concat(a,if(b<10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
 
1109
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
 
1110
select concat(a,if(b>10,_ucs2 0x00C0,_ucs2 0x0062)) from t1;
 
1111
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
 
1112
select concat(a,if(b<10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
 
1113
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
 
1114
select concat(a,if(b>10,_ucs2 0x0062,_ucs2 0x00C0)) from t1;
 
1115
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation 'concat'
 
1116
select * from t1 where a=if(b<10,_ucs2 0x00C0,_ucs2 0x0062);
 
1117
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
 
1118
select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
 
1119
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
 
1120
drop table t1;
 
1121
CREATE TABLE t1 (s1 CHAR(5) CHARACTER SET UCS2);
 
1122
INSERT INTO t1 VALUES ('a');
 
1123
SET @@sql_mode=pad_char_to_full_length;
 
1124
SELECT HEX(s1) FROM t1;
 
1125
HEX(s1)
 
1126
00610020002000200020
 
1127
SET @@sql_mode=default;
 
1128
SELECT HEX(s1) FROM t1;
 
1129
HEX(s1)
 
1130
0061
 
1131
DROP TABLE t1;
 
1132
set collation_connection=ucs2_general_ci;
 
1133
drop table if exists t1;
 
1134
create table t1 as
 
1135
select repeat(' ', 64) as s1, repeat(' ',64) as s2
 
1136
union
 
1137
select null, null;
 
1138
show create table t1;
 
1139
Table   Create Table
 
1140
t1      CREATE TABLE `t1` (
 
1141
  `s1` varchar(64) CHARACTER SET ucs2 DEFAULT NULL,
 
1142
  `s2` varchar(64) CHARACTER SET ucs2 DEFAULT NULL
 
1143
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
1144
delete from t1;
 
1145
insert into t1 values('aaa','aaa');
 
1146
insert into t1 values('aaa|qqq','qqq');
 
1147
insert into t1 values('gheis','^[^a-dXYZ]+$');
 
1148
insert into t1 values('aab','^aa?b');
 
1149
insert into t1 values('Baaan','^Ba*n');
 
1150
insert into t1 values('aaa','qqq|aaa');
 
1151
insert into t1 values('qqq','qqq|aaa');
 
1152
insert into t1 values('bbb','qqq|aaa');
 
1153
insert into t1 values('bbb','qqq');
 
1154
insert into t1 values('aaa','aba');
 
1155
insert into t1 values(null,'abc');
 
1156
insert into t1 values('def',null);
 
1157
insert into t1 values(null,null);
 
1158
insert into t1 values('ghi','ghi[');
 
1159
select HIGH_PRIORITY s1 regexp s2 from t1;
 
1160
s1 regexp s2
 
1161
1
 
1162
1
 
1163
1
 
1164
1
 
1165
1
 
1166
1
 
1167
1
 
1168
0
 
1169
0
 
1170
0
 
1171
NULL
 
1172
NULL
 
1173
NULL
 
1174
NULL
 
1175
drop table t1;
 
1176
set names latin1;
 
1177
select hex(char(0x41 using ucs2));
 
1178
hex(char(0x41 using ucs2))
 
1179
0041
 
1180
SET character_set_connection=ucs2;
 
1181
SELECT CHARSET(DAYNAME(19700101));
 
1182
CHARSET(DAYNAME(19700101))
 
1183
ucs2
 
1184
SELECT CHARSET(MONTHNAME(19700101));
 
1185
CHARSET(MONTHNAME(19700101))
 
1186
ucs2
 
1187
SELECT LOWER(DAYNAME(19700101));
 
1188
LOWER(DAYNAME(19700101))
 
1189
thursday
 
1190
SELECT LOWER(MONTHNAME(19700101));
 
1191
LOWER(MONTHNAME(19700101))
 
1192
january
 
1193
SELECT UPPER(DAYNAME(19700101));
 
1194
UPPER(DAYNAME(19700101))
 
1195
THURSDAY
 
1196
SELECT UPPER(MONTHNAME(19700101));
 
1197
UPPER(MONTHNAME(19700101))
 
1198
JANUARY
 
1199
SELECT HEX(MONTHNAME(19700101));
 
1200
HEX(MONTHNAME(19700101))
 
1201
004A0061006E0075006100720079
 
1202
SELECT HEX(DAYNAME(19700101));
 
1203
HEX(DAYNAME(19700101))
 
1204
00540068007500720073006400610079
 
1205
SET LC_TIME_NAMES=ru_RU;
 
1206
SET NAMES utf8;
 
1207
SET character_set_connection=ucs2;
 
1208
SELECT CHARSET(DAYNAME(19700101));
 
1209
CHARSET(DAYNAME(19700101))
 
1210
ucs2
 
1211
SELECT CHARSET(MONTHNAME(19700101));
 
1212
CHARSET(MONTHNAME(19700101))
 
1213
ucs2
 
1214
SELECT LOWER(DAYNAME(19700101));
 
1215
LOWER(DAYNAME(19700101))
 
1216
четверг
 
1217
SELECT LOWER(MONTHNAME(19700101));
 
1218
LOWER(MONTHNAME(19700101))
 
1219
января
 
1220
SELECT UPPER(DAYNAME(19700101));
 
1221
UPPER(DAYNAME(19700101))
 
1222
ЧЕТВЕРГ
 
1223
SELECT UPPER(MONTHNAME(19700101));
 
1224
UPPER(MONTHNAME(19700101))
 
1225
ЯНВАРЯ
 
1226
SELECT HEX(MONTHNAME(19700101));
 
1227
HEX(MONTHNAME(19700101))
 
1228
042F043D043204300440044F
 
1229
SELECT HEX(DAYNAME(19700101));
 
1230
HEX(DAYNAME(19700101))
 
1231
0427043504420432043504400433
 
1232
SET character_set_connection=latin1;
 
1233
End of 5.0 tests