mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	The problem was that when converting a string to an exact number, rounding didn't work, because conversion didn't understand approximate numbers notation. Fix: a new function for string-to-number conversion was implemented, which is aware of approxinate number notation (with decimal point and exponent, e.g. -19.55e-1) include/m_ctype.h: Adding new function into MY_CHARSET_HANDLER Adding prototypes for 8bit and ucs2 functions. mysql-test/r/loaddata.result: Fixing results mysql-test/r/ps_2myisam.result: Fixing results mysql-test/r/ps_3innodb.result: Fixing results mysql-test/r/ps_4heap.result: Fixing results mysql-test/r/ps_5merge.result: Fixing results mysql-test/r/ps_6bdb.result: Fixing results mysql-test/r/rpl_rewrite_db.result: Fixing results mysql-test/r/select.result: Fixing results mysql-test/r/sp-vars.result: Fixing results mysql-test/r/strict.result: Fixing results mysql-test/r/view.result: Fixing results mysql-test/r/warnings.result: Fixing results mysql-test/t/strict.test: Fixing results sql/field.cc: Using new function strings/ctype-big5.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-bin.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-cp932.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-euc_kr.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-eucjpms.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-gb2312.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-gbk.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-latin1.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-simple.c: Implementing my_strntoull10_8bit Adding new function into MY_CHARSET_HANDLER strings/ctype-sjis.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-tis620.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-ucs2.c: Implementing UCS2 wrapper for 8bit version Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-ujis.c: Adding new function into the MY_CHARSET_HANDLER structure strings/ctype-utf8.c: Adding new function into the MY_CHARSET_HANDLER structure mysql-test/r/round.result: New BitKeeper file ``mysql-test/r/round.result'' mysql-test/t/round.test: New BitKeeper file ``mysql-test/t/round.test''
		
			
				
	
	
		
			143 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| drop table if exists t1, t2;
 | |
| create table t1 (a date, b date, c date not null, d date);
 | |
| load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'a' at row 1
 | |
| Warning	1265	Data truncated for column 'c' at row 1
 | |
| Warning	1265	Data truncated for column 'd' at row 1
 | |
| Warning	1265	Data truncated for column 'a' at row 2
 | |
| Warning	1265	Data truncated for column 'b' at row 2
 | |
| Warning	1265	Data truncated for column 'd' at row 2
 | |
| load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
 | |
| SELECT * from t1;
 | |
| a	b	c	d
 | |
| 0000-00-00	NULL	0000-00-00	0000-00-00
 | |
| 0000-00-00	0000-00-00	0000-00-00	0000-00-00
 | |
| 2003-03-03	2003-03-03	2003-03-03	NULL
 | |
| 2003-03-03	2003-03-03	2003-03-03	NULL
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
 | |
| Warnings:
 | |
| Warning	1265	Data truncated for column 'c' at row 1
 | |
| Warning	1265	Data truncated for column 'd' at row 1
 | |
| Warning	1265	Data truncated for column 'b' at row 2
 | |
| Warning	1265	Data truncated for column 'd' at row 2
 | |
| SELECT * from t1;
 | |
| a	b	c	d
 | |
| NULL	NULL	0000-00-00	0000-00-00
 | |
| NULL	0000-00-00	0000-00-00	0000-00-00
 | |
| NULL	2003-03-03	2003-03-03	NULL
 | |
| drop table t1;
 | |
| create table t1 (a text, b text);
 | |
| load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
 | |
| Warnings:
 | |
| Warning	1261	Row 3 doesn't contain data for all columns
 | |
| select concat('|',a,'|'), concat('|',b,'|') from t1;
 | |
| concat('|',a,'|')	concat('|',b,'|')
 | |
| |Field A|	|Field B|
 | |
| |Field 1|	|Field 2' 
 | |
| Field 3,'Field 4|
 | |
| |Field 5' ,'Field 6|	NULL
 | |
| |Field 6|	| 'Field 7'|
 | |
| drop table t1;
 | |
| create table t1 (a int, b char(10));
 | |
| load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
 | |
| Warnings:
 | |
| Warning	1366	Incorrect integer value: 'error      ' for column 'a' at row 3
 | |
| Warning	1262	Row 3 was truncated; it contained more data than there were input columns
 | |
| Warning	1366	Incorrect integer value: 'wrong end  ' for column 'a' at row 5
 | |
| Warning	1262	Row 5 was truncated; it contained more data than there were input columns
 | |
| select * from t1;
 | |
| a	b
 | |
| 1	row 1
 | |
| 2	row 2
 | |
| 0	1234567890
 | |
| 3	row 3
 | |
| 0	1234567890
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
 | |
| Warnings:
 | |
| Warning	1366	Incorrect integer value: '
 | |
| ' for column 'a' at row 4
 | |
| Warning	1261	Row 4 doesn't contain data for all columns
 | |
| select * from t1;
 | |
| a	b
 | |
| 1	row 1
 | |
| 2	row 2
 | |
| 3	row 3
 | |
| 0	
 | |
| drop table t1;
 | |
| SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
 | |
| create table t1(id integer not null auto_increment primary key);
 | |
| insert into t1 values(0);
 | |
| select * from t1;
 | |
| id
 | |
| 0
 | |
| select * from t1;
 | |
| id
 | |
| 0
 | |
| SET @@SQL_MODE=@OLD_SQL_MODE;
 | |
| drop table t1;
 | |
| create table t1 (a varchar(20), b varchar(20));
 | |
| load data infile '../std_data_ln/loaddata_dq.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
 | |
| select * from t1;
 | |
| a	b
 | |
| field1	field2
 | |
| a"b	cd"ef
 | |
| a"b	c"d"e
 | |
| drop table t1;
 | |
| create table t1 (a int default 100, b int, c varchar(60));
 | |
| load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set b=@b+10, c=concat("b=",@b);
 | |
| select * from t1;
 | |
| a	b	c
 | |
| NULL	20	b=10
 | |
| NULL	25	b=15
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set c= if(a is null,"oops",a);
 | |
| select * from t1;
 | |
| a	b	c
 | |
| NULL	NULL	oops
 | |
| NULL	NULL	oops
 | |
| truncate table t1;
 | |
| set @c:=123;
 | |
| load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, b) set c= if(@a is null,@c,b);
 | |
| select * from t1;
 | |
| a	b	c
 | |
| 100	10	123
 | |
| 100	15	123
 | |
| load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@a, @b);
 | |
| select * from t1;
 | |
| a	b	c
 | |
| 100	10	123
 | |
| 100	15	123
 | |
| 100	NULL	NULL
 | |
| 100	NULL	NULL
 | |
| select @a, @b;
 | |
| @a	@b
 | |
| NULL	15
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c="Wow";
 | |
| select * from t1;
 | |
| a	b	c
 | |
| 1	2	Wow
 | |
| 3	4	Wow
 | |
| 5	6	Wow
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, b) set c=concat(a,"+",b,"+",@c,"+",b,"+",if(c is null,"NIL",c));
 | |
| select * from t1;
 | |
| a	b	c
 | |
| 1	2	1+2+123+2+NIL
 | |
| 3	4	3+4+123+4+NIL
 | |
| 5	6	5+6+123+6+NIL
 | |
| load data infile '../std_data_ln/loaddata5.dat' into table t1 fields terminated by '' enclosed by '' (a, @b);
 | |
| ERROR HY000: Can't load value from file with fixed size rows to variable
 | |
| create table t2 (num int primary key, str varchar(10));
 | |
| insert into t2 values (10,'Ten'), (15,'Fifteen');
 | |
| truncate table t1;
 | |
| load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (@dummy,@n) set a= @n, c= (select str from t2 where num=@n);
 | |
| select * from t1;
 | |
| a	b	c
 | |
| 10	NULL	Ten
 | |
| 15	NULL	Fifteen
 | |
| drop table t1, t2;
 |