Re: Ryu floating point output patch
Andrew Gierth <andrew@tao11.riddles.org.uk>
From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Donald Dong <xdong@csumb.edu>
Cc: "pgsql-hackers\@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2019-01-20T01:12:36Z
Lists: pgsql-hackers
>>>>> "Donald" == Donald Dong <xdong@csumb.edu> writes:
Donald> I think the previous additional digits behavior still exist
Donald> in the latest patch. For example:
Donald> =# set extra_float_digits = 0;
Donald> SET
Donald> =# select float4in('1.123456789');
Donald> float4in
Donald> ----------
Donald> 1.12346
Donald> (1 row)
Donald> =# set extra_float_digits = 1;
Donald> SET
Donald> =# select float4in('1.123456789');
Donald> float4in
Donald> -----------
Donald> 1.1234568
Donald> (1 row)
Donald> The extra_float_digits is increased by 1, but two digits are
Donald> added.
That's intentional; this patch takes any value of extra_float_digits
greater than 0 to mean "generate the shortest precise output".
In practice setting extra_float_digits to 1 is rare to nonexistent;
almost all users of extra_float_digits set it to either 3 (to get
precise values), 2 (for historical reasons since we didn't allow more
than 2 in older versions), or less than 0 (to get rounded output for
more convenient display when precision is not required).
--
Andrew (irc:RhodiumToad)
Commits
-
Provide an extra-float-digits setting for pg_dump / pg_dumpall
- af25bc03e17e 12.0 landed
-
Change floating-point output format for improved performance.
- 02ddd499322a 12.0 landed
-
Use strtof() and not strtod() for float4 input.
- f397e08599a3 12.0 landed