# Version: 3.23.29 # # Description # ----------- # Testing string functions drop table if exists t1; select 'hello',"'hello'",'""hello""','''h''e''l''l''o''',"hel""lo",'hel\'lo'; select 'hello' 'monty'; select length('\n\t\r\b\0\_\%\\'); select bit_length('\n\t\r\b\0\_\%\\'); select concat('monty',' was here ','again'),length('hello'),char(ascii('h')); select locate('he','hello'),locate('he','hello',2),locate('lo','hello',2) ; select instr('hello','HE'), instr('hello',binary 'HE'), instr(binary 'hello','HE'); select position(binary 'll' in 'hello'),position('a' in binary 'hello'); select left('hello',2),right('hello',2),substring('hello',2,2),mid('hello',1,5) ; select concat('',left(right(concat('what ',concat('is ','happening')),9),4),'',substring('monty',5,1)) ; select substring_index('www.tcx.se','.',-2),substring_index('www.tcx.se','.',1); select substring_index('www.tcx.se','tcx',1),substring_index('www.tcx.se','tcx',-1); select substring_index('.tcx.se','.',-2),substring_index('.tcx.se','.tcx',-1); select substring_index('aaaaaaaaa1','a',1); select substring_index('aaaaaaaaa1','aa',1); select substring_index('aaaaaaaaa1','aa',2); select substring_index('aaaaaaaaa1','aa',3); select substring_index('aaaaaaaaa1','aa',4); select substring_index('aaaaaaaaa1','aa',5); select substring_index('aaaaaaaaa1','aaa',1); select substring_index('aaaaaaaaa1','aaa',2); select substring_index('aaaaaaaaa1','aaa',3); select substring_index('aaaaaaaaa1','aaa',4); select substring_index('aaaaaaaaa1','aaaa',1); select substring_index('aaaaaaaaa1','aaaa',2); select substring_index('aaaaaaaaa1','1',1); select substring_index('aaaaaaaaa1','a',-1); select substring_index('aaaaaaaaa1','aa',-1); select substring_index('aaaaaaaaa1','aa',-2); select substring_index('aaaaaaaaa1','aa',-3); select substring_index('aaaaaaaaa1','aa',-4); select substring_index('aaaaaaaaa1','aa',-5); select substring_index('aaaaaaaaa1','aaa',-1); select substring_index('aaaaaaaaa1','aaa',-2); select substring_index('aaaaaaaaa1','aaa',-3); select substring_index('aaaaaaaaa1','aaa',-4); select substring_index('the king of thethe hill','the',-2); select substring_index('the king of the the hill','the',-2); select substring_index('the king of the the hill','the',-2); select substring_index('the king of the the hill',' the ',-1); select substring_index('the king of the the hill',' the ',-2); select substring_index('the king of the the hill',' ',-1); select substring_index('the king of the the hill',' ',-2); select substring_index('the king of the the hill',' ',-3); select substring_index('the king of the the hill',' ',-4); select substring_index('the king of the the hill',' ',-5); select substring_index('the king of the.the hill','the',-2); select substring_index('the king of thethethe.the hill','the',-3); select substring_index('the king of thethethe.the hill','the',-1); select substring_index('the king of the the hill','the',1); select substring_index('the king of the the hill','the',2); select substring_index('the king of the the hill','the',3); select concat(':',ltrim(' left '),':',rtrim(' right '),':'); select concat(':',trim(LEADING FROM ' left'),':',trim(TRAILING FROM ' right '),':'); select concat(':',trim(' m '),':',trim(BOTH FROM ' y '),':',trim('*' FROM '*s*'),':'); select concat(':',trim(BOTH 'ab' FROM 'ababmyabab'),':',trim(BOTH '*' FROM '***sql'),':'); select concat(':',trim(LEADING '.*' FROM '.*my'),':',trim(TRAILING '.*' FROM 'sql.*.*'),':'); select TRIM("foo" FROM "foo"), TRIM("foo" FROM "foook"), TRIM("foo" FROM "okfoo"); select concat_ws(', ','monty','was here','again'); select concat_ws(NULL,'a'),concat_ws(',',NULL,''); select concat_ws(',','',NULL,'a'); SELECT CONCAT('"',CONCAT_WS('";"',repeat('a',60),repeat('b',60),repeat('c',60),repeat('d',100)), '"'); select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es'); select replace('aaaa','a','b'),replace('aaaa','aa','b'),replace('aaaa','a','bb'),replace('aaaa','','b'),replace('bbbb','a','c'); select replace(concat(lcase(concat('THIS',' ','IS',' ','A',' ')),ucase('false'),' ','test'),'FALSE','REAL') ; select soundex(''),soundex('he'),soundex('hello all folks'),soundex('#3556 in bugdb'); select md5('hello'); select sha('abc'); select sha1('abc'); select aes_decrypt(aes_encrypt('abc','1'),'1'); select aes_decrypt(aes_encrypt('abc','1'),1); select aes_encrypt(NULL,"a"); select aes_encrypt("a",NULL); select aes_decrypt(NULL,"a"); select aes_decrypt("a",NULL); select aes_decrypt("a","a"); select aes_decrypt(aes_encrypt("","a"),"a"); select repeat('monty',5),concat('*',space(5),'*'); select reverse('abc'),reverse('abcd'); select rpad('a',4,'1'),rpad('a',4,'12'),rpad('abcd',3,'12'), rpad(11, 10 , 22), rpad("ab", 10, 22); select lpad('a',4,'1'),lpad('a',4,'12'),lpad('abcd',3,'12'), lpad(11, 10 , 22); select rpad(741653838,17,'0'),lpad(741653838,17,'0'); select rpad('abcd',7,'ab'),lpad('abcd',7,'ab'); select rpad('abcd',1,'ab'),lpad('abcd',1,'ab'); select rpad('STRING', 20, CONCAT('p','a','d') ); select lpad('STRING', 20, CONCAT('p','a','d') ); select LEAST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'),GREATEST(NULL,'HARRY','HARRIOT',NULL,'HAROLD'); select least(1,2,3) | greatest(16,32,8), least(5,4)*1,greatest(-1.0,1.0)*1,least(3,2,1)*1.0,greatest(1,1.1,1.0),least("10",9),greatest("A","B","0"); select decode(encode(repeat("a",100000),"monty"),"monty")=repeat("a",100000); select decode(encode("abcdef","monty"),"monty")="abcdef"; select quote('\'\"\\test'); select quote(concat('abc\'', '\\cba')); select quote(1/0), quote('\0\Z'); select length(quote(concat(char(0),"test"))); select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); # # Bug #6564: QUOTE(NULL # select concat('a', quote(NULL)); # # Wrong usage of functions # select reverse(""); select insert("aa",100,1,"b"),insert("aa",1,3,"b"),left("aa",-1),substring("a",1,2); select elt(2,1),field(NULL,"a","b","c"),reverse(""); select locate("a","b",2),locate("","a",1); select ltrim("a"),rtrim("a"),trim(BOTH "" from "a"),trim(BOTH " " from "a"); select concat("1","2")|0,concat("1",".5")+0.0; select substring_index("www.tcx.se","",3); select length(repeat("a",100000000)),length(repeat("a",1000*64)); select position("0" in "baaa" in (1)),position("0" in "1" in (1,2,3)),position("sql" in ("mysql")); select position(("1" in (1,2,3)) in "01"); select length(repeat("a",65500)),length(concat(repeat("a",32000),repeat("a",32000))),length(replace("aaaaa","a",concat(repeat("a",10000)))),length(insert(repeat("a",40000),1,30000,repeat("b",50000))); select length(repeat("a",1000000)),length(concat(repeat("a",32000),repeat("a",32000),repeat("a",32000))),length(replace("aaaaa","a",concat(repeat("a",32000)))),length(insert(repeat("a",48000),1,1000,repeat("a",48000))); # # Problem med concat # create table t1 ( domain char(50) ); insert into t1 VALUES ("hello.de" ), ("test.de" ); select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@hello.de'; select domain from t1 where concat('@', trim(leading '.' from concat('.', domain))) = '@test.de'; drop table t1; # # Test bug in concat_ws # CREATE TABLE t1 ( id int(10) unsigned NOT NULL, title varchar(255) default NULL, prio int(10) unsigned default NULL, category int(10) unsigned default NULL, program int(10) unsigned default NULL, bugdesc text, created datetime default NULL, modified timestamp(14) NOT NULL, bugstatus int(10) unsigned default NULL, submitter int(10) unsigned default NULL ) TYPE=MyISAM; INSERT INTO t1 VALUES (1,'Link',1,1,1,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','2001-02-28 08:40:16',20010228084016,0,4); SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified,bugstatus,submitter), '"') FROM t1; SELECT CONCAT('"',CONCAT_WS('";"',title,prio,category,program,bugstatus,submitter), '"') FROM t1; SELECT CONCAT_WS('";"',title,prio,category,program,bugdesc,created,modified,bugstatus,submitter) FROM t1; SELECT bugdesc, REPLACE(bugdesc, 'xxxxxxxxxxxxxxxxxxxx', 'bbbbbbbbbbbbbbbbbbbb') from t1 group by bugdesc; drop table t1; # # Test bug in AES_DECRYPT() when called with wrong argument # CREATE TABLE t1 (id int(11) NOT NULL auto_increment, tmp text NOT NULL, KEY id (id)) TYPE=MyISAM; INSERT INTO t1 VALUES (1, 'a545f661efdd1fb66fdee3aab79945bf'); SELECT 1 FROM t1 WHERE tmp=AES_DECRYPT(tmp,"password"); DROP TABLE t1; CREATE TABLE t1 ( wid int(10) unsigned NOT NULL auto_increment, data_podp date default NULL, status_wnio enum('nowy','podp','real','arch') NOT NULL default 'nowy', PRIMARY KEY(wid) ); INSERT INTO t1 VALUES (8,NULL,'real'); INSERT INTO t1 VALUES (9,NULL,'nowy'); SELECT elt(status_wnio,data_podp) FROM t1 GROUP BY wid; DROP TABLE t1; # # test for #739 CREATE TABLE t1 ( title text ) TYPE=MyISAM; INSERT INTO t1 VALUES ('Congress reconvenes in September to debate welfare and adult education'); INSERT INTO t1 VALUES ('House passes the CAREERS bill'); SELECT CONCAT("",RPAD("",(55 - LENGTH(title)),".")) from t1; DROP TABLE t1; # # test for Bug #2290 "output truncated with ELT when using DISTINCT" # CREATE TABLE t1 (i int, j int); INSERT INTO t1 VALUES (1,1),(2,2); SELECT DISTINCT i, ELT(j, '345', '34') FROM t1; DROP TABLE t1; # # bug #3756: quote and NULL # create table t1(a char(4)); insert into t1 values ('one'),(NULL),('two'),('four'); select a, quote(a), isnull(quote(a)), quote(a) is null, ifnull(quote(a), 'n') from t1; drop table t1; # # Bug #5498: TRIM fails with LEADING or TRAILING if remstr = str # select trim(trailing 'foo' from 'foo'); select trim(leading 'foo' from 'foo'); # # crashing bug with QUOTE() and LTRIM() or TRIM() fixed # Bug #7495 # select quote(ltrim(concat(' ', 'a'))); select quote(trim(concat(' ', 'a'))); # Bad results from QUOTE(). Bug #8248 CREATE TABLE t1 SELECT 1 UNION SELECT 2 UNION SELECT 3; SELECT QUOTE('A') FROM t1; DROP TABLE t1; # # Test case for bug #8669: null aes_decrypt result in order by query # CREATE TABLE t1 (id int PRIMARY KEY, str char(255) NOT NULL); CREATE TABLE t2 (id int NOT NULL UNIQUE); INSERT INTO t2 VALUES (1),(2); INSERT INTO t1 VALUES (1, aes_encrypt('foo', 'bar')); INSERT INTO t1 VALUES (2, 'not valid'); SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id; SELECT t1.id, aes_decrypt(str, 'bar') FROM t1, t2 WHERE t1.id = t2.id ORDER BY t1.id; DROP TABLE t1, t2; # # Bug #12728: strange elt() behavior # create table t1(a varchar(8), primary key(a)); insert into t1 values('bar'), ('foo'); select a from t1 where a=elt(1, 'foo', 'bar') or a=elt(2, 'foo', 'bar'); drop table t1;