diff options
author | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-12-22 19:23:13 +0300 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2009-12-22 19:23:13 +0300 |
commit | 12f364ece7663663cabdc29f106ca69af63fe4e7 (patch) | |
tree | 40437c602d2a9ddaa03a54742cec4884f0974253 /mysql-test/r/insert.result | |
parent | d4f23f0cf6db38731a161c5c7b0b056fc67e5c02 (diff) | |
download | mariadb-git-12f364ece7663663cabdc29f106ca69af63fe4e7.tar.gz |
Backport of WL #2934: Make/find library for doing float/double
to string conversions and vice versa"
Initial import of the dtoa.c code and custom wrappers around it
to allow its usage from the server code.
Conversion of FLOAT/DOUBLE values to DECIMAL ones or strings
and vice versa has been significantly reworked. As the new
algoritms are more precise than the older ones, results of such
conversions may not always match those obtained from older
server versions. This in turn may break compatibility for some
applications.
This patch also fixes the following bugs:
- bug #12860 "Difference in zero padding of exponent between
Unix and Windows"
- bug #21497 "DOUBLE truncated to unusable value"
- bug #26788 "mysqld (debug) aborts when inserting specific
numbers into char fields"
- bug #24541 "Data truncated..." on decimal type columns
without any good reason"
Diffstat (limited to 'mysql-test/r/insert.result')
-rw-r--r-- | mysql-test/r/insert.result | 70 |
1 files changed, 31 insertions, 39 deletions
diff --git a/mysql-test/r/insert.result b/mysql-test/r/insert.result index 36d2b9ef348..b322c5da73a 100644 --- a/mysql-test/r/insert.result +++ b/mysql-test/r/insert.result @@ -175,12 +175,12 @@ Warning 1264 Out of range value for column 'f_float_3_1_u' at row 1 select * from t1 where number =last_insert_id(); number 4 original_value 1e+1111111111a -f_double 1.79769313486232e+308 -f_float 3.40282e+38 +f_double 1.7976931348623157e308 +f_float 3.40282e38 f_double_7_2 99999.99 f_float_4_3 9.999 -f_double_u 1.79769313486232e+308 -f_float_u 3.40282e+38 +f_double_u 1.7976931348623157e308 +f_float_u 3.40282e38 f_double_15_1_u 99999999999999.9 f_float_3_1_u 99.9 set @value= "-1e+1111111111a"; @@ -204,8 +204,8 @@ Warning 1264 Out of range value for column 'f_float_3_1_u' at row 1 select * from t1 where number =last_insert_id(); number 5 original_value -1e+1111111111a -f_double -1.79769313486232e+308 -f_float -3.40282e+38 +f_double -1.7976931348623157e308 +f_float -3.40282e38 f_double_7_2 -99999.99 f_float_4_3 -9.999 f_double_u 0 @@ -227,13 +227,13 @@ Warning 1264 Out of range value for column 'f_double_15_1_u' at row 1 Warning 1264 Out of range value for column 'f_float_3_1_u' at row 1 select * from t1 where number =last_insert_id(); number 6 -original_value 1e+111 -f_double 1e+111 -f_float 3.40282e+38 +original_value 1e111 +f_double 1e111 +f_float 3.40282e38 f_double_7_2 99999.99 f_float_4_3 9.999 -f_double_u 1e+111 -f_float_u 3.40282e+38 +f_double_u 1e111 +f_float_u 3.40282e38 f_double_15_1_u 99999999999999.9 f_float_3_1_u 99.9 set @value= -1e+111; @@ -248,9 +248,9 @@ Warning 1264 Out of range value for column 'f_double_15_1_u' at row 1 Warning 1264 Out of range value for column 'f_float_3_1_u' at row 1 select * from t1 where number =last_insert_id(); number 7 -original_value -1e+111 -f_double -1e+111 -f_float -3.40282e+38 +original_value -1e111 +f_double -1e111 +f_float -3.40282e38 f_double_7_2 -99999.99 f_float_4_3 -9.999 f_double_u 0 @@ -524,42 +524,36 @@ INSERT INTO t1(a,b) VALUES (1.25e-175, 1.25e-175); INSERT INTO t1(a,c) VALUES (1.225e+0, 1.225e+0); INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); -Warnings: -Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); Warnings: Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); -Warnings: -Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,c) VALUES (5000e+0, 5000e+0); INSERT INTO t1(a,c) VALUES (-5000e+0, -5000e+0); -Warnings: -Warning 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 9.999999 10 10 -1.225e-05 1.2e-05 1e-0 -0.0001225 0.00012 NULL +0.00001225 1.22e-5 1e-5 +0.0001225 1.22e-4 NULL 0.1225 0.1225 NULL 0.1225877 0.12259 NULL 12.25 12.25 NULL 12.25 12.25 12.2 122500 122500 NULL -12250000000 1.2e+10 NULL -1.225e+15 1.2e+15 NULL +12250000000 1.22e10 NULL +1.225e15 1.22e15 NULL 5000000 5000000 NULL -1.25e+78 1.2e+78 NULL +1.25e78 1.25e78 NULL 1.25e-94 1.2e-94 NULL -1.25e+203 1e+203 NULL +1.25e203 1.2e203 NULL 1.25e-175 1e-175 NULL 1.225 NULL 1.23 1.37 NULL 1.37 --1.37 NULL -1.3 -0.00187 NULL 0.00 --0.0187 NULL -0.0 +-1.37 NULL -1.4 +0.00187 NULL 2e-3 +-0.0187 NULL 0 5000 NULL 5000 --5000 NULL -500 +-5000 NULL -5e3 DROP TABLE t1; CREATE TABLE t1 ( a char(20) NOT NULL, @@ -586,32 +580,30 @@ INSERT INTO t1(a,c) VALUES (1.37e+0, 1.37e+0); INSERT INTO t1(a,c) VALUES (-1.37e+0, -1.37e+0); INSERT INTO t1(a,c) VALUES (1.87e-3, 1.87e-3); INSERT INTO t1(a,c) VALUES (-1.87e-2, -1.87e-2); -Warnings: -Warning 1265 Data truncated for column 'c' at row 1 INSERT INTO t1(a,c) VALUES (5000e+0, 5000e+0); INSERT INTO t1(a,c) VALUES (-5000e+0, -5000e+0); SELECT * FROM t1; a b c 9.999999 10 9.999 -1.225e-05 1.2e-05 1e-05 -0.0001225 0.00012 NULL +0.00001225 1.22e-5 1e-5 +0.0001225 1.22e-4 NULL 0.1225 0.1225 NULL 0.1225877 0.12259 NULL 12.25 12.25 NULL 12.25 12.25 12.25 122500 122500 NULL -12250000000 1.2e+10 NULL -1.225e+15 1.2e+15 NULL +12250000000 1.22e10 NULL +1.225e15 1.22e15 NULL 5000000 5000000 NULL -1.25e+78 1.2e+78 NULL +1.25e78 1.25e78 NULL 1.25e-94 1.2e-94 NULL -1.25e+203 1e+203 NULL +1.25e203 1.2e203 NULL 1.25e-175 1e-175 NULL 1.225 NULL 1.225 1.37 NULL 1.37 -1.37 NULL -1.37 0.00187 NULL 0.002 --0.0187 NULL -0.01 +-0.0187 NULL -0.02 5000 NULL 5000 -5000 NULL -5000 DROP TABLE t1; |