First draft of the PG 15 release notes

Started by Bruce Momjianalmost 4 years ago151 messageshackers
Jump to latest
#1Bruce Momjian
bruce@momjian.us

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

The feature count is similar to recent major releases:

release-10 195
release-11 185
release-12 198
release-13 183
release-14 229
--> release-15 186

I assume there will be major adjustments in the next few weeks based on
feedback.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#2Geoff Winkless
pgsqladmin@geoff.dj
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

I'm guessing this should be "trailing", not training?

Show quoted text

Prevent numeric literals from having non-numeric training characters (Peter Eisentraut)

#3Bruce Momjian
bruce@momjian.us
In reply to: Geoff Winkless (#2)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 04:58:50PM +0100, Geoff Winkless wrote:

I'm guessing this should be "trailing", not training?

Prevent numeric literals from having non-numeric training characters (Peter Eisentraut)

Thanks, fixed.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#4Erik Rijkers
er@xs4all.nl
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

Op 10-05-2022 om 17:44 schreef Bruce Momjian:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

typos:

'accept empty array' should be
'to accept empty array'

'super users' should be
'superusers'
(several times)

'The new options causes the column names'
'The new options cause the column names'

'were always effected.'
'were always affected.'
(I think...)

'Previous the actual schema'
'Previously the actual schema'

'inforcement' should be
'enforcement'
(surely?)

'server slide' should be
'server side'

'Add extensions to define their own' should be
'Allow extensions to define their own'

And one strangely unfinished sentence:
'They also can only be'

Erik Rijkers

#5Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

Thanks for writting this.

Comments from my first read:

| This mode could cause server startup failure if the database server stopped abruptly while in this mode.

This sentence both begins and ends with "this mode".

| This allows query hash operations to use double the amount of work_mem memory as other operations.

Should it say "node" ?

| Allow tsvector_delete_arr() and tsvector_setweight_by_filter() accept empty array elements (Jean-Christophe Arnu)

TO accept
I don't think this should be in the "compatibility" section?

| This accepts numeric formats like ".1" and "1.", and disallow trailing junk after numeric literals, like "1.type()".

disallows with an ess

| This will cause setseed() followed by random() to return a different value on older servers.

*than* older servers

| The Postgres default has always been to treat NULL indexed values as distinct, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT.

should not say default, since it wasn't previously configurable.
"The previous behavior was ..."

| Have extended statistics track statistics for a table's children separately (Tomas Vondra, Justin Pryzby)
| Regular statistics already tracked child and non-child statistics separately.

"separately" seems vague. Currently in v10-v13, extended stats are collected
for partitioned tables, and collected for the "SELECT FROM ONLY"/parent case
for inheritance parents. This changes to also collect stats for the "SELECT

#6Nathan Bossart
nathandbossart@gmail.com
In reply to: Erik Rijkers (#4)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 08:07:45PM +0200, Erik Rijkers wrote:

And one strangely unfinished sentence:
'They also can only be'

I suspect this meant to highlight that "postgres -C" with runtime-computed
GUCs doesn't work if the server is running.

--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com

#7Bruce Momjian
bruce@momjian.us
In reply to: Erik Rijkers (#4)
Re: First draft of the PG 15 release notes

Agreed on all of these, and URL contents updated. Thanks.

---------------------------------------------------------------------------

On Tue, May 10, 2022 at 08:07:45PM +0200, Erik Rijkers wrote:

Op 10-05-2022 om 17:44 schreef Bruce Momjian:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

typos:

'accept empty array' should be
'to accept empty array'

'super users' should be
'superusers'
(several times)

'The new options causes the column names'
'The new options cause the column names'

'were always effected.'
'were always affected.'
(I think...)

'Previous the actual schema'
'Previously the actual schema'

'inforcement' should be
'enforcement'
(surely?)

'server slide' should be
'server side'

'Add extensions to define their own' should be
'Allow extensions to define their own'

And one strangely unfinished sentence:
'They also can only be'

Erik Rijkers

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#8Jonathan S. Katz
jkatz@postgresql.org
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

On 5/10/22 11:44 AM, Bruce Momjian wrote:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Thanks for pulling this together.

+ Allow logical replication to transfer sequence changes

I believe this was reverted in 2c7ea57e5, unless some other parts of
this work made it in.

Thanks,

Jonathan

#9Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#5)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 01:09:35PM -0500, Justin Pryzby wrote:

Thanks for writting this.

Comments from my first read:

| This mode could cause server startup failure if the database server stopped abruptly while in this mode.

This sentence both begins and ends with "this mode".

Agreed, I rewrote this.

| This allows query hash operations to use double the amount of work_mem memory as other operations.

Should it say "node" ?

Uh, I think users think of things like operations, e.g. sort operation
vs sort node.

| Allow tsvector_delete_arr() and tsvector_setweight_by_filter() accept empty array elements (Jean-Christophe Arnu)

TO accept
I don't think this should be in the "compatibility" section?

Yes, moved to Function.

| This accepts numeric formats like ".1" and "1.", and disallow trailing junk after numeric literals, like "1.type()".

disallows with an ess

Fixed.

| This will cause setseed() followed by random() to return a different value on older servers.

*than* older servers

Fixed.

| The Postgres default has always been to treat NULL indexed values as distinct, but this can now be changed by creating constraints and indexes using UNIQUE NULLS NOT DISTINCT.

should not say default, since it wasn't previously configurable.
"The previous behavior was ..."

Agreed, reworded.

| Have extended statistics track statistics for a table's children separately (Tomas Vondra, Justin Pryzby)
| Regular statistics already tracked child and non-child statistics separately.

"separately" seems vague. Currently in v10-v13, extended stats are collected
for partitioned tables, and collected for the "SELECT FROM ONLY"/parent case
for inheritance parents. This changes to also collect stats for the "SELECT
FROM tbl*" case. See also: 20220204214103.GT23027@telsasoft.com.

Agreed, reworded. Can you check you like my new wording?

| Allow members of the pg_checkpointer predefined role to run the CHECKPOINT command (Jeff Davis)
| Previously these views could only be run by super users.
| Allow members of the pg_read_all_stats predefined role to access the views pg_backend_memory_contexts and pg_shmem_allocations (Bharath Rupireddy)
| Previously these views could only be run by super users.

checkpoint is not a view (and views cannot be run)

Fixed, was copy/paste error.

| Previously runtime-computed values data_checksums, wal_segment_size, and data_directory_mode would report values that would not be accurate on the running server. They also can only be

be what ?

Removed.

| Add server variable allow_in_place_tablespaces for tablespace testing (Thomas Munro)

This is a developer setting, so doesn't need to be mentioned ?

Moved to Source Code.

| Add function pg_settings_get_flags() to get the flags of server-side variables (Justin Pryzby)

IMO this is the same, but I think maybe Michael things about it differently...

Uh, I thought it might hvae user value as well as developer.

| Allow WAL full page writes to use LZ4 and ZSTD compression (Andrey Borodin, Justin Pryzby)
| Add support for LZ4 and ZSTD compression of server-side base backups (Jeevan Ladhe, Robert Haas)
| Allow pg_basebackup to decompress LZ4 and ZSTD compressed server-side base backups, and LZ4 and ZSTD compress output files (Dipesh Pandit, Jeevan Ladhe)
| Add configure option --with-zstd to enable ZSTD build (Jeevan Ladhe, Robert Haas, Michael Paquier)

Maybe these should say "Zstandard" ? See 586955dddecc95e0003262a3954ae83b68ce0372.

I wasn't aware that ZSTD stood for that, so updated.

| The new options causes the column names to be output, and optionally verified on input.

option

Fixed.

| Previous the actual schema name was used.

Previously

Fixed.

| When EXPLAIN references the temporary object schema, refer to it as "pg_temp" (Amul Sul)
| When specifying fractional interval values in units greater than months, round to the nearest month (Bruce Momjian)
| Limit support of psql to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_upgrade to old servers running PostgreSQL 9.2 and later (Tom Lane)
| Remove server support for old BASE_BACKUP command syntax and base backup protocol (Robert Haas)

Do these need to be in the "compatibility" section ?

Uh, I think of compatibility as breakage, while removing support for
something doesn't seem like breakage. The protocol removal of
BASE_BACKUP only relates to people writing tools, I thought, so no
breakage for non-internals users. I didn't think the fractional
interval change would be a breakage, though maybe it is. I didn't think
EXPLAIN changes were user-parsed, so no breakage?

| Fix inforcement of PL/pgSQL variable CONSTANT markings (Tom Lane)

enforcement

Fixed.

| Allow IP address matching against a server's certificate Subject Alternative Name (Jacob Champion)

Should say "server certificate's" ?

Agreed.

| Allow libpq's SSL private to be owned by the root user (David Steele)

private *key*

I changed it to "private key file".

| Have psql output all output if multiple queries are passed to the server at once (Fabien Coelho)

all *results* ?

Yes, fixed.

| This can be disabled setting SHOW_ALL_RESULTS.

disabled *by* setting

Agreed, fixed.

| Allow pg_basebackup's --compress option to control the compression method (Michael Paquier, Robert Haas)

Should probably say "compression method and options"

Good point, that feature moved around during the development cycle.

| Allow pg_basebackup to decompress LZ4 and ZSTD compressed server-side base backups, and LZ4 and ZSTD compress output files (Dipesh Pandit, Jeevan Ladhe)
| Allow pg_basebackup to compress on the server slide and decompress on the client side before storage (Dipesh Pandit)

Maybe these should be combined into one entry ?

Uh, I think it applies to gzip as well so they can't be combined, and
they seem to do different things.

| Add the LZ4 compression method to pg_receivewal (Georgios Kokolatos)
| This is enabled via --compression-method=lz4 and requires binaries to be built using --with-lz4.
| Redesign pg_receivewal's compression options (Georgios Kokolatos)
| The new --compression-method option controls the type of compression, rather than just relying on --compress.

It's --compress since 042a923ad.

Yep, fixed.

| Previously, pg_receivewal would start based on the WAL file stored in the local archive directory, or at the sending server's current WAL flush location. With this change, if the sending server is running Postgres 15 or later, the local archive directory is empty, and a replication slot is specified, the replication slots restart point will be used.

slot's restart point (with a >>'<<)

Fixed.

| Add dump/restore option --no-table-access-method to force restore to use only the default table access method (Justin Pryzby)

remove "only" ?

I changed it to "to only use the default" since I think that is the
point --- it doesn't use anything but the default.

| This is for portability in restoring from systems using non-default table access methods.

I would remove part about "portability". The use-case I see for this is
restoring something to a different table AM (not just heapam), in the same way
as is possible for tablespaces:
PGOPTIONS='-c default-table-access-method=foo' pg_restore --no-table-am ./dump

I removed the portability sentence.

| Previously only the first invalid connection setting database was reported.

"only the first database with an invalid connection setting..."

Yes, reworded.

| Add new protocol message TARGET to specific a new COPY method to be for base backups (Robert Haas)

specify

Fixed.

| Automatically export server variables using PGDLLIMPORT on Windows (Robert Haas)

I don't think it's "automatic" ?

Yes, reworded.

| Allow informational escape sequences to be used in postgres_fdw's application name (Hayato Kuroda, Fujii Masao)

I don't think this should be a separate entry

Uh, the entry above is about per-connection application name, while this
is about escapes --- seems different to me, and hard to combine.

| This is enabled with the "parallel_commit" postgres_fdw option.

It's an option to the SQL "SERVER" command.

Yes, reworded. URL contents updated:

https://momjian.us/pgsql_docs/release-15.html

Can you verify you like the new contents please? Thanks.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#10Bruce Momjian
bruce@momjian.us
In reply to: Nathan Bossart (#6)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 12:44:56PM -0700, Nathan Bossart wrote:

On Tue, May 10, 2022 at 08:07:45PM +0200, Erik Rijkers wrote:

And one strangely unfinished sentence:
'They also can only be'

I suspect this meant to highlight that "postgres -C" with runtime-computed
GUCs doesn't work if the server is running.

Yes, you are correct --- wording updated.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#11Bruce Momjian
bruce@momjian.us
In reply to: Jonathan S. Katz (#8)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 04:17:59PM -0400, Jonathan Katz wrote:

On 5/10/22 11:44 AM, Bruce Momjian wrote:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Thanks for pulling this together.

+ Allow logical replication to transfer sequence changes

I believe this was reverted in 2c7ea57e5, unless some other parts of this
work made it in.

Yes, sorry, I missed that. Oddly, the unlogged sequence patch was
retained, even though there is no value for it on the primary. I
removed the sentence that mentioned that benefit from the release notes
since it doesn't apply to PG 15 anymore.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#12Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#9)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 04:18:10PM -0400, Bruce Momjian wrote:

"separately" seems vague. Currently in v10-v13, extended stats are collected
for partitioned tables, and collected for the "SELECT FROM ONLY"/parent case
for inheritance parents. This changes to also collect stats for the "SELECT
FROM tbl*" case. See also: 20220204214103.GT23027@telsasoft.com.

Agreed, reworded. Can you check you like my new wording?

Now it says:
| Allow extended statistics to record statistics for a parent with all it children (Tomas Vondra, Justin Pryzby)

it should say "its" children.

| Add function pg_settings_get_flags() to get the flags of server-side variables (Justin Pryzby)

IMO this is the same, but I think maybe Michael things about it differently...

Uh, I thought it might hvae user value as well as developer.

The list of flags it includes is defined as "the flags we needed to deprecate
./check_guc", but it could conceivably be useful to someone else... But it
seems more like allow_in_place_tablespaces; it could go into the "source code"
section, or be removed.

| When EXPLAIN references the temporary object schema, refer to it as "pg_temp" (Amul Sul)
| When specifying fractional interval values in units greater than months, round to the nearest month (Bruce Momjian)
| Limit support of psql to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_upgrade to old servers running PostgreSQL 9.2 and later (Tom Lane)
| Remove server support for old BASE_BACKUP command syntax and base backup protocol (Robert Haas)

Do these need to be in the "compatibility" section ?

Uh, I think of compatibility as breakage, while removing support for
something doesn't seem like breakage.

I think removing support which breaks a user-facing behavior is presumptively a
compatibility issue.

I didn't think EXPLAIN changes were user-parsed, so no breakage?

Why would we have explain(format json/xml) if it wasn't meant to be parsed ?
At one point I was parsing its xml.

I'll let other's comment about the rest of the list.

| Automatically export server variables using PGDLLIMPORT on Windows (Robert Haas)

I don't think it's "automatic" ?

Yes, reworded.

Maybe it's a tiny bit better to say:
| Export all server variables on Windows using PGDLLIMPORT (Robert Haas)

(Otherwise, "all server variables using PGDLLIMPORT" could sound like only
those "server variables [which were] using PGDLLIMPORT" were exported).

| Allow informational escape sequences to be used in postgres_fdw's application name (Hayato Kuroda, Fujii Masao)

I don't think this should be a separate entry

Uh, the entry above is about per-connection application name, while this
is about escapes --- seems different to me, and hard to combine.

449ab635052 postgres_fdw: Allow application_name of remote connection to be set via GUC.
6e0cb3dec10 postgres_fdw: Allow postgres_fdw.application_name to include escape sequences.
94c49d53402 postgres_fdw: Make postgres_fdw.application_name support more escape sequences.

You have one entry for 449a, and one entry where you've combined 6e0c and 94c4.

My point is that the 2nd two commits changed the behavior of the first commit,
and I don't see why an end-user would want to know about the intermediate
behavior from the middle of the development cycle when escape sequences weren't
expanded. So I don't know why they'd be listed separately.

--
Justin

#13Tatsuo Ishii
t-ishii@sra.co.jp
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Allow pgbench to retry after serialization and deadlock failures (Yugo Nagata, Marina Polyakova)

This is in the "Additional Modules" section. I think this should be in
the "Client Applications" section because pgbench lives in bin
directory, not in contrib directory. Actually, pgbench was in the
"Client Applications" section in the PG 14 release note.

Best reagards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp

#14Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#12)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 04:02:35PM -0500, Justin Pryzby wrote:

On Tue, May 10, 2022 at 04:18:10PM -0400, Bruce Momjian wrote:

"separately" seems vague. Currently in v10-v13, extended stats are collected
for partitioned tables, and collected for the "SELECT FROM ONLY"/parent case
for inheritance parents. This changes to also collect stats for the "SELECT
FROM tbl*" case. See also: 20220204214103.GT23027@telsasoft.com.

Agreed, reworded. Can you check you like my new wording?

Now it says:
| Allow extended statistics to record statistics for a parent with all it children (Tomas Vondra, Justin Pryzby)

it should say "its" children.

Fixed.

| Add function pg_settings_get_flags() to get the flags of server-side variables (Justin Pryzby)

IMO this is the same, but I think maybe Michael things about it differently...

Uh, I thought it might hvae user value as well as developer.

The list of flags it includes is defined as "the flags we needed to deprecate
./check_guc", but it could conceivably be useful to someone else... But it
seems more like allow_in_place_tablespaces; it could go into the "source code"
section, or be removed.

Okay, I moved into source code.

| When EXPLAIN references the temporary object schema, refer to it as "pg_temp" (Amul Sul)
| When specifying fractional interval values in units greater than months, round to the nearest month (Bruce Momjian)
| Limit support of psql to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_dump and pg_dumpall to servers running PostgreSQL 9.2 and later (Tom Lane)
| Limit support of pg_upgrade to old servers running PostgreSQL 9.2 and later (Tom Lane)
| Remove server support for old BASE_BACKUP command syntax and base backup protocol (Robert Haas)

Do these need to be in the "compatibility" section ?

Uh, I think of compatibility as breakage, while removing support for
something doesn't seem like breakage.

I think removing support which breaks a user-facing behavior is presumptively a
compatibility issue.

I moved the EXPLAIN and fractional interval items to the compatibility
section. I didn't change the psql and pg_dump items since they are
already in their own sections and are clearly support removal rather
than direct changes in behavior that would be expected. However, if
someone else feels they should be moved, I will move them, so someone
please reply if you feel that way.

I didn't think EXPLAIN changes were user-parsed, so no breakage?

Why would we have explain(format json/xml) if it wasn't meant to be parsed ?
At one point I was parsing its xml.

I'll let other's comment about the rest of the list.

Good point on the formatted EXPLAIN output being affected, which is why
moving it does make sense.

| Automatically export server variables using PGDLLIMPORT on Windows (Robert Haas)

I don't think it's "automatic" ?

Yes, reworded.

Maybe it's a tiny bit better to say:
| Export all server variables on Windows using PGDLLIMPORT (Robert Haas)

(Otherwise, "all server variables using PGDLLIMPORT" could sound like only
those "server variables [which were] using PGDLLIMPORT" were exported).

Ah, yes, I see the improvement, done.

| Allow informational escape sequences to be used in postgres_fdw's application name (Hayato Kuroda, Fujii Masao)

I don't think this should be a separate entry

Uh, the entry above is about per-connection application name, while this
is about escapes --- seems different to me, and hard to combine.

449ab635052 postgres_fdw: Allow application_name of remote connection to be set via GUC.
6e0cb3dec10 postgres_fdw: Allow postgres_fdw.application_name to include escape sequences.
94c49d53402 postgres_fdw: Make postgres_fdw.application_name support more escape sequences.

You have one entry for 449a, and one entry where you've combined 6e0c and 94c4.

My point is that the 2nd two commits changed the behavior of the first commit,
and I don't see why an end-user would want to know about the intermediate
behavior from the middle of the development cycle when escape sequences weren't
expanded. So I don't know why they'd be listed separately.

I see your point --- postgres_fdw.application_name supports escapes that
the normal application_name does not. I combined all three items now.
Thanks. The new entry is:

<!--
Author: Fujii Masao <fujii@postgresql.org>
2021-09-07 [449ab6350] postgres_fdw: Allow application_name of remote connectio
Author: Fujii Masao <fujii@postgresql.org>
2021-12-24 [6e0cb3dec] postgres_fdw: Allow postgres_fdw.application_name to inc
Author: Fujii Masao <fujii@postgresql.org>
2022-02-18 [94c49d534] postgres_fdw: Make postgres_fdw.application_name support
-->

<listitem>
<para>
Add server variable postgres_fdw.application_name to control the
application name of postgres_fdw connections (Hayato Kuroda)
</para>

<para>
Previously the remote application_name could only be set on the
remote server or via postgres_fdw connection specification.
postgres_fdw.application_name also supports escape sequences
for customization.
</para>
</listitem>

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#15Tatsuo Ishii
t-ishii@sra.co.jp
In reply to: Tatsuo Ishii (#13)
Re: First draft of the PG 15 release notes

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Allow pgbench to retry after serialization and deadlock failures (Yugo Nagata, Marina Polyakova)

This is in the "Additional Modules" section. I think this should be in
the "Client Applications" section because pgbench lives in bin
directory, not in contrib directory. Actually, pgbench was in the
"Client Applications" section in the PG 14 release note.

I think you missed this:

commit 06ba4a63b85e5aa47b325c3235c16c05a0b58b96
Use COPY FREEZE in pgbench for faster benchmark table population.

Best reagards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp

#16Bruce Momjian
bruce@momjian.us
In reply to: Tatsuo Ishii (#15)
Re: First draft of the PG 15 release notes

On Wed, May 11, 2022 at 06:47:13AM +0900, Tatsuo Ishii wrote:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Allow pgbench to retry after serialization and deadlock failures (Yugo Nagata, Marina Polyakova)

This is in the "Additional Modules" section. I think this should be in
the "Client Applications" section because pgbench lives in bin
directory, not in contrib directory. Actually, pgbench was in the
"Client Applications" section in the PG 14 release note.

I think you missed this:

commit 06ba4a63b85e5aa47b325c3235c16c05a0b58b96
Use COPY FREEZE in pgbench for faster benchmark table population.

I didn't mention it since it is automatic and I didn't think pgbench
load time was significant enough to mention.

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#17Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#14)
Re: First draft of the PG 15 release notes

On Tue, May 10, 2022 at 05:45:01PM -0400, Bruce Momjian wrote:

I see your point --- postgres_fdw.application_name supports escapes that
the normal application_name does not. I combined all three items now.
Thanks. The new entry is:

The URL is updated with the current commits:

https://momjian.us/pgsql_docs/release-15.html

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Indecision is a decision. Inaction is an action. Mark Batterson

#18Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

On May 10, 2022, at 8:44 AM, Bruce Momjian <bruce@momjian.us> wrote:

I have completed the first draft of the PG 15 release notes and you can
see the results here

Thanks, Bruce! This release note:

• Prevent logical replication into tables where the subscription owner is subject to the table's row-level security policies (Mark Dilger)

... should mention, independent of any RLS considerations, subscriptions are now applied under the privilege of the subscription owner. I don't think we can fit it in the release note, but the basic idea is that:

CREATE SUBSCRIPTION ... CONNECTION '...' PUBLICATION ... WITH (enabled = false);
ALTER SUBSCRIPTION ... OWNER TO nonsuperuser_whoever;
ALTER SUBSCRIPTION ... ENABLE;

can be used to replicate a subscription without sync or apply workers operating as superuser. That's the main advantage. Previously, subscriptions always ran with superuser privilege, which creates security concerns if the publisher is malicious (or foolish). Avoiding any unintentional bypassing of RLS was just a necessary detail to close the security loophole, not the main point of the security enhancement.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#19Jonathan S. Katz
jkatz@postgresql.org
In reply to: Bruce Momjian (#9)
Re: First draft of the PG 15 release notes

On 5/10/22 4:18 PM, Bruce Momjian wrote:

On Tue, May 10, 2022 at 01:09:35PM -0500, Justin Pryzby wrote:

| Allow libpq's SSL private to be owned by the root user (David Steele)

private *key*

I changed it to "private key file".

This was backpatched to all supported versions[1]https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=2a1f84636dc335a3edf53a8361ae44bb2ae00093. While I'm a huge fan
of this behavior change for a plethora of reasons, I'm not sure if this
should be included as part of the PG15 release notes, given it's in the
14.3 et al.

Thanks,

Jonathan

[1]: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=2a1f84636dc335a3edf53a8361ae44bb2ae00093
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=2a1f84636dc335a3edf53a8361ae44bb2ae00093

#20David Rowley
dgrowleyml@gmail.com
In reply to: Bruce Momjian (#1)
Re: First draft of the PG 15 release notes

On Wed, 11 May 2022 at 03:44, Bruce Momjian <bruce@momjian.us> wrote:

I have completed the first draft of the PG 15 release notes and you can
see the results here:

https://momjian.us/pgsql_docs/release-15.html

Thanks for doing that tedious work.

I think the sort improvements done in v15 are worth a mention under
General Performance. The commits for this were 91e9e89dc, 40af10b57
and 697492434. I've been running a few benchmarks between v14 and v15
over the past few days and a fairly average case speedup is about 25%.
but there are cases where I've seen up to 400%. I think the increase
is to an extent that we maybe should have considered making tweaks in
cost_tuplesort(). I saw some plans that ran in about 60% of the time
by disabling Hash Agg and allowing Sort / Group Agg to do the work.

David

#21Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jonathan S. Katz (#19)
#22Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#9)
#23Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#1)
#24Bruce Momjian
bruce@momjian.us
In reply to: Mark Dilger (#18)
#25Bruce Momjian
bruce@momjian.us
In reply to: Jonathan S. Katz (#19)
#26Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#21)
#27Mark Dilger
mark.dilger@enterprisedb.com
In reply to: Bruce Momjian (#24)
#28Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#22)
#29Bruce Momjian
bruce@momjian.us
In reply to: Mark Dilger (#27)
#30Bruce Momjian
bruce@momjian.us
In reply to: David Rowley (#20)
#31David Rowley
dgrowleyml@gmail.com
In reply to: Bruce Momjian (#30)
#32Justin Pryzby
pryzby@telsasoft.com
In reply to: David Rowley (#20)
#33Jonathan S. Katz
jkatz@postgresql.org
In reply to: Bruce Momjian (#26)
#34Jonathan S. Katz
jkatz@postgresql.org
In reply to: David Rowley (#31)
#35David Rowley
dgrowleyml@gmail.com
In reply to: Justin Pryzby (#32)
#36Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#23)
#37David Rowley
dgrowleyml@gmail.com
In reply to: Bruce Momjian (#36)
#38Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#1)
#39Matthias van de Meent
boekewurm+postgres@gmail.com
In reply to: Bruce Momjian (#1)
#40Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#1)
#41Bruce Momjian
bruce@momjian.us
In reply to: David Rowley (#31)
#42Bruce Momjian
bruce@momjian.us
In reply to: Amit Langote (#38)
#43Bruce Momjian
bruce@momjian.us
In reply to: Matthias van de Meent (#39)
#44Bruce Momjian
bruce@momjian.us
In reply to: Alvaro Herrera (#40)
#45David Rowley
dgrowleyml@gmail.com
In reply to: Justin Pryzby (#32)
#46Bruce Momjian
bruce@momjian.us
In reply to: David Rowley (#45)
#47Ian Lawrence Barwick
barwick@gmail.com
In reply to: Bruce Momjian (#1)
#48Thomas Munro
thomas.munro@gmail.com
In reply to: Bruce Momjian (#46)
#49Bruce Momjian
bruce@momjian.us
In reply to: Ian Lawrence Barwick (#47)
#50Bruce Momjian
bruce@momjian.us
In reply to: Thomas Munro (#48)
#51Ian Lawrence Barwick
barwick@gmail.com
In reply to: Bruce Momjian (#49)
#52Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#49)
#53Bruce Momjian
bruce@momjian.us
In reply to: Ian Lawrence Barwick (#51)
#54Ian Lawrence Barwick
barwick@gmail.com
In reply to: Bruce Momjian (#53)
#55Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#42)
#56Amit Kapila
amit.kapila16@gmail.com
In reply to: Bruce Momjian (#11)
#57Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Kapila (#56)
#58Ajin Cherian
itsajin@gmail.com
In reply to: Bruce Momjian (#1)
#59David Steele
david@pgmasters.net
In reply to: Ian Lawrence Barwick (#54)
#60osumi.takamichi@fujitsu.com
osumi.takamichi@fujitsu.com
In reply to: Bruce Momjian (#1)
#61Bruce Momjian
bruce@momjian.us
In reply to: Amit Langote (#55)
#62Bruce Momjian
bruce@momjian.us
In reply to: Amit Kapila (#56)
#63Bruce Momjian
bruce@momjian.us
In reply to: Amit Kapila (#57)
#64Bruce Momjian
bruce@momjian.us
In reply to: Ajin Cherian (#58)
#65Bruce Momjian
bruce@momjian.us
In reply to: osumi.takamichi@fujitsu.com (#60)
#66Euler Taveira
euler@eulerto.com
In reply to: Bruce Momjian (#64)
#67Bruce Momjian
bruce@momjian.us
In reply to: Euler Taveira (#66)
#68vignesh C
vignesh21@gmail.com
In reply to: Bruce Momjian (#67)
#69Bruce Momjian
bruce@momjian.us
In reply to: vignesh C (#68)
#70Euler Taveira
euler@eulerto.com
In reply to: Bruce Momjian (#67)
#71osumi.takamichi@fujitsu.com
osumi.takamichi@fujitsu.com
In reply to: Bruce Momjian (#65)
#72Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#61)
#73Amit Kapila
amit.kapila16@gmail.com
In reply to: Amit Langote (#72)
#74Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Amit Kapila (#73)
#75Amit Kapila
amit.kapila16@gmail.com
In reply to: Euler Taveira (#70)
#76Bruce Momjian
bruce@momjian.us
In reply to: osumi.takamichi@fujitsu.com (#71)
#77Bruce Momjian
bruce@momjian.us
In reply to: Amit Langote (#72)
#78Bruce Momjian
bruce@momjian.us
In reply to: Amit Kapila (#75)
#79Amit Kapila
amit.kapila16@gmail.com
In reply to: Bruce Momjian (#78)
#80Bruce Momjian
bruce@momjian.us
In reply to: Amit Kapila (#79)
#81osumi.takamichi@fujitsu.com
osumi.takamichi@fujitsu.com
In reply to: Bruce Momjian (#76)
#82John Naylor
john.naylor@enterprisedb.com
In reply to: Bruce Momjian (#1)
#83Bruce Momjian
bruce@momjian.us
In reply to: John Naylor (#82)
#84Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#83)
#85Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Bruce Momjian (#1)
#86Justin Pryzby
pryzby@telsasoft.com
In reply to: Alvaro Herrera (#85)
#87Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#86)
#88Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#77)
#89David Rowley
dgrowleyml@gmail.com
In reply to: Amit Langote (#88)
#90Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: David Rowley (#89)
#91John Naylor
john.naylor@enterprisedb.com
In reply to: Bruce Momjian (#84)
#92Bruce Momjian
bruce@momjian.us
In reply to: John Naylor (#91)
#93Bruce Momjian
bruce@momjian.us
In reply to: Amit Langote (#90)
#94Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#93)
#95David Rowley
dgrowleyml@gmail.com
In reply to: Amit Langote (#94)
#96Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: David Rowley (#95)
#97Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Amit Langote (#96)
#98Bruce Momjian
bruce@momjian.us
In reply to: Amit Langote (#97)
#99Amit Langote
Langote_Amit_f8@lab.ntt.co.jp
In reply to: Bruce Momjian (#98)
#100Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#1)
#101Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#100)
In reply to: Bruce Momjian (#101)
#103Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#101)
#104Bruce Momjian
bruce@momjian.us
In reply to: Peter Geoghegan (#102)
In reply to: Bruce Momjian (#104)
#106Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#103)
#107Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#106)
#108Bruce Momjian
bruce@momjian.us
In reply to: Peter Geoghegan (#105)
In reply to: Bruce Momjian (#108)
#110Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#108)
#111Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#107)
In reply to: Bruce Momjian (#110)
#113Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#111)
#114Bruce Momjian
bruce@momjian.us
In reply to: Peter Geoghegan (#112)
#115Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#113)
#116Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#115)
#117Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#116)
#118Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#117)
#119Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#118)
#120Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#119)
#121Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#120)
#122Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#36)
#123Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#122)
#124Noah Misch
noah@leadboat.com
In reply to: Bruce Momjian (#121)
#125Bruce Momjian
bruce@momjian.us
In reply to: Noah Misch (#124)
#126John Naylor
john.naylor@enterprisedb.com
In reply to: Bruce Momjian (#125)
#127Bruce Momjian
bruce@momjian.us
In reply to: John Naylor (#126)
#128Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#1)
#129Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#128)
#130Justin Pryzby
pryzby@telsasoft.com
In reply to: Bruce Momjian (#129)
#131Bruce Momjian
bruce@momjian.us
In reply to: Justin Pryzby (#130)
#132Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#125)
#133Matthias van de Meent
boekewurm+postgres@gmail.com
In reply to: Bruce Momjian (#132)
#134Bruce Momjian
bruce@momjian.us
In reply to: Matthias van de Meent (#133)
#135Peter Eisentraut
peter_e@gmx.net
In reply to: Bruce Momjian (#134)
#136Bruce Momjian
bruce@momjian.us
In reply to: Peter Eisentraut (#135)
#137Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#136)
#138Jonathan S. Katz
jkatz@postgresql.org
In reply to: Bruce Momjian (#1)
#139Nathan Bossart
nathandbossart@gmail.com
In reply to: Jonathan S. Katz (#138)
#140Jonathan S. Katz
jkatz@postgresql.org
In reply to: Nathan Bossart (#139)
#141Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Jonathan S. Katz (#140)
#142Jonathan S. Katz
jkatz@postgresql.org
In reply to: Alvaro Herrera (#141)
#143Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jonathan S. Katz (#142)
#144Jonathan S. Katz
jkatz@postgresql.org
In reply to: Tom Lane (#143)
#145Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jonathan S. Katz (#144)
#146Jonathan S. Katz
jkatz@postgresql.org
In reply to: Tom Lane (#145)
#147Justin Pryzby
pryzby@telsasoft.com
In reply to: Tom Lane (#145)
#148Tom Lane
tgl@sss.pgh.pa.us
In reply to: Justin Pryzby (#147)
#149David Rowley
dgrowleyml@gmail.com
In reply to: Jonathan S. Katz (#140)
#150Tom Lane
tgl@sss.pgh.pa.us
In reply to: David Rowley (#149)
#151David Rowley
dgrowleyml@gmail.com
In reply to: Tom Lane (#150)