Re: PG 13 release notes, first draft

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: PG 13 release notes, first draft
Date: 2020-09-07 13:40:26
Message-ID: 20200907134026.GC7158@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

There's some obvious improvements for which I include a patch.

>Add alternate version of jsonb_setI() with special NULL handling (Andrew Dunstan)
>The new function, jsonb_set_lax(), allows null new values to either set the specified key to JSON null, delete the key, raise exception, or ignore the operation.
jsonb_set()
raise *an* exception
new null values?

>IS 'return_target' CLEAR?
I haven't used these before, but following the examples, it seems to return the
"target" argument, unchanged.

| Add function min_scale() that returns the number of digits to the right the decimal point that is required to represent the numeric value with full precision (Pavel Stehule)
right *of*
that *are* required ?

|The old function names were kept for backward compatibility. DO WE HAVE NEW NAMES?

=> I think the docs are clear:
> In releases of PostgreSQL before 13 there was no xid8 type, so variants of these functions were provided that used bigint to represent a 64-bit XID, with a correspondingly distinct snapshot data type txid_snapshot. These older functions have txid in their names. They are still supported for backward compatibility, but may be removed from a future release. See Table 9.76....

> This improves performance for queries that access many object. The internal List API has also been improved.
many objects*

|Allow skipping of WAL for full table writes if wal_level is minimal (Kyotaro Horiguchi)
Allow WAL writes to be skipped...
And: this is not related to full_page_writes.

| Enable Unix-domain sockets support on Windows (Peter Eisentraut)
Enable support for ..

| Improve the performance when replaying DROP DATABASE commands when many tablespaces are in use (Fujii Masao)
s/the//

|Allow a sample of statements to be logged (Adrien Nayrat)
Allow logging a sample of statements

|Allow WAL receivers use a temporary replication slot if a permanent one is not specified (Peter Eisentraut, Sergei Kornilov)
*to* use

| Add leader_pid to pg_stat_activity to report parallel worker ownership (Julien Rouhaud)
s/ownership/leader/ ?

|Allow WAL recovery to continue even if invalid pages are referenced (Fujii Masao)
remove "WAL" or say:
>Allow recovery to continue even if invalid pages are referenced by WAL (Fujii Masao)

A few things I have't fixed in my patch:

|Previously, this value was adjusted before effecting the number of concurrent requests. This value is now used directly. Conversion of old values to new ones can be done using:
|SELECT round(sum(OLD / n::float)) FROM generate_series(1, OLD) s(n);

I think the round() should be aliased, "AS new".
I think "before effecting" is confusing, maybe say:
| Previously, the effective value was computed internally from the user-supplied parameter...

|Allow partitioned tables to be logically replicated via publications (Amit Langote)
|Previously, partitions had to be replicated individually. Now partitioned tables can be published explicitly causing all partitions to be automatically published. Addition/removal of partitions from partitioned tables are automatically added/removed from publications. The CREATE PUBLICATION option publish_via_partition_root controls whether changes to partitions are published as their own or their ancestor's.

=> "causing any future partitions to be automatically published".

"addition/removal .. are automatically" isn't right

|Implement incremental sorting (James Coleman, Alexander Korotkov, Tomas Vondra)
|If a result is already sorted by several leading keys, this allows for batch sorting of additional trailing keys because the previous keys are already equal. This is controlled by enable_incremental_sort.

s/several/one or more/
remove "additional" ?
remove "batch" ?
maybe "of ONLY trailing keys"

|Allow inserts to trigger autovacuum activity (Laurenz Albe, Darafei Praliaskouski)
|This new behavior reduces the work necessary when the table needs to be frozen and allows pages to be set as all-visible. All-visible pages allow index-only scans to access fewer heap rows.

There's a lot of "allow" here, but it sounds like relaxing a restriction when
actually this is a new functionality. Maybe:
| Allow autovacuum to be triggered by INSERTs.
| ..and allows autovacuum to set pages as all-visible.

I already mentioned a couple things back in May that still stand out;:

|Add jsonpath .datetime() method (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov)
|This allows json values to be converted to timestamps, which can then be processed in jsonpath expressions. This also adds jsonpath functions that support time zone-aware output.
timezone-aware or time-zone-aware, if you must.

> Allow vacuum commands run by vacuumdb to operate in parallel mode (Masahiko Sawada)
=> I think this is still going to be lost/misunderstood/confuse some people.
vacuumdb already supports -j. This allows it to run vacuum(parallel N). So
maybe say "...to process indexes in parallel".

--
Justin

Attachment Content-Type Size
0001-fixes-release-notes.patch text/x-diff 5.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2020-09-07 13:46:02 Re: shared-memory based stats collector
Previous Message Amit Kapila 2020-09-07 13:16:50 Re: [HACKERS] logical decoding of two-phase transactions