85
83
select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es');
86
84
select replace('aaaa','a','b'),replace('aaaa','aa','b'),replace('aaaa','a','bb'),replace('aaaa','','b'),replace('bbbb','a','c');
87
85
select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') ;
89
86
select crc32("123");
90
select aes_decrypt(aes_encrypt('abc','1'),'1');
91
select aes_decrypt(aes_encrypt('abc','1'),1);
92
select aes_encrypt(NULL,"a");
93
select aes_encrypt("a",NULL);
94
select aes_decrypt(NULL,"a");
95
select aes_decrypt("a",NULL);
96
select aes_decrypt("a","a");
97
select aes_decrypt(aes_encrypt("","a"),"a");
98
87
select repeat('monty',5),concat('*',space(5),'*');
99
88
select reverse('abc'),reverse('abcd');
100
89
select rpad('a',4,'1'),rpad('a',4,'12'),rpad('abcd',3,'12'), rpad(11, 10 , 22), rpad("ab", 10, 22);
245
227
SELECT QUOTE('A') FROM t1;
248
# Test collation and coercibility
256
select _latin1'1'=_latin2'1';
257
select row('a','b','c') = row('a','b','c');
258
select row('A','b','c') = row('a','b','c');
259
select row('A' COLLATE latin1_bin,'b','c') = row('a','b','c');
260
select row('A','b','c') = row('a' COLLATE latin1_bin,'b','c');
262
select row('A' COLLATE latin1_general_ci,'b','c') = row('a' COLLATE latin1_bin,'b','c');
265
select concat(_latin1'a',_latin2'a');
267
select concat(_latin1'a',_latin2'a',_latin5'a');
269
select concat(_latin1'a',_latin2'a',_latin5'a',_latin7'a');
271
select concat_ws(_latin1'a',_latin2'a');
274
# Test FIELD() and collations
276
select FIELD('b','A','B');
277
select FIELD('B','A','B');
278
select FIELD('b' COLLATE latin1_bin,'A','B');
279
select FIELD('b','A' COLLATE latin1_bin,'B');
281
select FIELD(_latin2'b','A','B');
283
select FIELD('b',_latin2'A','B');
284
select FIELD('1',_latin2'3','2',1);
286
select POSITION(_latin1'B' IN _latin1'abcd');
287
select POSITION(_latin1'B' IN _latin1'abcd' COLLATE latin1_bin);
288
select POSITION(_latin1'B' COLLATE latin1_bin IN _latin1'abcd');
290
select POSITION(_latin1'B' COLLATE latin1_general_ci IN _latin1'abcd' COLLATE latin1_bin);
292
select POSITION(_latin1'B' IN _latin2'abcd');
294
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d');
298
select FIND_IN_SET(_latin1'B',_latin1'a,b,c,d' COLLATE latin1_bin);
299
select FIND_IN_SET(_latin1'B' COLLATE latin1_bin,_latin1'a,b,c,d');
303
select FIND_IN_SET(_latin1'B' COLLATE latin1_general_ci,_latin1'a,b,c,d' COLLATE latin1_bin);
305
select FIND_IN_SET(_latin1'B',_latin2'a,b,c,d');
307
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd',2);
311
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_bin,_latin1'd',2);
312
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin1'd' COLLATE latin1_bin,2);
316
select SUBSTRING_INDEX(_latin1'abcdabcdabcd',_latin2'd',2);
318
select SUBSTRING_INDEX(_latin1'abcdabcdabcd' COLLATE latin1_general_ci,_latin1'd' COLLATE latin1_bin,2);
320
select _latin1'B' between _latin1'a' and _latin1'c';
321
select _latin1'B' collate latin1_bin between _latin1'a' and _latin1'c';
322
select _latin1'B' between _latin1'a' collate latin1_bin and _latin1'c';
323
select _latin1'B' between _latin1'a' and _latin1'c' collate latin1_bin;
325
select _latin2'B' between _latin1'a' and _latin1'b';
327
select _latin1'B' between _latin2'a' and _latin1'b';
329
select _latin1'B' between _latin1'a' and _latin2'b';
331
select _latin1'B' collate latin1_general_ci between _latin1'a' collate latin1_bin and _latin1'b';
333
select _latin1'B' in (_latin1'a',_latin1'b');
334
select _latin1'B' collate latin1_bin in (_latin1'a',_latin1'b');
335
select _latin1'B' in (_latin1'a' collate latin1_bin,_latin1'b');
336
select _latin1'B' in (_latin1'a',_latin1'b' collate latin1_bin);
338
select _latin2'B' in (_latin1'a',_latin1'b');
340
select _latin1'B' in (_latin2'a',_latin1'b');
342
select _latin1'B' in (_latin1'a',_latin2'b');
344
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a' COLLATE latin1_bin,_latin1'b');
346
select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE latin1_bin);
348
select collation(bin(130)), coercibility(bin(130));
349
select collation(oct(130)), coercibility(oct(130));
350
select collation(conv(130,16,10)), coercibility(conv(130,16,10));
351
select collation(hex(130)), coercibility(hex(130));
352
select collation(char(130)), coercibility(hex(130));
353
select collation(format(130,10)), coercibility(format(130,10));
354
select collation(lcase(_latin2'a')), coercibility(lcase(_latin2'a'));
355
select collation(ucase(_latin2'a')), coercibility(ucase(_latin2'a'));
356
select collation(left(_latin2'a',1)), coercibility(left(_latin2'a',1));
357
select collation(right(_latin2'a',1)), coercibility(right(_latin2'a',1));
358
select collation(substring(_latin2'a',1,1)), coercibility(substring(_latin2'a',1,1));
359
select collation(concat(_latin2'a',_latin2'b')), coercibility(concat(_latin2'a',_latin2'b'));
360
select collation(lpad(_latin2'a',4,_latin2'b')), coercibility(lpad(_latin2'a',4,_latin2'b'));
361
select collation(rpad(_latin2'a',4,_latin2'b')), coercibility(rpad(_latin2'a',4,_latin2'b'));
362
select collation(concat_ws(_latin2'a',_latin2'b')), coercibility(concat_ws(_latin2'a',_latin2'b'));
363
select collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')), coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'));
364
select collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')), coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '));
365
select collation(trim(_latin2' a ')), coercibility(trim(_latin2' a '));
366
select collation(ltrim(_latin2' a ')), coercibility(ltrim(_latin2' a '));
367
select collation(rtrim(_latin2' a ')), coercibility(rtrim(_latin2' a '));
368
select collation(trim(LEADING _latin2' ' FROM _latin2'a')), coercibility(trim(LEADING _latin2'a' FROM _latin2'a'));
369
select collation(trim(TRAILING _latin2' ' FROM _latin2'a')), coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'));
370
select collation(trim(BOTH _latin2' ' FROM _latin2'a')), coercibility(trim(BOTH _latin2'a' FROM _latin2'a'));
371
select collation(repeat(_latin2'a',10)), coercibility(repeat(_latin2'a',10));
372
select collation(reverse(_latin2'ab')), coercibility(reverse(_latin2'ab'));
373
select collation(quote(_latin2'ab')), coercibility(quote(_latin2'ab'));
374
select collation(substring(_latin2'ab',1)), coercibility(substring(_latin2'ab',1));
375
select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'));
376
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
377
select collation(encode('abcd','ab')), coercibility(encode('abcd','ab'));
390
substring(_latin2'a',1,1),
391
concat(_latin2'a',_latin2'b'),
392
lpad(_latin2'a',4,_latin2'b'),
393
rpad(_latin2'a',4,_latin2'b'),
394
concat_ws(_latin2'a',_latin2'b'),
395
make_set(255,_latin2'a',_latin2'b',_latin2'c'),
396
export_set(255,_latin2'y',_latin2'n',_latin2' '),
400
trim(LEADING _latin2' ' FROM _latin2' a '),
401
trim(TRAILING _latin2' ' FROM _latin2' a '),
402
trim(BOTH _latin2' ' FROM _latin2' a '),
403
repeat(_latin2'a',10),
404
reverse(_latin2'ab'),
406
substring(_latin2'ab',1),
407
insert(_latin2'abcd',2,3,_latin2'ef'),
408
replace(_latin2'abcd',_latin2'b',_latin2'B'),
411
show create table t1;
417
create table t1 (a char character set latin2);
418
insert into t1 values (null);
419
select charset(a), collation(a), coercibility(a) from t1;
421
select charset(null), collation(null), coercibility(null);
423
# Make sure OUTER JOIN is not replaced with a regular joun
425
CREATE TABLE t1 (a int, b int);
426
CREATE TABLE t2 (a int, b int);
427
INSERT INTO t1 VALUES (1,1),(2,2);
428
INSERT INTO t2 VALUES (2,2),(3,3);
429
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
430
where collation(t2.a) = _utf8'binary' order by t1.a,t2.a;
431
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
432
where charset(t2.a) = _utf8'binary' order by t1.a,t2.a;
433
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
434
where coercibility(t2.a) = 2 order by t1.a,t2.a;
438
231
# test for SUBSTR
445
238
select SUBSTR('abcdefg',-1,-1);
446
239
select SUBSTR('abcdefg',1,-1);
449
# Test that fix_fields doesn't follow to upper level (to comparison)
450
# when an error on a lower level (in concat) has accured:
452
create table t7 (s1 char);
455
where concat(s1 collate latin1_general_ci,s1 collate latin1_swedish_ci) = 'AA';
458
241
select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
460
explain extended select md5('hello');
461
explain extended select aes_decrypt(aes_encrypt('abc','1'),'1');
462
243
explain extended select concat('*',space(5),'*');
463
244
explain extended select reverse('abc');
464
245
explain extended select rpad('a',4,'1');
465
246
explain extended select lpad('a',4,'1');
466
247
explain extended select concat_ws(',','',NULL,'a');
467
explain extended select make_set(255,_latin2'a', _latin2'b', _latin2'c');
468
248
explain extended select elt(2,1);
469
249
explain extended select locate("a","b",2);
470
250
explain extended select char(0);
471
251
explain extended select conv(130,16,10);
472
252
explain extended select hex(130);
473
253
explain extended select binary 'HE';
474
explain extended select export_set(255,_latin2'y', _latin2'n', _latin2' ');
475
explain extended select FIELD('b' COLLATE latin1_bin,'A','B');
476
explain extended select FIND_IN_SET(_latin1'B', _latin1'a,b,c,d');
477
254
explain extended select collation(conv(130,16,10));
478
255
explain extended select coercibility(conv(130,16,10));
479
256
explain extended select length('\n\t\r\b\0\_\%\\');
480
explain extended select bit_length('\n\t\r\b\0\_\%\\');
481
explain extended select bit_length('\n\t\r\b\0\_\%\\');
482
257
explain extended select concat('monty',' was here ','again');
483
258
explain extended select length('hello');
484
259
explain extended select char(ascii('h'));
875
596
# 3) Each md5() result must be identical.
876
597
# 4) The md5() result must never change, and must be stable across releases.
878
set @password="password";
879
set @my_data="clear text to encode";
880
select md5(encode(@my_data, "password"));
881
select md5(encode(@my_data, _utf8 "password"));
882
select md5(encode(@my_data, binary "password"));
883
select md5(encode(@my_data, _latin1 "password"));
884
select md5(encode(@my_data, _koi8r "password"));
885
select md5(encode(@my_data, (select "password" from dual)));
886
select md5(encode(@my_data, concat("pass", "word")));
887
select md5(encode(@my_data, @password));
889
set @my_data="binary encoded data";
890
select md5(decode(@my_data, "password"));
891
select md5(decode(@my_data, _utf8 "password"));
892
select md5(decode(@my_data, binary "password"));
893
select md5(decode(@my_data, _latin1 "password"));
894
select md5(decode(@my_data, _koi8r "password"));
895
select md5(decode(@my_data, (select "password" from dual)));
896
select md5(decode(@my_data, concat("pass", "word")));
897
select md5(decode(@my_data, @password));
900
601
select format(pi(), (1+1));
901
select format(pi(), (select 3 from dual));
602
select format(pi(), (select 3));
902
603
select format(pi(), @dec);
904
605
set @bench_count=10;
905
606
select benchmark(10, pi());
906
607
select benchmark(5+5, pi());
907
select benchmark((select 10 from dual), pi());
608
select benchmark((select 10), pi());
908
609
select benchmark(@bench_count, pi());