mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	but not collation. The problem here was that text literals in a view were always dumped with character set introducer. That lead to loosing collation information. The fix is to dump character set introducer only if it was in the original query. That is now possible because there is no problem any more of loss of character set of string literals in views -- after WL#4052 the view is dumped in the original character set. mysql-test/r/case.result: Update result file. mysql-test/r/compress.result: Update result file. mysql-test/r/ctype_collate.result: Update result file. mysql-test/r/date_formats.result: Update result file. mysql-test/r/ddl_i18n_koi8r.result: Update result file. mysql-test/r/ddl_i18n_utf8.result: Update result file. mysql-test/r/fulltext.result: Update result file. mysql-test/r/func_crypt.result: Update result file. mysql-test/r/func_encrypt.result: Update result file. mysql-test/r/func_if.result: Update result file. mysql-test/r/func_in.result: Update result file. mysql-test/r/func_like.result: Update result file. mysql-test/r/func_regexp.result: Update result file. mysql-test/r/func_set.result: Update result file. mysql-test/r/func_str.result: Update result file. mysql-test/r/func_time.result: Update result file. mysql-test/r/gis.result: Update result file. mysql-test/r/group_min_max.result: Update result file. mysql-test/r/mysqldump.result: Update result file. mysql-test/r/negation_elimination.result: Update result file. mysql-test/r/null.result: Update result file. mysql-test/r/select.result: Update result file. mysql-test/r/show_check.result: Update result file. mysql-test/r/sp-code.result: Update result file. mysql-test/r/ssl.result: Update result file. mysql-test/r/ssl_compress.result: Update result file. mysql-test/r/subselect.result: Update result file. mysql-test/r/temp_table.result: Update result file. mysql-test/r/type_blob.result: Update result file. mysql-test/r/view.result: Update result file. mysql-test/suite/binlog/r/binlog_stm_blackhole.result: Update result file. mysql-test/suite/rpl/r/rpl_get_lock.result: Update result file. mysql-test/suite/rpl/r/rpl_master_pos_wait.result: Update result file. mysql-test/t/view.test: Add a test case for Bug#32538. sql/item.cc: Do not dump character set introducer if it was not specified explicitly in the original query. sql/item.h: Add 'cs_specified' property to Item_string. sql/sql_yacc.yy: Set Item_string::cs_specified property to TRUE when character set introducer is explicitly specified.
		
			
				
	
	
		
			106 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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));
 | |
| 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))
 | |
| 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));
 | |
| 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))
 | |
| 8
 | |
| End of 5.0 tests
 |