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 |
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 |