mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
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"
This commit is contained in:
@ -2505,10 +2505,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 9.22337e+18
|
||||
c8 9.22337203685478e+18
|
||||
c9 9.22337203685478e+18
|
||||
c10 9.22337203685478e+18
|
||||
c7 9.22337e18
|
||||
c8 9.223372036854776e18
|
||||
c9 9.223372036854776e18
|
||||
c10 9.223372036854776e18
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '9223372036854775807' ;
|
||||
@ -2528,10 +2528,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 9.22337e+18
|
||||
c8 9.22337203685478e+18
|
||||
c9 9.22337203685478e+18
|
||||
c10 9.22337203685478e+18
|
||||
c7 9.22337e18
|
||||
c8 9.223372036854776e18
|
||||
c9 9.223372036854776e18
|
||||
c10 9.223372036854776e18
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= -9223372036854775808 ;
|
||||
@ -2551,10 +2551,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -9.22337e+18
|
||||
c8 -9.22337203685478e+18
|
||||
c9 -9.22337203685478e+18
|
||||
c10 -9.22337203685478e+18
|
||||
c7 -9.22337e18
|
||||
c8 -9.223372036854776e18
|
||||
c9 -9.223372036854776e18
|
||||
c10 -9.223372036854776e18
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '-9223372036854775808' ;
|
||||
@ -2574,10 +2574,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -9.22337e+18
|
||||
c8 -9.22337203685478e+18
|
||||
c9 -9.22337203685478e+18
|
||||
c10 -9.22337203685478e+18
|
||||
c7 -9.22337e18
|
||||
c8 -9.223372036854776e18
|
||||
c9 -9.223372036854776e18
|
||||
c10 -9.223372036854776e18
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= 1.11111111111111111111e+50 ;
|
||||
@ -2599,10 +2599,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 3.40282e+38
|
||||
c8 1.11111111111111e+50
|
||||
c9 1.11111111111111e+50
|
||||
c10 1.11111111111111e+50
|
||||
c7 3.40282e38
|
||||
c8 1.111111111111111e50
|
||||
c9 1.111111111111111e50
|
||||
c10 1.111111111111111e50
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '1.11111111111111111111e+50' ;
|
||||
@ -2624,10 +2624,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 3.40282e+38
|
||||
c8 1.11111111111111e+50
|
||||
c9 1.11111111111111e+50
|
||||
c10 1.11111111111111e+50
|
||||
c7 3.40282e38
|
||||
c8 1.111111111111111e50
|
||||
c9 1.111111111111111e50
|
||||
c10 1.111111111111111e50
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= -1.11111111111111111111e+50 ;
|
||||
@ -2649,10 +2649,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -3.40282e+38
|
||||
c8 -1.11111111111111e+50
|
||||
c9 -1.11111111111111e+50
|
||||
c10 -1.11111111111111e+50
|
||||
c7 -3.40282e38
|
||||
c8 -1.111111111111111e50
|
||||
c9 -1.111111111111111e50
|
||||
c10 -1.111111111111111e50
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '-1.11111111111111111111e+50' ;
|
||||
@ -2674,10 +2674,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -3.40282e+38
|
||||
c8 -1.11111111111111e+50
|
||||
c9 -1.11111111111111e+50
|
||||
c10 -1.11111111111111e+50
|
||||
c7 -3.40282e38
|
||||
c8 -1.111111111111111e50
|
||||
c9 -1.111111111111111e50
|
||||
c10 -1.111111111111111e50
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
test_sequence
|
||||
@ -2742,10 +2742,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
|
||||
51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
|
||||
52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
|
||||
53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
|
||||
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
|
||||
55 5 55 55 55 55 55 55 55 55 55 55
|
||||
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
|
||||
57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00
|
||||
54 5 54 54 54 54 54 54 54 54 54 54
|
||||
55 6 55 55 55 55 55 55 55 55 55 55
|
||||
56 6 56 56 56 56 56 56 56 56 56 56
|
||||
57 6 57 57 57 57 57 57 57 57 57 57
|
||||
60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
@ -2959,7 +2959,7 @@ c1 c13 c14 c15 c16 c17
|
||||
42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
51 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
60 NULL NULL 1991-01-01 01:01:01 NULL NULL
|
||||
@ -5527,10 +5527,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 9.22337e+18
|
||||
c8 9.22337203685478e+18
|
||||
c9 9.22337203685478e+18
|
||||
c10 9.22337203685478e+18
|
||||
c7 9.22337e18
|
||||
c8 9.223372036854776e18
|
||||
c9 9.223372036854776e18
|
||||
c10 9.223372036854776e18
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '9223372036854775807' ;
|
||||
@ -5550,10 +5550,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 9.22337e+18
|
||||
c8 9.22337203685478e+18
|
||||
c9 9.22337203685478e+18
|
||||
c10 9.22337203685478e+18
|
||||
c7 9.22337e18
|
||||
c8 9.223372036854776e18
|
||||
c9 9.223372036854776e18
|
||||
c10 9.223372036854776e18
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= -9223372036854775808 ;
|
||||
@ -5573,10 +5573,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -9.22337e+18
|
||||
c8 -9.22337203685478e+18
|
||||
c9 -9.22337203685478e+18
|
||||
c10 -9.22337203685478e+18
|
||||
c7 -9.22337e18
|
||||
c8 -9.223372036854776e18
|
||||
c9 -9.223372036854776e18
|
||||
c10 -9.223372036854776e18
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '-9223372036854775808' ;
|
||||
@ -5596,10 +5596,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -9.22337e+18
|
||||
c8 -9.22337203685478e+18
|
||||
c9 -9.22337203685478e+18
|
||||
c10 -9.22337203685478e+18
|
||||
c7 -9.22337e18
|
||||
c8 -9.223372036854776e18
|
||||
c9 -9.223372036854776e18
|
||||
c10 -9.223372036854776e18
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= 1.11111111111111111111e+50 ;
|
||||
@ -5621,10 +5621,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 3.40282e+38
|
||||
c8 1.11111111111111e+50
|
||||
c9 1.11111111111111e+50
|
||||
c10 1.11111111111111e+50
|
||||
c7 3.40282e38
|
||||
c8 1.111111111111111e50
|
||||
c9 1.111111111111111e50
|
||||
c10 1.111111111111111e50
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '1.11111111111111111111e+50' ;
|
||||
@ -5646,10 +5646,10 @@ c3 8388607
|
||||
c4 2147483647
|
||||
c5 2147483647
|
||||
c6 9223372036854775807
|
||||
c7 3.40282e+38
|
||||
c8 1.11111111111111e+50
|
||||
c9 1.11111111111111e+50
|
||||
c10 1.11111111111111e+50
|
||||
c7 3.40282e38
|
||||
c8 1.111111111111111e50
|
||||
c9 1.111111111111111e50
|
||||
c10 1.111111111111111e50
|
||||
c12 9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= -1.11111111111111111111e+50 ;
|
||||
@ -5671,10 +5671,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -3.40282e+38
|
||||
c8 -1.11111111111111e+50
|
||||
c9 -1.11111111111111e+50
|
||||
c10 -1.11111111111111e+50
|
||||
c7 -3.40282e38
|
||||
c8 -1.111111111111111e50
|
||||
c9 -1.111111111111111e50
|
||||
c10 -1.111111111111111e50
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
set @arg00= '-1.11111111111111111111e+50' ;
|
||||
@ -5696,10 +5696,10 @@ c3 -8388608
|
||||
c4 -2147483648
|
||||
c5 -2147483648
|
||||
c6 -9223372036854775808
|
||||
c7 -3.40282e+38
|
||||
c8 -1.11111111111111e+50
|
||||
c9 -1.11111111111111e+50
|
||||
c10 -1.11111111111111e+50
|
||||
c7 -3.40282e38
|
||||
c8 -1.111111111111111e50
|
||||
c9 -1.111111111111111e50
|
||||
c10 -1.111111111111111e50
|
||||
c12 -9999.9999
|
||||
execute my_delete ;
|
||||
test_sequence
|
||||
@ -5764,10 +5764,10 @@ c1 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30
|
||||
51 5 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0 51.0
|
||||
52 5 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0 52.0
|
||||
53 5 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0 53.0
|
||||
54 5 54 54 54.00 54.00 54.00 54.00 54.00 54.00 54.00 54.00
|
||||
55 5 55 55 55 55 55 55 55 55 55 55
|
||||
56 6 56 56 56.00 56.00 56.00 56.00 56.00 56.00 56.00 56.00
|
||||
57 6 57 57 57.00 57.00 57.00 57.00 57.00 57.00 57.00 57.00
|
||||
54 5 54 54 54 54 54 54 54 54 54 54
|
||||
55 6 55 55 55 55 55 55 55 55 55 55
|
||||
56 6 56 56 56 56 56 56 56 56 56 56
|
||||
57 6 57 57 57 57 57 57 57 57 57 57
|
||||
60 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
61 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
62 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
|
||||
@ -5981,7 +5981,7 @@ c1 c13 c14 c15 c16 c17
|
||||
42 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
43 0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
50 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
51 2010-00-00 2010-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
51 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
52 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
53 2001-00-00 2001-00-00 00:00:00 0000-00-00 00:00:00 838:59:59 0000
|
||||
60 NULL NULL 1991-01-01 01:01:01 NULL NULL
|
||||
|
Reference in New Issue
Block a user