Re: PG 14 release notes, first draft

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: PG 14 release notes, first draft
Дата
Msg-id 20210511143523.GQ6088@momjian.us
обсуждение исходный текст
Ответ на Re: PG 14 release notes, first draft  (Justin Pryzby <pryzby@telsasoft.com>)
Ответы Re: PG 14 release notes, first draft  (Justin Pryzby <pryzby@telsasoft.com>)
Список 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
automaticallycancel 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
optionallyin 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
functionproperly. 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@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
computationmethod.
 
    </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@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 <tmunro@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 <peter@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,
AmitKapila) 
 

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@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

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




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: Why do we have perl and sed versions of Gen_dummy_probes?
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: PG 14 release notes, first draft