100 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			100 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # | ||
|  | # Testing if SET and similar functions | ||
|  | # | ||
|  | 
 | ||
|  | select interval(55,10,20,30,40,50,60,70,80,90,100),interval(3,1,1+1,1+1+1+1),field("IBM","NCA","ICL","SUN","IBM","DIGITAL"),field("A","B","C"),elt(2,"ONE","TWO","THREE"),interval(0,1,2,3,4),elt(1,1,2,3)|0,elt(1,1.1,1.2,1.3)+0; | ||
|  | explain extended select INTERVAL(55,10,20,30,40,50,60,70,80,90,100),interval(3,1,1+1,1+1+1+1),field("IBM","NCA","ICL","SUN","IBM","DIGITAL"),field("A","B","C"),elt(2,"ONE","TWO","THREE"),interval(0,1,2,3,4),elt(1,1,2,3)|0,elt(1,1.1,1.2,1.3)+0; | ||
|  | # Test 8 and 9 values (Bug #1561) | ||
|  | SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56); | ||
|  | SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56, 77); | ||
|  | 
 | ||
|  | select find_in_set("b","a,b,c"),find_in_set("c","a,b,c"),find_in_set("dd","a,bbb,dd"),find_in_set("bbb","a,bbb,dd"); | ||
|  | select find_in_set("d","a,b,c"),find_in_set("dd","a,bbb,d"),find_in_set("bb","a,bbb,dd"); | ||
|  | select make_set(0,'a','b','c'),make_set(-1,'a','b','c'),make_set(1,'a','b','c'),make_set(2,'a','b','c'),make_set(1+2,concat('a','b'),'c'); | ||
|  | select make_set(NULL,'a','b','c'),make_set(1|4,'a',NULL,'c'),make_set(1+2,'a',NULL,'c'); | ||
|  | select export_set(9,"Y","N","-",5),export_set(9,"Y","N"),export_set(9,"Y","N",""); | ||
|  | 
 | ||
|  | # | ||
|  | # Wrong usage of functions | ||
|  | # | ||
|  | select elt(2,1),field(NULL,"a","b","c"); | ||
|  | select field("b","a",NULL),field(1,0,NULL)+0,field(1.0,0.0,NULL)+0.0,field(1.0e1,0.0e1,NULL)+0.0e1; | ||
|  | select field(NULL,"a",NULL),field(NULL,0,NULL)+0,field(NULL,0.0,NULL)+0.0,field(NULL,0.0e1,NULL)+0.0e1; | ||
|  | select find_in_set("","a,b,c"),find_in_set("","a,b,c,"),find_in_set("",",a,b,c"); | ||
|  | select find_in_set("abc","abc"),find_in_set("ab","abc"),find_in_set("abcd","abc"); | ||
|  | select interval(null, 1, 10, 100); | ||
|  | 
 | ||
|  | # | ||
|  | # test for a bug with elt() | ||
|  | # | ||
|  | 
 | ||
|  | --disable_warnings | ||
|  | drop table if exists t1,t2; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | create  table t1 (id int(10) not null unique); | ||
|  | create  table t2 (id int(10) not null primary key, val int(10) not null); | ||
|  | insert into t1 values (1),(2),(4); | ||
|  | insert into t2 values (1,1),(2,1),(3,1),(4,2); | ||
|  | 
 | ||
|  | select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id; | ||
|  | select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id; | ||
|  | drop table t1,t2; | ||
|  | 
 | ||
|  | # | ||
|  | # Bug4340: find_in_set is case insensitive even on binary operators | ||
|  | # | ||
|  | 
 | ||
|  | select find_in_set(binary 'a',binary 'A,B,C'); | ||
|  | select find_in_set('a',binary 'A,B,C'); | ||
|  | select find_in_set(binary 'a', 'A,B,C'); | ||
|  | 
 | ||
|  | # | ||
|  | # Bug5513:FIND_IN_SET fails if set ends with a comma | ||
|  | # | ||
|  | select find_in_set('1','3,1,'); | ||
|  | 
 | ||
|  | --echo End of 4.1 tests | ||
|  | 
 | ||
|  | # | ||
|  | # Bug #32560: crash with interval function and count(*) | ||
|  | # | ||
|  | SELECT INTERVAL(0.0, NULL); | ||
|  | SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL)); | ||
|  | SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL)); | ||
|  | SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); | ||
|  | SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),  | ||
|  |   CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL),  | ||
|  |   CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL), CAST(NULL AS DECIMAL)); | ||
|  | SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), | ||
|  |   CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), | ||
|  |   CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL), | ||
|  |   CAST(DATE(NULL) AS DECIMAL), CAST(DATE(NULL) AS DECIMAL)); | ||
|  | 
 | ||
|  | --echo End of 5.0 tests | ||
|  | 
 | ||
|  | # | ||
|  | # Bug#44367 valgrind warnings with find_in_set() functions | ||
|  | # | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | create table t1 (f1 set('test1','test2','test3') character set utf8 default null) | ||
|  | engine=myisam default charset=latin1; | ||
|  | insert into t1 values (''),(null),(null),(''),(''),(''); | ||
|  | select find_in_set(f1,f1) as a from t1,(select find_in_set(f1,f1) as b from t1) a; | ||
|  | drop table t1; | ||
|  | # | ||
|  | # Bug#45168: assertion with convert() and empty set value | ||
|  | # | ||
|  | CREATE TABLE t1( a SET('a', 'b', 'c') ); | ||
|  | CREATE TABLE t2( a SET('a', 'b', 'c') ); | ||
|  | 
 | ||
|  | INSERT INTO t1 VALUES ('d'); | ||
|  | INSERT INTO t2 VALUES (''); | ||
|  | 
 | ||
|  | SELECT CONVERT( a USING latin1 ) FROM t1; | ||
|  | SELECT CONVERT( a USING latin1 ) FROM t2; | ||
|  | 
 | ||
|  | DROP TABLE t1, t2; |