Re: PG 12 draft release notes

Andrew Gierth <andrew@tao11.riddles.org.uk>

From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Andres Freund <andres@anarazel.de>
Cc: Bruce Momjian <bruce@momjian.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2019-05-20T22:56:33Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc: PG 12 relnotes: update wording on truncate/vacuum item

  2. docs: PG 12 relnotes, update btree items

  3. doc: PG 12 relnotes, list added snowball/FTS languages

  4. doc: PG 12 relnotes, merge new SQL partition function items

  5. docs: PG 12 release notes, support functions

  6. docs: PG 12 relnote adjustments based on feedback from Tom Lane

  7. docs: adjust RECORD PG 12 relnote item

  8. doc: adjust PG 12 relnotes item on float digit adjustment

  9. doc: adjustments for PG 12 release notes

  10. docs: fix duplicate wording in PG 12 release notes

  11. doc: properly attibute PG 12 pgbench release note item

  12. doc: PG 12 release notes: normalize attribution names

  13. Refactor the fsync queue for wider use.

  14. Add "split after new tuple" nbtree optimization.

  15. Add nbtree high key "continuescan" optimization.

  16. Allow amcheck to re-find tuples using new search.

  17. Consider secondary factors during nbtree splits.

  18. Partial implementation of SQL/JSON path language

  19. Allow extensions to generate lossy index conditions.

  20. Make TupleTableSlots extensible, finish split of existing slot type.

  21. Reduce path length for locking leaf B-tree pages during insertion

[ To: header pruned ]

>>>>> "Andres" == Andres Freund <andres@anarazel.de> writes:

 Andres>      <para>
 Andres>       Avoid performing unnecessary rounding of <link
 Andres>       linkend="datatype-float"><type>REAL</type></link> and <type>DOUBLE
 Andres>       PRECISION</type> values (Andrew Gierth)
 Andres>      </para>

 Andres>      <para>
 Andres>       This dramatically speeds up processing of floating-point
 Andres>       values but causes additional trailing digits to
 Andres>       potentially be displayed.  Users wishing to have output
 Andres>       that is rounded to match the previous behavior can set <link
 Andres>       linkend="guc-extra-float-digits"><literal>extra_float_digits=0</literal></link>,
 Andres>       which is no longer the default.
 Andres>      </para>
 Andres>     </listitem>

 Andres> Isn't it exactly the *other* way round? *Previously* we'd
 Andres> output additional trailing digits. The new algorithm instead
 Andres> will instead have *exactly* the required number of digits?

Yeah, this wording is not right. But your description is also wrong.

Previously we output values rounded to 6+d or 15+d digits where
d=extra_float_digits, with d=0 being the default. Only clients that
wanted exact results would set that to 3 instead.

Now we output the minimum digits to get an exact result, which is
usually 8 or 17 digits (sometimes less depending on the value, or 9 for
the relatively rare float4 values that need it) for any
extra_float_digits value > 0. Clients that set d=3 will therefore
usually get one less digit than before, and the value they get will
usually be slightly different (i.e. not the same value that they would
have seen with d=2), but it should give them the same binary value after
going through strtod() or strtof().

-- 
Andrew (irc:RhodiumToad)