mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Bug#6147: Traditional: Assigning a string to a numeric column has unexpected results
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''
This commit is contained in:
@@ -31,19 +31,19 @@ Error 1064 You have an error in your SQL syntax; check the manual that correspon
|
||||
insert into t1 values (1);
|
||||
insert into t1 values ("hej");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
|
||||
insert into t1 values ("hej"),("d<>");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 2
|
||||
Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'd?' for column 'a' at row 2
|
||||
set SQL_WARNINGS=1;
|
||||
insert into t1 values ("hej");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
|
||||
insert into t1 values ("hej"),("d<>");
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 2
|
||||
Warning 1366 Incorrect integer value: 'hej' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'd?' for column 'a' at row 2
|
||||
drop table t1;
|
||||
set SQL_WARNINGS=0;
|
||||
drop temporary table if exists not_exists;
|
||||
@@ -187,44 +187,44 @@ create table t1 (a int);
|
||||
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
||||
update t1 set a='abc';
|
||||
Warnings:
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 2
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 3
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 4
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 5
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 6
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 7
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 8
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 9
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 10
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 2
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 4
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 5
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 6
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 7
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 8
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 9
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
|
||||
show warnings limit 2, 1;
|
||||
Level Code Message
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 3
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
|
||||
show warnings limit 0, 10;
|
||||
Level Code Message
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 2
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 3
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 4
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 5
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 6
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 7
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 8
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 9
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 10
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 2
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 3
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 4
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 5
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 6
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 7
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 8
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 9
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
|
||||
show warnings limit 9, 1;
|
||||
Level Code Message
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 10
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
|
||||
show warnings limit 10, 1;
|
||||
Level Code Message
|
||||
show warnings limit 9, 2;
|
||||
Level Code Message
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 10
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 10
|
||||
show warnings limit 0, 0;
|
||||
Level Code Message
|
||||
show warnings limit 1;
|
||||
Level Code Message
|
||||
Warning 1264 Out of range value adjusted for column 'a' at row 1
|
||||
Warning 1366 Incorrect integer value: 'abc' for column 'a' at row 1
|
||||
show warnings limit 0;
|
||||
Level Code Message
|
||||
show warnings limit 1, 0;
|
||||
|
||||
Reference in New Issue
Block a user