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 <br...@momjian.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 <and...@dunslane.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 <tmu...@postgresql.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 <pe...@eisentraut.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  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

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



Reply via email to