Re: PG 14 release notes, first draft

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Justin Pryzby <pryzby(at)telsasoft(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: PG 14 release notes, first draft
Date: 2021-05-11 14:35:23
Message-ID: 20210511143523.GQ6088@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, May 10, 2021 at 09:00:05AM -0500, Justin Pryzby wrote:
> Thanks for putting it together.
>
> I think these two should be merged:
> | Remove containment operators @ and ~ from contrib modules cube, hstore, intarray, and seg (Justin Pryzby)
> | Remove deprecated containment operators for built-in geometry data types (Justin Pryzby)

Agreed, merged.
>
> | Improve autovacuum's analyze of partitioned tables (Yuzuko Hosoya)
> | DETAILS?
>
> Should say: Autovacuum now analyzes partitioned tables.

Agreed, updated.

> | The server variable check_client_connection_interval allows supporting operating systems, e.g., Linux, to automatically cancel queries by disconnected clients.
> The GUC is actually called client_connection_check_interval - the commit
> message used the wrong name.

OK, fixed.

> | This is particularly helpful for reducing index bloat on tables that frequently update indexed columns.
> Does it mean "..where indexed columns are frequently updated"?

Yeah, that needs help. ;-) I updated it to :

This is particularly helpful for reducing index bloat on tables
whose indexed columns are frequently updated.

> | Allow multiple foreign table scans to be run in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro, Etsuro Fujita)
> I think it means multiple foreight table scan *nodes*

How is this?

Allow a query referencing multiple foreign tables to perform foreign
table scans in parallel (Robert Haas, Kyotaro Horiguchi, Thomas Munro,
Etsuro Fujita)

I am worried "nodes" is too vague.

> | If server variable compute_query_id is enabled, display the hash in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in log_line_prefix (Julien Rouhaud)
> I think needs details, like: "If disabled, then the hash might be computed by
> an extension, instead".

I ended up with:

<para>
If server variable compute_query_id is enabled, display the hash
in pg_stat_activity, EXPLAIN VERBOSE, csvlog, and optionally in
log_line_prefix (Julien Rouhaud)
</para>

<para>
A query id computed by an extension will also be displayed.
</para>

> Later, you say:
> | Extension pg_stat_statements will need to enable hash computation via the compute_query_id server variable to function properly. pg_stat_statements can now use a custom hash computation method.
> Maybe it should say "will need hash computation to be enabled".

Here is the updated entry:

<listitem>
<!--
Author: Bruce Momjian <bruce(at)momjian(dot)us>
2021-04-07 [5fd9dfa5f] Move pg_stat_statements query jumbling to core.
-->

<para>
Move query hash computation from pg_stat_statements to the core server (Julien Rouhaud)
</para>

<para>
Extension pg_stat_statements will now need to enable query hash computation to function properly.
This can be done by enabling the server variable compute_query_id or by using an extension with a custom hash computation method.
</para>
</listitem>

> | Allow more than the common name (CN) to be matched for client certificate authentication (Andrew Dunstan)
> Your description makes it sound like arbitrary attributes can be compared. But
> the option just allows comparing CN or DN.

OK, new text is:

<listitem>
<!--
Author: Andrew Dunstan <andrew(at)dunslane(dot)net>
2021-03-29 [6d7a6feac] Allow matching the DN of a client certificate for
authen
-->

<para>
Allow the certificate's distinguished name (DN) to be matched for client
certificate authentication (Andrew Dunstan)
</para>

<para>
The new pg_hba.conf keyword "clientname=DN" allows comparison with
non-CN certificate attributes and can be combined with ident maps.
</para>
</listitem>

> | Allow file system sync at the start of crash recovery on Linux (Thomas Munro)
> I think this should describe the existing, default behavior:
> Allow syncfs method to sync data directory during recovery;
> The default behavior is to open and fsync every data file, and the new setting
> recovery_init_sync_method=syncfs instead syncs each filesystem in the data
> directory.

I went with this text:

<listitem>
<!--
Author: Thomas Munro <tmunro(at)postgresql(dot)org>
2021-03-20 [61752afb2] Provide recovery_init_sync_method=syncfs.
-->

<para>
Allow file system sync at the start of crash recovery on Linux (Thomas
Munro)
</para>

<para>
By default, Postgres opens and fsyncs every data file at the start of
crash recovery.
This new setting, recovery_init_sync_method=syncfs, instead syncs each
filesystem used by the database cluster.
This allows for faster recovery on systems with many database files.
</para>
</listitem>

> | Add date_bin function (John Naylor)
> This truncate timestamps on an arbitrary interval.
> Like date_trunc() but also supports eg. '15 minutes', and also uses an arbitrary "origin".

OK, so what I think it returns is the greatest datetime that is a
multiple of interval values added to origin which is not greater than
the target date, right? Am I the only one who finds this unclear?
Doesn't our documentation of this feature need to explain this?

> | Support negative indexes in split_part() (Nikhil Benesch)
> | Negative values count from the last field going forward.
> should say "start from the last field and count backward" ?

Yes, fixed with your wording.

> | Add configure option --with-openssl to behave like --with-ssl={openssl} (Daniel Gustafsson, Michael Paquier)
> | The option --with-openssl is kept for compatibility.
> I think this is backwards. The new option is with-ssl=openssl, and (as you
> said) with-openssl is kept.

Agreed:

Add configure option --with-ssl={openssl} to behave like
--with-openssl (Daniel Gustafsson, Michael Paquier)

> Should these be in the "compatibility" section?
>
> | Force custom server variable names to match the pattern used for unquoted SQL identifiers (Tom Lane)

Yes.

> | Change password_encryption's default to scram-sha-256 (Peter Eisentraut)

Yes, I can see this impacting people. I move it and added text to
highlight the incompatibility:

<listitem>
<!--
Author: Peter Eisentraut <peter(at)eisentraut(dot)org>
2020-06-10 [c7eab0e97] Change default of password_encryption to scram-sha-256
-->

<para>
Change password_encryption's default to scram-sha-256 (Peter Eisentraut)
</para>

<para>
Previously it was md5. All new passwords will be stored as
SHA256 unless this server variable is changed or the password is
already md5-hashed.
</para>
</listitem>

>
> | Change checkpoint_completion_target default to 0.9 (Stephen Frost)

I don' think that is an incompatibility since it only affects
performance, and can be easily changed.

> | Reduce the default value of vacuum_cost_page_miss (Peter Geoghegan)
>
> Nitpicks to follow:
>
> | Allow some GiST index to be built by presorting the data (Andrey Borodin)
> indexes

Fixed.

> | with --with-lz4 support to enable this feature
> I would change to say "to support" rather than "support to enable"

Yes, better.

> | Speed truncation of small tables on large shared buffer servers (Kirk Jamison)
> "on servers with large settings of shared_buffers"

I went with:

Speed truncation of small tables on clusters with a large number of
shared buffers (Kirk Jamison)

> | Allow windowing functions to perform incremental sorts (David Rowley)
> Just "window" functions

OK, fixed.

> | Improve pg_stat_activity reporting for walsenders processes (Tom Lane)
> walsender

Fixed.

> | Previously these functions could only be executed by super-users, and still defaults do that.
> ..which is still the default behavior.

Updated to:

Previously these functions could only be executed by
super-users, and this is still the default.

> | This allows multiple queries to be send and only wait for completion when a specific synchronization message is sent.
> be sent

Fixed.

> | Enhance libpq libpq's target_session_attrs parameter options (Haribabu Kommi, Greg Nancarrow, Vignesh C, Tom Lane)
> remove first "libpq"

Fixed.

> | With the removal of the ! operator in this release, factorial() is the only built-in way to computer a factorial.
> compute

Fixed.

> | For example, GROUP BY CUBE (a,b), CUBE (b,c) will generated duplicate grouping combinations without DISTINCT.
>
> will generate

Fixed.

> | Allow VACUUM VERBOSE to report page deletion counts for each scan of an index (Peter Geoghegan)
>
> I think "Allow" is wrong - should just say that VACUUM VERBOSE reports..

Updated to:

Have VACUUM VERBOSE report page deletion counts for each scan of
an index (Peter Geoghegan)

> |By default, only the root of partitioned tables are imported.
> *is* imported

Fixed.

> Can these be merged:
> Allow logical replication to stream long transactions to standbys (Dilip Kumar, Tomas Vondra, Amit Kapila, Nikhil Sontakke)
> Improve the logical replication API to allow streaming large in-progress transactions (Tomas Vondra, Dilip Kumar, Amit Kapila)

I am not sure. I do think we need to merge some of the logical
replication items, but I am not sure which ones yet.

Thanks for all the good feedback.

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EDB https://enterprisedb.com

If only the physical world exists, free will is an illusion.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2021-05-11 14:48:11 Re: PG 14 release notes, first draft
Previous Message Andrew Dunstan 2021-05-11 14:32:55 Re: Why do we have perl and sed versions of Gen_dummy_probes?