mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 dd41be2a51
			
		
	
	
	dd41be2a51
	
	
	
		
			
			- Moving the check_cols(1) test from fix_fields() to fix_length_and_dec(). So the test is now done before the code calling val_decimal() in fix_length_and_dec(). - Removing Item_func_interval::fix_fields(), as it become equal to the inherited one.
		
			
				
	
	
		
			231 lines
		
	
	
	
		
			8.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
	
		
			8.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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;
 | |
| 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
 | |
| 5	2	4	0	TWO	0	1	1.1
 | |
| 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;
 | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | |
| 1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | |
| Warnings:
 | |
| Note	1003	select interval(55,10,20,30,40,50,60,70,80,90,100) AS `INTERVAL(55,10,20,30,40,50,60,70,80,90,100)`,interval(3,1,1 + 1,1 + 1 + 1 + 1) AS `interval(3,1,1+1,1+1+1+1)`,field('IBM','NCA','ICL','SUN','IBM','DIGITAL') AS `field("IBM","NCA","ICL","SUN","IBM","DIGITAL")`,field('A','B','C') AS `field("A","B","C")`,elt(2,'ONE','TWO','THREE') AS `elt(2,"ONE","TWO","THREE")`,interval(0,1,2,3,4) AS `interval(0,1,2,3,4)`,elt(1,1,2,3) | 0 AS `elt(1,1,2,3)|0`,elt(1,1.1,1.2,1.3) + 0 AS `elt(1,1.1,1.2,1.3)+0`
 | |
| SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56);
 | |
| INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56)
 | |
| 1
 | |
| SELECT INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56, 77);
 | |
| INTERVAL(13, 7, 14, 21, 28, 35, 42, 49, 56, 77)
 | |
| 1
 | |
| 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");
 | |
| 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")
 | |
| 2	3	3	2
 | |
| select find_in_set("d","a,b,c"),find_in_set("dd","a,bbb,d"),find_in_set("bb","a,bbb,dd");
 | |
| find_in_set("d","a,b,c")	find_in_set("dd","a,bbb,d")	find_in_set("bb","a,bbb,dd")
 | |
| 0	0	0
 | |
| 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');
 | |
| 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')
 | |
| 	a,b,c	a	b	ab,c
 | |
| select make_set(NULL,'a','b','c'),make_set(1|4,'a',NULL,'c'),make_set(1+2,'a',NULL,'c');
 | |
| make_set(NULL,'a','b','c')	make_set(1|4,'a',NULL,'c')	make_set(1+2,'a',NULL,'c')
 | |
| NULL	a,c	a
 | |
| select export_set(9,"Y","N","-",5),export_set(9,"Y","N"),export_set(9,"Y","N","");
 | |
| export_set(9,"Y","N","-",5)	export_set(9,"Y","N")	export_set(9,"Y","N","")
 | |
| Y-N-N-Y-N	Y,N,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N	YNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
 | |
| select elt(2,1),field(NULL,"a","b","c");
 | |
| elt(2,1)	field(NULL,"a","b","c")
 | |
| NULL	0
 | |
| 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;
 | |
| 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
 | |
| 0	0	0.0	0
 | |
| select field(NULL,"a",NULL),field(NULL,0,NULL)+0,field(NULL,0.0,NULL)+0.0,field(NULL,0.0e1,NULL)+0.0e1;
 | |
| field(NULL,"a",NULL)	field(NULL,0,NULL)+0	field(NULL,0.0,NULL)+0.0	field(NULL,0.0e1,NULL)+0.0e1
 | |
| 0	0	0.0	0
 | |
| select find_in_set("","a,b,c"),find_in_set("","a,b,c,"),find_in_set("",",a,b,c");
 | |
| find_in_set("","a,b,c")	find_in_set("","a,b,c,")	find_in_set("",",a,b,c")
 | |
| 0	4	1
 | |
| select find_in_set("abc","abc"),find_in_set("ab","abc"),find_in_set("abcd","abc");
 | |
| find_in_set("abc","abc")	find_in_set("ab","abc")	find_in_set("abcd","abc")
 | |
| 1	0	0
 | |
| select interval(null, 1, 10, 100);
 | |
| interval(null, 1, 10, 100)
 | |
| -1
 | |
| drop table if exists t1,t2;
 | |
| 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;
 | |
| id	elt(two.val,'one','two')
 | |
| 1	one
 | |
| 2	one
 | |
| 4	two
 | |
| select one.id, elt(two.val,'one','two') from t1 one, t2 two where two.id=one.id order by one.id;
 | |
| id	elt(two.val,'one','two')
 | |
| 1	one
 | |
| 2	one
 | |
| 4	two
 | |
| drop table t1,t2;
 | |
| select find_in_set(binary 'a',binary 'A,B,C');
 | |
| find_in_set(binary 'a',binary 'A,B,C')
 | |
| 0
 | |
| select find_in_set('a',binary 'A,B,C');
 | |
| find_in_set('a',binary 'A,B,C')
 | |
| 0
 | |
| select find_in_set(binary 'a', 'A,B,C');
 | |
| find_in_set(binary 'a', 'A,B,C')
 | |
| 0
 | |
| select find_in_set('1','3,1,');
 | |
| find_in_set('1','3,1,')
 | |
| 2
 | |
| End of 4.1 tests
 | |
| SELECT INTERVAL(0.0, NULL);
 | |
| INTERVAL(0.0, NULL)
 | |
| 1
 | |
| SELECT INTERVAL(0.0, CAST(NULL AS DECIMAL));
 | |
| INTERVAL(0.0, CAST(NULL AS DECIMAL))
 | |
| 1
 | |
| SELECT INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL));
 | |
| INTERVAL(0.0, CAST(DATE(NULL) AS DECIMAL))
 | |
| 1
 | |
| SELECT INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
 | |
| INTERVAL(0.0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
 | |
| 8
 | |
| 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)) as exp;
 | |
| exp
 | |
| 8
 | |
| 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)) as exp;
 | |
| exp
 | |
| 8
 | |
| End of 5.0 tests
 | |
| drop table if exists t1;
 | |
| 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;
 | |
| a
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| NULL
 | |
| NULL
 | |
| 0
 | |
| 0
 | |
| 0
 | |
| drop table t1;
 | |
| CREATE TABLE t1( a SET('a', 'b', 'c') );
 | |
| CREATE TABLE t2( a SET('a', 'b', 'c') );
 | |
| INSERT IGNORE INTO t1 VALUES ('d');
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'a' at row 1
 | |
| INSERT INTO t2 VALUES ('');
 | |
| SELECT CONVERT( a USING latin1 ) FROM t1;
 | |
| CONVERT( a USING latin1 )
 | |
| 
 | |
| SELECT CONVERT( a USING latin1 ) FROM t2;
 | |
| CONVERT( a USING latin1 )
 | |
| 
 | |
| DROP TABLE t1, t2;
 | |
| #
 | |
| # Start of 5.3 tests
 | |
| #
 | |
| #
 | |
| # MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types
 | |
| #
 | |
| CREATE TABLE t1 (pk INT PRIMARY KEY);
 | |
| INSERT INTO t1 VALUES (10),(11);
 | |
| SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) as exp FROM t1;
 | |
| exp
 | |
| 8
 | |
| 8
 | |
| Warnings:
 | |
| Warning	1292	Incorrect datetime value: '10' for column `test`.`t1`.`pk` at row 1
 | |
| Warning	1292	Incorrect datetime value: '11' for column `test`.`t1`.`pk` at row 2
 | |
| DROP TABLE t1;
 | |
| #
 | |
| # End of 5.3 tests
 | |
| #
 | |
| #
 | |
| # BUG#59405: FIND_IN_SET won't work normaly after upgrade from 5.1 to 5.5
 | |
| #
 | |
| CREATE TABLE t1(days set('1','2','3','4','5','6','7'));
 | |
| INSERT INTO t1 VALUES('1,2,3,4,5,6,7'), (NULL), ('1,2,3,4,5,6,7');
 | |
| 
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), days);
 | |
| days
 | |
| 1,2,3,4,5,6,7
 | |
| 1,2,3,4,5,6,7
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), days) IS UNKNOWN;
 | |
| days
 | |
| NULL
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), NULL);
 | |
| days
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(DAYOFWEEK(CURRENT_DATE()), NULL) IS UNKNOWN;
 | |
| days
 | |
| 1,2,3,4,5,6,7
 | |
| NULL
 | |
| 1,2,3,4,5,6,7
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(7, days);
 | |
| days
 | |
| 1,2,3,4,5,6,7
 | |
| 1,2,3,4,5,6,7
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(8, days);
 | |
| days
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(NULL, days);
 | |
| days
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(NULL, days) IS UNKNOWN;
 | |
| days
 | |
| 1,2,3,4,5,6,7
 | |
| NULL
 | |
| 1,2,3,4,5,6,7
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(NULL, NULL);
 | |
| days
 | |
| SELECT * FROM t1 WHERE FIND_IN_SET(NULL, NULL) IS UNKNOWN;
 | |
| days
 | |
| 1,2,3,4,5,6,7
 | |
| NULL
 | |
| 1,2,3,4,5,6,7
 | |
| 
 | |
| DROP TABLE t1;
 | |
| #
 | |
| # MDEV-14596 Crash in INTERVAL(ROW(..),ROW(..))
 | |
| #
 | |
| SELECT INTERVAL(ROW(1,1),ROW(1,2));
 | |
| ERROR 21000: Operand should contain 1 column(s)
 | |
| SELECT INTERVAL(1,ROW(1,2));
 | |
| ERROR 21000: Operand should contain 1 column(s)
 | |
| SELECT INTERVAL(ROW(1,2),1);
 | |
| ERROR 21000: Operand should contain 1 column(s)
 | |
| #
 | |
| # MDEV-29184 Assertion `0' in Item_row::illegal_method_call, Type_handler_row::Item_update_null_value, Item::update_null_value
 | |
| #
 | |
| SELECT INTERVAL(0, ROW(1,1), 1, 1, 1, 1, 1, 1, 1) AS f;
 | |
| ERROR 21000: Operand should contain 1 column(s)
 |