1
drop table if exists t1,t2;
2
select left(0xD0B0D0B1D0B2,1);
5
select right(0xD0B0D0B2D0B2,1);
6
right(0xD0B0D0B2D0B2,1)
8
select locate('he','hello');
11
select locate('he','hello',2);
12
locate('he','hello',2)
14
select locate('lo','hello',2);
15
locate('lo','hello',2)
17
select locate('HE','hello');
20
select locate('HE','hello',2);
21
locate('HE','hello',2)
23
select locate('LO','hello',2);
24
locate('LO','hello',2)
26
select locate('HE','hello' collate utf8_bin);
27
locate('HE','hello' collate utf8_bin)
29
select locate('HE','hello' collate utf8_bin,2);
30
locate('HE','hello' collate utf8_bin,2)
32
select locate('LO','hello' collate utf8_bin,2);
33
locate('LO','hello' collate utf8_bin,2)
35
select locate(0xD0B1, 0xD0B0D0B1D0B2);
36
locate(0xD0B1, 0xD0B0D0B1D0B2)
38
select locate(0xD091, 0xD0B0D0B1D0B2);
39
locate(0xD091, 0xD0B0D0B1D0B2)
41
select locate(0xD0B1, 0xD0B0D091D0B2);
42
locate(0xD0B1, 0xD0B0D091D0B2)
44
select length(0xD0B1), char_length(0xD0B1);
45
length(0xD0B1) char_length(0xD0B1)
53
select 'A' like 'a' collate utf8_bin;
54
'A' like 'a' collate utf8_bin
56
select 0xD0B0D0B1D0B2 like concat('%',0xD0B1,'%');
57
0xD0B0D0B1D0B2 like concat('%',0xD0B1,'%')
59
select 'Günter André' like 'GÜNTER%';
60
'Günter André' like 'GÜNTER%'
77
SELECT 'a' = 'a ' collate utf8_bin;
78
'a' = 'a ' collate utf8_bin
80
SELECT 'a\0' < 'a' collate utf8_bin;
81
'a\0' < 'a' collate utf8_bin
83
SELECT 'a\0' < 'a ' collate utf8_bin;
84
'a\0' < 'a ' collate utf8_bin
86
SELECT 'a\t' < 'a' collate utf8_bin;
87
'a\t' < 'a' collate utf8_bin
89
SELECT 'a\t' < 'a ' collate utf8_bin;
90
'a\t' < 'a ' collate utf8_bin
92
CREATE TABLE t1 (a char(10) not null);
93
INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a ');
94
SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1;
95
hex(a) STRCMP(a,'a') STRCMP(a,'a ')
101
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
102
insert('txs',2,1,'hi') insert('is ',4,0,'a') insert('txxxxt',2,4,'es')
104
select insert("aa",100,1,"b"),insert("aa",1,3,"b");
105
insert("aa",100,1,"b") insert("aa",1,3,"b")
107
select char_length(left(@a:='න ',5)), length(@a), @a;
108
char_length(left(@a:='න ',5)) length(@a) @a
110
create table t1 select date_format("2004-01-19 10:10:10", "%Y-%m-%d");
111
show create table t1;
113
t1 CREATE TABLE `t1` (
114
`date_format("2004-01-19 10:10:10", "%Y-%m-%d")` VARCHAR(10) COLLATE utf8_general_ci DEFAULT NULL
115
) ENGINE=PBXT COLLATE = utf8_general_ci
117
date_format("2004-01-19 10:10:10", "%Y-%m-%d")
120
create table t1 (s1 char(10));
121
insert into t1 values (0x41FF);
122
ERROR HY000: Incorrect string value: '\xFF' for column 's1' at row 1
123
select hex(s1) from t1;
126
create table t1 (s1 varchar(10));
127
insert into t1 values (0x41FF);
128
ERROR HY000: Incorrect string value: '\xFF' for column 's1' at row 1
129
select hex(s1) from t1;
132
create table t1 (s1 text);
133
insert into t1 values (0x41FF);
134
ERROR HY000: Incorrect string value: '\xFF' for column 's1' at row 1
135
select hex(s1) from t1;
138
create table t1 (a text, primary key(a(360))) engine=innodb;
139
ERROR 42000: Specified key was too long; max key length is 1023 bytes
140
CREATE TABLE t1 ( a varchar(10) );
141
INSERT INTO t1 VALUES ( 'test' );
142
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a;
145
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test';
148
SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test';
152
create table t1 (a char(255));
153
insert into t1 values('b'),('b');
154
select * from t1 where a = 'b';
158
select * from t1 where a = 'b' and a = 'b';
162
select * from t1 where a = 'b' and a != 'b';
165
CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8_unicode_ci);
166
ALTER TABLE t1 ADD COLUMN b CHAR(20);
168
create table t1 (c varchar(30), unique(c(10)));
169
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
170
insert into t1 values ('aaaaaaaaaa');
171
insert into t1 values ('aaaaaaaaaaa');
172
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
173
insert into t1 values ('aaaaaaaaaaaa');
174
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
175
insert into t1 values (repeat('b',20));
176
select c c1 from t1 where c='1';
179
select c c2 from t1 where c='2';
182
select c c3 from t1 where c='3';
185
select c cx from t1 where c='x';
188
select c cy from t1 where c='y';
191
select c cz from t1 where c='z';
194
select c ca10 from t1 where c='aaaaaaaaaa';
197
select c cb20 from t1 where c=repeat('b',20);
201
create table t1 (c varchar(30), unique(c(10))) engine=innodb;
202
insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z');
203
insert into t1 values ('aaaaaaaaaa');
204
insert into t1 values ('aaaaaaaaaaa');
205
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
206
insert into t1 values ('aaaaaaaaaaaa');
207
ERROR 23000: Duplicate entry 'aaaaaaaaaa' for key 'c'
208
insert into t1 values (repeat('b',20));
209
select c c1 from t1 where c='1';
212
select c c2 from t1 where c='2';
215
select c c3 from t1 where c='3';
218
select c cx from t1 where c='x';
221
select c cy from t1 where c='y';
224
select c cz from t1 where c='z';
227
select c ca10 from t1 where c='aaaaaaaaaa';
230
select c cb20 from t1 where c=repeat('b',20);
234
create TEMPORARY table t1 (c char(3), unique (c(2))) engine=myisam;
235
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
236
insert into t1 values ('a');
237
insert into t1 values ('aa');
238
insert into t1 values ('aaa');
239
ERROR 23000: Duplicate entry 'aa' for key 'c'
240
insert into t1 values ('b');
241
insert into t1 values ('bb');
242
insert into t1 values ('bbb');
243
ERROR 23000: Duplicate entry 'bb' for key 'c'
244
insert into t1 values ('킱');
245
insert into t1 values ('킱킱');
246
insert into t1 values ('킱킱킱');
247
ERROR 23000: Duplicate entry '킱킱' for key 'c'
249
create table t1 (c char(3), unique (c(2))) engine=innodb;
250
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
251
insert into t1 values ('a');
252
insert into t1 values ('aa');
253
insert into t1 values ('aaa');
254
ERROR 23000: Duplicate entry 'aa' for key 'c'
255
insert into t1 values ('b');
256
insert into t1 values ('bb');
257
insert into t1 values ('bbb');
258
ERROR 23000: Duplicate entry 'bb' for key 'c'
259
insert into t1 values ('킱');
260
insert into t1 values ('킱킱');
261
insert into t1 values ('킱킱킱');
262
ERROR 23000: Duplicate entry '킱킱' for key 'c'
264
create TEMPORARY table t1 (
266
unique key a using hash (c(2))
268
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
269
insert into t1 values ('a');
270
insert into t1 values ('aa');
271
insert into t1 values ('aaa');
272
ERROR 23000: Duplicate entry 'aa' for key 'a'
273
insert into t1 values ('b');
274
insert into t1 values ('bb');
275
insert into t1 values ('bbb');
276
ERROR 23000: Duplicate entry 'bb' for key 'a'
277
insert into t1 values ('킱');
278
insert into t1 values ('킱킱');
279
insert into t1 values ('킱킱킱');
280
ERROR 23000: Duplicate entry '킱킱' for key 'a'
281
select c as c_all from t1 order by c;
296
select c as c_a from t1 where c='a';
299
select c as c_a from t1 where c='킱';
303
create TEMPORARY table t1 (
305
unique key a using btree (c(2))
307
show create table t1;
309
t1 CREATE TEMPORARY TABLE `t1` (
310
`c` VARCHAR(10) COLLATE utf8_general_ci DEFAULT NULL,
311
UNIQUE KEY `a` (`c`(2)) USING BTREE
312
) ENGINE=MEMORY COLLATE = utf8_general_ci
313
insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z');
314
insert into t1 values ('a');
315
insert into t1 values ('aa');
316
insert into t1 values ('aaa');
317
ERROR 23000: Duplicate entry 'aa' for key 'a'
318
insert into t1 values ('b');
319
insert into t1 values ('bb');
320
insert into t1 values ('bbb');
321
ERROR 23000: Duplicate entry 'bb' for key 'a'
322
insert into t1 values ('킱');
323
insert into t1 values ('킱킱');
324
insert into t1 values ('킱킱킱');
325
ERROR 23000: Duplicate entry '킱킱' for key 'a'
326
select c as c_all from t1 order by c;
341
select c as c_a from t1 where c='a';
344
select c as c_a from t1 where c='킱';
348
create TEMPORARY table t1 (
349
str varchar(255) not null,
352
INSERT INTO t1 VALUES ('str');
353
INSERT INTO t1 VALUES ('str2');
354
select * from t1 where str='str';
359
str varchar(255) not null,
362
INSERT INTO t1 VALUES ('str');
363
INSERT INTO t1 VALUES ('str2');
364
select * from t1 where str='str';
368
create temporary table t1 (
369
str varchar(255) not null,
370
key str using btree (str(2))
372
INSERT INTO t1 VALUES ('str');
373
INSERT INTO t1 VALUES ('str2');
374
select * from t1 where str='str';
378
create temporary table t1 (
379
str varchar(255) not null,
380
key str using hash (str(2))
382
INSERT INTO t1 VALUES ('str');
383
INSERT INTO t1 VALUES ('str2');
384
select * from t1 where str='str';
389
str varchar(255) not null,
392
INSERT INTO t1 VALUES ('str');
393
INSERT INTO t1 VALUES ('str2');
394
select * from t1 where str='str';
398
CREATE TABLE t1 (a varchar(32));
399
INSERT INTO t1 VALUES ('test');
400
SELECT a FROM t1 WHERE a LIKE '%te';
404
subject varchar(255) collate utf8_unicode_ci,
407
INSERT INTO t1 values ('킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱','abcdefghijklmno');
408
INSERT INTO t1 VALUES ('aaa','bbb');
409
SELECT length(subject) FROM t1;
413
SELECT length(subject) FROM t1 ORDER BY 1;
418
CREATE TEMPORARY TABLE t1 (
419
id int NOT NULL auto_increment,
420
list_id int NOT NULL,
423
INDEX(list_id, term(4))
425
INSERT INTO t1 SET list_id = 1, term = "letterc";
426
INSERT INTO t1 SET list_id = 1, term = "letterb";
427
INSERT INTO t1 SET list_id = 1, term = "lettera";
428
INSERT INTO t1 SET list_id = 1, term = "letterd";
429
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterc");
432
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterb");
435
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "lettera");
438
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd");
442
CREATE TEMPORARY TABLE t1 (
443
id int NOT NULL auto_increment,
444
list_id int NOT NULL,
447
INDEX(list_id, term(19))
449
INSERT INTO t1 set list_id = 1, term = "testétest";
450
INSERT INTO t1 set list_id = 1, term = "testetest";
451
INSERT INTO t1 set list_id = 1, term = "testètest";
452
SELECT id, term FROM t1 where (list_id = 1) AND (term = "testétest");
457
SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest");
462
SELECT id, term FROM t1 where (list_id = 1) AND (term = "testètest");
473
insert into t1 values(1,'foo'),(2,'foobar');
474
select * from t1 where b like 'foob%';
477
alter table t1 engine=innodb;
478
select * from t1 where b like 'foob%';
483
a enum('☃','☄','킱') not null default '킱'
485
create table t2 select concat(a,'') as a from t1;
486
show create table t2;
488
t2 CREATE TABLE `t2` (
489
`a` VARCHAR(1) COLLATE utf8_general_ci DEFAULT NULL
490
) ENGINE=PBXT COLLATE = utf8_general_ci
493
select 'c' like '\_' as want0;
496
SELECT SUBSTR('☃☄킱',-2);
499
create table t1 select repeat('a',4000) a;
501
insert into t1 values ('a'), ('a '), ('a\t');
502
select collation(a),hex(a) from t1 order by hex(a);
508
create table t1 select repeat('a',50) as c1 ;
509
insert into t1 values('abcdef');
510
insert into t1 values('_bcdef');
511
insert into t1 values('a_cdef');
512
insert into t1 values('ab_def');
513
insert into t1 values('abc_ef');
514
insert into t1 values('abcd_f');
515
insert into t1 values('abcde_');
516
select c1 as c1u from t1 where c1 like 'ab\_def';
519
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
523
drop table if exists t1;
524
create table t1 as select repeat(' ', 64) as s1;
525
select collation(s1) from t1;
529
insert into t1 values ('a'),('ae'),('ä');
530
insert into t1 values ('o'),('oe'),('ö');
531
insert into t1 values ('s'),('ss'),('ß');
532
insert into t1 values ('u'),('ue'),('ü');
533
select s1, hex(s1) from t1 order by s1, binary s1;
547
select group_concat(s1 order by binary s1) from t1 group by s1;
548
group_concat(s1 order by binary s1)
558
create table t1 select repeat('a',4000) a;
560
insert into t1 values ('a'), ('a '), ('a\t');
561
select collation(a),hex(a) from t1 order by hex(a);
567
create table t1 select repeat('a',50) as c1 ;
568
insert into t1 values('abcdef');
569
insert into t1 values('_bcdef');
570
insert into t1 values('a_cdef');
571
insert into t1 values('ab_def');
572
insert into t1 values('abc_ef');
573
insert into t1 values('abcd_f');
574
insert into t1 values('abcde_');
575
select c1 as c1u from t1 where c1 like 'ab\_def';
578
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
582
create table t1 (a varchar(10));
583
insert into t1 values ('test');
584
select ifnull(a,'') from t1;
588
select repeat('+',3) as h union select NULL;
592
select ifnull(NULL, 'string');
593
ifnull(NULL, 'string')
595
create table t1 (s1 char(5) collate utf8_lithuanian_ci);
596
insert into t1 values ('I'),('K'),('Y');
597
select * from t1 where s1 < 'K' and s1 = 'Y';
601
select * from t1 where 'K' > s1 and s1 = 'Y';
606
create table t1 (s1 char(5) collate utf8_czech_ci);
607
insert into t1 values ('c'),('d'),('h'),('ch'),('CH'),('cH'),('Ch'),('i');
608
select * from t1 where s1 > 'd' and s1 = 'CH';
613
select * from t1 where 'd' < s1 and s1 = 'CH';
618
select * from t1 where s1 = 'cH' and s1 <> 'ch';
621
select * from t1 where 'cH' = s1 and s1 <> 'ch';
625
create table t1 (a varchar(255));
626
insert into t1 values (1.0);
630
city varchar(20) not null,
633
insert into t1 values (1,'Durban North');
634
insert into t1 values (2,'Durban');
635
select * from t1 where city = 'Durban';
638
select * from t1 where city = 'Durban ';
642
CREATE TEMPORARY TABLE t1 (
643
`id` int NOT NULL auto_increment,
644
`country` varchar(100) NOT NULL default '',
645
`shortcode` varchar(100) NOT NULL default '',
646
`operator` varchar(100) NOT NULL default '',
647
`momid` varchar(30) NOT NULL default '',
648
`keyword` varchar(160) NOT NULL default '',
649
`content` varchar(160) NOT NULL default '',
650
`second_token` varchar(160) default NULL,
651
`gateway_id` int NOT NULL default '0',
652
`created` datetime NULL,
653
`msisdn` varchar(15) NOT NULL default '',
655
UNIQUE KEY `MSCCSPK_20030521130957121` (`momid`),
656
KEY `IX_mobile_originated_message_keyword` (`keyword`),
657
KEY `IX_mobile_originated_message_created` (`created`),
658
KEY `IX_mobile_originated_message_support` (`msisdn`,`momid`,`keyword`,`gateway_id`,`created`)
660
INSERT INTO t1 VALUES
661
(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱','G', 3,'2005-06-01 17:30:43','1234567890'),
662
(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890');
664
`msisdn` varchar(15) NOT NULL default '',
665
`operator_id` int NOT NULL default '0',
666
`created` datetime NULL,
667
UNIQUE KEY `PK_user` (`msisdn`)
669
INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25');
670
SELECT content, t2.msisdn FROM t1, t2 WHERE t1.msisdn = '1234567890';
672
킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱킱 1234567890
675
create table t1 (a char(20));
676
insert into t1 values ('12'),('킱킲');
677
alter table t1 modify a char(2);
678
select char_length(a), length(a), a from t1 order by a;
679
char_length(a) length(a) a
683
select 'andre%' like 'andre킱%' escape '킱';
684
'andre%' like 'andre킱%' escape '킱'
686
select 'a\\' like 'a\\';
689
select 'aa\\' like 'a%\\';
692
create table t1 (a char(10), key(a));
693
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
694
select * from t1 where a like "abc%";
698
select * from t1 where a like concat("abc","%");
702
select * from t1 where a like "ABC%";
706
select * from t1 where a like "test%";
709
select * from t1 where a like "te_t";
712
select * from t1 where a like "%a%";
717
select * from t1 where a like "%abcd%";
720
select * from t1 where a like "%abc\d%";
724
CREATE TEMPORARY TABLE t1 (
725
a varchar(255) NOT NULL default '',
727
) ENGINE=MyISAM COLLATE=utf8_general_ci;
728
insert into t1 values (0xe880bd);
729
insert into t1 values (0x5b);
730
select hex(a) from t1;
735
create table t1 (a varchar(255));
736
select * from t1 where find_in_set('-1', a);
739
create table t1 (a int);
740
insert into t1 values (48),(49),(50);
741
select distinct char(a) from t1;
747
CREATE TABLE t1 (t TINYTEXT);
748
INSERT INTO t1 VALUES(REPEAT('a', 100));
749
CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1;
750
SELECT LENGTH(bug) FROM t2;
755
CREATE TABLE t1 (item varchar(255));
756
INSERT INTO t1 VALUES ('\\');
757
INSERT INTO t1 VALUES ('\\');
758
INSERT INTO t1 VALUES ('Cote d\'Ivoire');
759
INSERT INTO t1 VALUES ('Cote d\'Ivoire');
760
SELECT item FROM t1 ORDER BY item;
767
DROP TABLE IF EXISTS t1;
769
Note 1051 Unknown table 't1'
770
CREATE TEMPORARY TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=MyISAM;
771
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
772
INSERT INTO t1 VALUES('uu');
774
Table Op Msg_type Msg_text
775
test.t1 check status OK
776
INSERT INTO t1 VALUES('uU');
778
Table Op Msg_type Msg_text
779
test.t1 check status OK
780
INSERT INTO t1 VALUES('uu');
782
Table Op Msg_type Msg_text
783
test.t1 check status OK
784
INSERT INTO t1 VALUES('uuABC');
786
Table Op Msg_type Msg_text
787
test.t1 check status OK
788
INSERT INTO t1 VALUES('UuABC');
790
Table Op Msg_type Msg_text
791
test.t1 check status OK
792
INSERT INTO t1 VALUES('uuABC');
794
Table Op Msg_type Msg_text
795
test.t1 check status OK
796
alter table t1 add b int;
797
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
798
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2);
799
delete from t1 where b=1;
800
INSERT INTO t1 VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
802
Table Op Msg_type Msg_text
803
test.t1 check status OK
804
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
805
INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4);
806
delete from t1 where b=3;
807
INSERT INTO t1 VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZÌbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
809
Table Op Msg_type Msg_text
810
test.t1 check status OK
812
create table t1 (s1 char(5));
813
insert into t1 values
814
('a'),('b'),(null),('킁aaaa'),('ü'),('Y');
815
create index it1 on t1 (s1);
816
select s1 as before_delete_general_ci from t1 where s1 like '킁aaa%';
817
before_delete_general_ci
819
delete from t1 where s1 = 'Y';
820
select s1 as after_delete_general_ci from t1 where s1 like '킁aaa%';
821
after_delete_general_ci
824
create table t1 (s1 char(5) collate utf8_unicode_ci);
825
insert into t1 values
826
('a'),('b'),(null),('킁aaaa'),('ü'),('Y');
827
create index it1 on t1 (s1);
828
select s1 as before_delete_unicode_ci from t1 where s1 like '킁aaa%';
829
before_delete_unicode_ci
831
delete from t1 where s1 = 'Y';
832
select s1 as after_delete_unicode_ci from t1 where s1 like '킁aaa%';
833
after_delete_unicode_ci
836
create table t1 (s1 char(5) collate utf8_bin);
837
insert into t1 values
838
('a'),('b'),(null),('킁aaaa'),('ü'),('Y');
839
create index it1 on t1 (s1);
840
select s1 as before_delete_bin from t1 where s1 like '킁aaa%';
843
delete from t1 where s1 = 'Y';
844
select s1 as after_delete_bin from t1 where s1 like '킁aaa%';
848
CREATE TEMPORARY TABLE t1 (id int PRIMARY KEY,
849
a varchar(16) collate utf8_unicode_ci NOT NULL default '',
851
f varchar(128) default 'XXX',
853
) ENGINE=MyISAM COLLATE=utf8_unicode_ci;
854
INSERT INTO t1(id, a, b) VALUES
855
(1, 'cccc', 50), (2, 'cccc', 70), (3, 'cccc', 30),
856
(4, 'cccc', 30), (5, 'cccc', 20), (6, 'bbbbbb', 40),
857
(7, 'dddd', 30), (8, 'aaaa', 10), (9, 'aaaa', 50),
858
(10, 'eeeee', 40), (11, 'bbbbbb', 60);
859
SELECT id, a, b FROM t1;
872
SELECT id, a, b FROM t1 WHERE a BETWEEN 'aaaa' AND 'bbbbbb';
878
SELECT id, a FROM t1 WHERE a='bbbbbb';
882
SELECT id, a FROM t1 WHERE a='bbbbbb' ORDER BY b;
887
CREATE TEMPORARY TABLE t1 (
888
a CHAR(13) DEFAULT '',
890
) ENGINE=MyISAM COLLATE=utf8_general_ci;
891
INSERT INTO t1 VALUES
892
('KÃli KÃli 2-4'), ('KÃli KÃli 2-4'),
893
('KÃli KÃli 2+4'), ('KÃli KÃli 2+4'),
894
('KÃli KÃli 2-6'), ('KÃli KÃli 2-6');
895
CREATE TABLE t2 SELECT * FROM t1;
896
INSERT INTO t1 SELECT * FROM t2;
898
SELECT a FROM t1 WHERE a LIKE 'KÃli KÃli 2+4';
904
EXPLAIN SELECT a FROM t1 WHERE a LIKE 'KÃli KÃli 2+4';
905
id select_type table type possible_keys key key_len ref rows Extra
906
1 SIMPLE t1 range a a 55 NULL 4 Using where; Using index
907
EXPLAIN SELECT a FROM t1 WHERE a = 'KÃli KÃli 2+4';
908
id select_type table type possible_keys key key_len ref rows Extra
909
1 SIMPLE t1 ref a a 55 const 4 Using where; Using index
911
CREATE TEMPORARY TABLE t1 (
912
a char(255) DEFAULT '',
914
) ENGINE=MyISAM COLLATE=utf8_general_ci;
915
INSERT INTO t1 VALUES ('KÃli KÃli 2-4');
916
SELECT * FROM t1 WHERE a LIKE 'KÃli KÃli 2%';
919
INSERT INTO t1 VALUES ('KÃli KÃli 2-4');
920
SELECT * FROM t1 WHERE a LIKE 'KÃli KÃli 2%';
925
CREATE TEMPORARY TABLE t1 (
926
a char(255) DEFAULT ''
927
) ENGINE=MyISAM COLLATE=utf8_general_ci;
928
INSERT INTO t1 VALUES ('KÃli KÃli 2-4');
929
INSERT INTO t1 VALUES ('KÃli KÃli 2-4');
930
SELECT * FROM t1 WHERE a LIKE 'KÃli KÃli 2%';
934
ALTER TABLE t1 ADD KEY (a(10));
935
SELECT * FROM t1 WHERE a LIKE 'KÃli KÃli 2%';
940
CREATE TEMPORARY TABLE t1 (
941
id int NOT NULL default '0',
942
tid int NOT NULL default '0',
944
INDEX idx(tid, val(10))
946
INSERT INTO t1 VALUES
947
(40988,72,'VOLNÝ ADSL'),(41009,72,'VOLNÝ ADSL'),
948
(41032,72,'VOLNÝ ADSL'),(41038,72,'VOLNÝ ADSL'),
949
(41063,72,'VOLNÝ ADSL'),(41537,72,'VOLNÝ ADSL Office'),
950
(42141,72,'VOLNÝ ADSL'),(42565,72,'VOLNÝ ADSL Combi'),
951
(42749,72,'VOLNÝ ADSL'),(44205,72,'VOLNÝ ADSL');
952
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL';
962
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNÝ ADSL';
972
SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLNÝ ADSL';
982
ALTER TABLE t1 DROP KEY idx;
983
ALTER TABLE t1 ADD KEY idx (tid,val(11));
984
SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNÝ ADSL';
995
create table t1(a char(200) collate utf8_unicode_ci NOT NULL default '')
996
collate=utf8_unicode_ci;
997
insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65'));
998
explain select distinct a from t1;
999
id select_type table type possible_keys key key_len ref rows Extra
1000
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary
1001
select distinct a from t1;
1004
explain select a from t1 group by a;
1005
id select_type table type possible_keys key key_len ref rows Extra
1006
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
1007
select a from t1 group by a;
1011
create table t1(a char(10));
1012
insert into t1 values ('123'), ('456');
1014
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
1015
id select_type table type possible_keys key key_len ref rows Extra
1016
1 SIMPLE Y ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
1017
1 SIMPLE Z ALL NULL NULL NULL NULL 2 Using where; Using join buffer
1018
select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
1023
CREATE TABLE t1(id varchar(20) NOT NULL);
1024
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
1031
SELECT DISTINCT id FROM t1;
1036
SELECT DISTINCT id FROM t1 ORDER BY id;
1042
select hex(char(195));
1045
select hex(char(196));
1048
select hex(char(2557));
1051
create table t1 (a char(1));
1052
create table t2 (a char(1));
1053
insert into t1 values('a'),('a'),(0xE38182),(0xE38182);
1054
insert into t1 values('i'),('i'),(0xE38184),(0xE38184);
1055
select * from t1 union distinct select * from t2;
1062
create table t1 (a varchar(10), b int);
1063
insert into t1 values ('a',1);
1064
select concat(a, if(b>10, 'x' 'x', 'y' 'y')) from t1;
1065
concat(a, if(b>10, 'x' 'x', 'y' 'y'))
1067
select concat(a, if(b>10, 'x' 'æ', 'y' '킁')) from t1;
1068
concat(a, if(b>10, 'x' 'æ', 'y' '킁'))
1073
colB varchar(255) NOT NULL,
1076
INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar');
1079
colB varchar(255) NOT NULL,
1080
KEY bad (colA,colB(3))
1082
INSERT INTO t2 (colA, colB) VALUES (1, 'foo'),(2, 'foo bar');
1083
SELECT * FROM t1 JOIN t2 ON t1.colA=t2.colA AND t1.colB=t2.colB
1089
SELECT '½1234567890' UNION SELECT '1';
1093
SELECT '½1234567890' UNION SELECT 1;
1097
SELECT '1' UNION SELECT '킱1234567890';
1101
SELECT 1 UNION SELECT '킱1234567890';
1105
CREATE TABLE t1 (c VARCHAR(11));
1106
CREATE TABLE t2 (b CHAR(1), i INT);
1107
INSERT INTO t1 (c) VALUES ('킱1234567890');
1108
INSERT INTO t2 (b, i) VALUES ('1', 1);
1109
SELECT c FROM t1 UNION SELECT b FROM t2;
1113
SELECT c FROM t1 UNION SELECT i FROM t2;
1117
SELECT b FROM t2 UNION SELECT c FROM t1;
1121
SELECT i FROM t2 UNION SELECT c FROM t1;
1126
DROP TABLE IF EXISTS t1;
1128
predicted_order int NOT NULL,
1129
utf8_encoding VARCHAR(10) NOT NULL
1131
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');
1132
SELECT predicted_order, hex(utf8_encoding) FROM t1 ORDER BY utf8_encoding COLLATE utf8_sinhala_ci;
1133
predicted_order hex(utf8_encoding)
1206
73 E0B6BBE0B78AE2808D
1233
100 E0B78AE2808DE0B6BA
1234
101 E0B78AE2808DE0B6BB
1237
set max_sort_length=5;
1238
select @@max_sort_length;
1241
create table t1 (a varchar(128) collate utf8_general_ci);
1242
insert into t1 values ('a'),('b'),('c');
1243
select * from t1 order by a;
1248
alter table t1 modify a varchar(128) collate utf8_bin;
1249
select * from t1 order by a;
1255
set max_sort_length=default;
1256
DROP TABLE IF EXISTS t1;
1258
predicted_order int NOT NULL,
1259
utf8_encoding VARCHAR(10) NOT NULL
1261
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');
1262
SELECT predicted_order, hex(utf8_encoding) FROM t1 ORDER BY utf8_encoding COLLATE utf8_sinhala_ci;
1263
predicted_order hex(utf8_encoding)
1336
73 E0B6BBE0B78AE2808D
1363
100 E0B78AE2808DE0B6BA
1364
101 E0B78AE2808DE0B6BB
1366
select CAST('☂ ' as char(1));
1367
CAST('☂ ' as char(1))
1370
Warning 1292 Truncated incorrect CHAR(1) value: '☂ '
1373
Warning 1292 Truncated incorrect CHAR(1) value: '☂ '
1374
SELECT "☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃";
1375
☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃
1376
☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃