Stamp 13.0.
commit : 29be9983a64c011eac0b9ee29895cce71e15ea77
author : Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 16:47:36 -0400
committer: Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 16:47:36 -0400
M configure
M configure.in
Doc: improve v13 release note item about autovacuum and INSERTs.
commit : 4406364e2bf421459be7bd21503da093d910e0c3
author : Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 13:30:18 -0400
committer: Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 13:30:18 -0400
The previous text was confusing, per off-list discussion with
Bruce Momjian.
M doc/src/sgml/release-13.sgml
Copy editing: fix a bunch of misspellings and poor wording.
commit : e62c5ea22c12f63d8d5ca3b228a458dfc10ae314
author : Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 12:43:42 -0400
committer: Tom Lane <[email protected]>
date : Mon, 21 Sep 2020 12:43:42 -0400
99% of this is docs, but also a couple of comments. No code changes.
Justin Pryzby
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/btree.sgml
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/ddl.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/logical-replication.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/ref/alter_statistics.sgml
M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_rewind.sgml
M doc/src/sgml/ref/pgbench.sgml
M doc/src/sgml/ref/reindex.sgml
M doc/src/sgml/ref/reindexdb.sgml
M doc/src/sgml/ref/vacuumdb.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/sources.sgml
M src/backend/access/gin/README
M src/backend/utils/adt/jsonpath_exec.c
M src/test/regress/expected/partition_join.out
M src/test/regress/sql/partition_join.sql
Translation updates
commit : d83268ae10cdeb2aa88e32286e94a8a8f59653a0
author : Peter Eisentraut <[email protected]>
date : Mon, 21 Sep 2020 10:06:30 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 21 Sep 2020 10:06:30 +0200
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: cdd5cffbddac2869f3eed0a6a37cba71ce2332cd
M src/backend/po/es.po
M src/backend/po/fr.po
M src/backend/po/ru.po
M src/backend/po/sv.po
M src/bin/pg_dump/po/es.po
M src/bin/pg_dump/po/fr.po
M src/bin/pg_rewind/po/es.po
M src/bin/pg_rewind/po/fr.po
M src/bin/pg_rewind/po/ru.po
M src/bin/pg_rewind/po/sv.po
M src/bin/pg_upgrade/po/es.po
M src/bin/pg_verifybackup/po/es.po
M src/bin/pg_verifybackup/po/fr.po
M src/bin/pg_verifybackup/po/ru.po
M src/bin/pg_verifybackup/po/sv.po
M src/bin/pg_waldump/po/es.po
M src/bin/psql/po/es.po
M src/bin/psql/po/fr.po
M src/bin/psql/po/ru.po
M src/bin/scripts/po/es.po
M src/bin/scripts/po/fr.po
M src/bin/scripts/po/ru.po
M src/bin/scripts/po/sv.po
M src/interfaces/libpq/po/fr.po
M src/pl/plpgsql/src/po/es.po
M src/pl/plpgsql/src/po/fr.po
Update list of acknowledgments in release notes
commit : f6727f29d52072bd0e87fbc9ed7af0d880db0d5c
author : Peter Eisentraut <[email protected]>
date : Mon, 21 Sep 2020 09:05:13 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 21 Sep 2020 09:05:13 +0200
M doc/src/sgml/release-13.sgml
Use factorial rather than numeric_fac in create_operator.sql.
commit : 9ab5ed4194f3863ff744e195027da747d4db4106
author : Tom Lane <[email protected]>
date : Fri, 18 Sep 2020 18:03:44 -0400
committer: Tom Lane <[email protected]>
date : Fri, 18 Sep 2020 18:03:44 -0400
These two SQL functions are aliases for the same C function, so this
change has no semantic effect. However, because we dropped the
numeric_fac alias in HEAD (commit 76f412ab3), operator definitions
based on that one don't port forward, causing problems for cross-version
upgrade tests based on the regression database.
Patch all active back branches to dodge the problem.
Discussion: https://postgr.es/m/[email protected]
M src/test/regress/expected/create_operator.out
M src/test/regress/sql/create_operator.sql
Fix comments in heapam.c.
commit : f083afac9df707778288b9ab448be169a25e3ea6
author : Amit Kapila <[email protected]>
date : Fri, 18 Sep 2020 09:40:04 +0530
committer: Amit Kapila <[email protected]>
date : Fri, 18 Sep 2020 09:40:04 +0530
After commits 85f6b49c2c and 3ba59ccc89, we can allow parallel inserts
which was earlier not possible as parallel group members won't conflict
for relation extension and page lock. In those commits, we forgot to
update comments at few places.
Author: Amit Kapila
Reviewed-by: Robert Haas and Dilip Kumar
Backpatch-through: 13
Discussion: https://postgr.es/m/CAFiTN-tMrQh5FFMPx5aWJ+1gi1H6JxktEhq5mDwCHgnEO5oBkA@mail.gmail.com
M src/backend/access/heap/heapam.c
Update parallel BTree scan state when the scan keys can't be satisfied.
commit : 0abd9cd2f3a1cad201ca28767aa0a720cc341179
author : Amit Kapila <[email protected]>
date : Thu, 17 Sep 2020 15:16:46 +0530
committer: Amit Kapila <[email protected]>
date : Thu, 17 Sep 2020 15:16:46 +0530
For parallel btree scan to work for array of scan keys, it should reach
BTPARALLEL_DONE state once for every distinct combination of array keys.
This is required to ensure that the parallel workers don't try to seize
blocks at the same time for different scan keys. We missed to update this
state when we discovered that the scan keys can't be satisfied.
Author: James Hunter
Reviewed-by: Amit Kapila
Tested-by: Justin Pryzby
Backpatch-through: 10, where it was introduced
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/nbtree/nbtsearch.c
Fix bogus completion tag usage in walsender
commit : bfb12cd2b59da2ce51a9c86bf2c468202d8f96ee
author : Alvaro Herrera <[email protected]>
date : Wed, 16 Sep 2020 13:04:38 -0300
committer: Alvaro Herrera <[email protected]>
date : Wed, 16 Sep 2020 13:04:38 -0300
Since commit fd5942c18f97 (2012, 9.3-era), walsender has been sending
completion tags for certain replication commands twice -- and they're
not even consistent. Apparently neither libpq nor JDBC have a problem
with it, but it's not kosher. Fix by remove the EndCommand() call in
the common code path for them all, and inserting specific calls to
EndReplicationCommand() specifically in those places where it's needed.
EndReplicationCommand() is a new simple function to send the completion
tag for replication commands. Do this instead of sending a generic
SELECT completion tag for them all, which was also pretty bogus (if
innocuous). While at it, change StartReplication() to use
EndReplicationCommand() instead of pg_puttextmessage().
In commit 2f9661311b83, I failed to realize that replication commands
are not close-enough kin of regular SQL commands, so the
DROP_REPLICATION_SLOT tag I added is undeserved and a type pun. Take it
out.
Backpatch to 13, where the latter commit appeared. The duplicate tag
has been sent since 9.3, but since nothing is broken, it doesn't seem
worth fixing.
Per complaints from Tom Lane.
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/walsender.c
M src/backend/tcop/dest.c
M src/include/tcop/cmdtaglist.h
M src/include/tcop/dest.h
Fix amcheck child check pg_upgrade bug.
commit : c287f585865b81c96602db995dacf2c006c79d58
author : Peter Geoghegan <[email protected]>
date : Wed, 16 Sep 2020 10:42:28 -0700
committer: Peter Geoghegan <[email protected]>
date : Wed, 16 Sep 2020 10:42:28 -0700
Commit d114cc53 overlooked the fact that pg_upgrade'd B-Tree indexes
have leaf page high keys whose offset numbers do not match the one from
the copy of the tuple one level up (the copy stored with a downlink for
leaf page's right sibling page). This led to false positive reports of
corruption from bt_index_parent_check() when it was called to verify a
pg_upgrade'd index.
To fix, skip comparing the offset number on pg_upgrade'd B-Tree indexes.
Author: Anastasia Lubennikova <[email protected]>
Author: Peter Geoghegan <[email protected]>
Reported-By: Andrew Bille <[email protected]>
Diagnosed-By: Anastasia Lubennikova <[email protected]>
Bug: #16619
Discussion: https://postgr.es/m/[email protected]
Backpatch: 13-, where child check was enhanced.
M contrib/amcheck/verify_nbtree.c
Avoid unnecessary recursion to child tables in ALTER TABLE SET NOT NULL.
commit : 17280b31c2f218f1b1f0c1fbacae7e781010a01b
author : Tom Lane <[email protected]>
date : Wed, 16 Sep 2020 13:38:26 -0400
committer: Tom Lane <[email protected]>
date : Wed, 16 Sep 2020 13:38:26 -0400
If a partitioned table's column is already marked NOT NULL, there is
no need to examine its partitions, because we can rely on previous
DDL to have enforced that the child columns are NOT NULL as well.
(Unfortunately, the same cannot be said for traditional inheritance,
so for now we have to restrict the optimization to partitioned tables.)
Hence, we may skip recursing to child tables in this situation.
The reason this case is worth worrying about is that when pg_dump dumps
a partitioned table having a primary key, it will include the requisite
NOT NULL markings in the CREATE TABLE commands, and then add the
primary key as a separate step. The primary key addition generates a
SET NOT NULL as a subcommand, just to be sure. So the situation where
a SET NOT NULL is redundant does arise in the real world.
Skipping the recursion does more than just save a few cycles: it means
that a command such as "ALTER TABLE ONLY partition_parent ADD PRIMARY
KEY" will take locks only on the partition parent table, not on the
partitions. It turns out that parallel pg_restore is effectively
assuming that that's true, and has little choice but to do so because
the dependencies listed for such a TOC entry don't include the
partitions. pg_restore could thus issue this ALTER while data restores
on the partitions are still in progress. Taking unnecessary locks on
the partitions not only hurts concurrency, but can lead to actual
deadlock failures, as reported by Domagoj Smoljanovic.
(A contributing factor in the deadlock is that TRUNCATE on a child
partition wants a non-exclusive lock on the parent. This seems
likewise unnecessary, but the fix for it is more invasive so we
won't consider back-patching it. Fortunately, getting rid of one
of these two poor behaviors is enough to remove the deadlock.)
Although support for partitioned primary keys came in with v11,
this patch is dependent on the SET NOT NULL refactoring done by
commit f4a3fdfbd, so we can only patch back to v12.
Patch by me; thanks to Alvaro Herrera and Amit Langote for review.
Discussion: https://postgr.es/m/VI1PR03MB31670CA1BD9625C3A8C5DD05EB230@VI1PR03MB3167.eurprd03.prod.outlook.com
M src/backend/commands/tablecmds.c
Fix bogus cache-invalidation logic in logical replication worker.
commit : 3e3f8f20206cbbb8d30be528d2a640d14a95c25c
author : Tom Lane <[email protected]>
date : Wed, 16 Sep 2020 12:07:31 -0400
committer: Tom Lane <[email protected]>
date : Wed, 16 Sep 2020 12:07:31 -0400
The code recorded cache invalidation events by zeroing the "localreloid"
field of affected cache entries. However, it's possible for an inval
event to occur even while we have the entry open and locked. So an
ill-timed inval could result in "cache lookup failed for relation 0"
errors, if the worker's code tried to use the cleared field. We can
fix that by creating a separate bool field to record whether the entry
needs to be revalidated. (In the back branches, cram the bool into
what had been padding space, to avoid an ABI break in the somewhat
unlikely event that any extension is looking at this struct.)
Also, rearrange the logic in logicalrep_rel_open so that it
does the right thing in cases where table_open would fail.
We should retry the lookup by name in that case, but we didn't.
The real-world impact of this is probably small. In the first place,
the error conditions are very low probability, and in the second place,
the worker would just exit and get restarted. We only noticed because
in a CLOBBER_CACHE_ALWAYS build, the failure can occur repeatedly,
preventing the worker from making progress. Nonetheless, it's clearly
a bug, and it impedes a useful type of testing; so back-patch to v10
where this code was introduced.
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/logical/relation.c
M src/include/replication/logicalrelation.h
Change LogicalTapeSetBlocks() to use nBlocksWritten.
commit : 6e146a663536f86c8421ac6ed08c4eb9a69979fd
author : Jeff Davis <[email protected]>
date : Tue, 15 Sep 2020 21:34:05 -0700
committer: Jeff Davis <[email protected]>
date : Tue, 15 Sep 2020 21:34:05 -0700
Previously, it was based on nBlocksAllocated to account for tapes with
open write buffers that may not have made it to the BufFile yet.
That was unnecessary, because callers do not need to get the number of
blocks while a tape has an open write buffer; and it also conflicted
with the preallocation logic added for HashAgg.
Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
M src/backend/utils/sort/logtape.c
HashAgg: release write buffers sooner by rewinding tape.
commit : 42a46f5a76ecb435ac3a29fc3a0d03f1cfff17ab
author : Jeff Davis <[email protected]>
date : Tue, 15 Sep 2020 21:16:31 -0700
committer: Jeff Davis <[email protected]>
date : Tue, 15 Sep 2020 21:16:31 -0700
This was an oversight. The purpose of 7fdd919ae7 was to avoid keeping
tape buffers around unnecessisarily, but HashAgg didn't rewind early
enough.
Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
Fix use-after-free bug with event triggers in an extension script
commit : 873cb8fca9b14bde3e1d5577fcbb7b76d303076d
author : Alvaro Herrera <[email protected]>
date : Tue, 15 Sep 2020 21:03:14 -0300
committer: Alvaro Herrera <[email protected]>
date : Tue, 15 Sep 2020 21:03:14 -0300
ALTER TABLE commands in an extension script are added to an event
trigger command list; but starting with commit b5810de3f4 they do so in
a memory context that's too short-lived, so when execution ends and time
comes to use the entries, they've already been freed.
(This would also be a problem with ALTER TABLE commands in a
multi-command query string, but these serendipitously end in
PortalContext -- which probably explains why it took so long for this to
be reported.)
Fix by using the memory context specifically set for that, instead.
Backpatch to 13, where the aforementioned commit appeared.
Reported-by: Philippe Beaudoin
Author: Jehan-Guillaume de Rorthais <[email protected]>
Discussion: https://postgr.es/m/20200902193715.6e0269d4@firost
M src/backend/commands/event_trigger.c
M src/test/modules/test_extensions/Makefile
M src/test/modules/test_extensions/expected/test_extensions.out
M src/test/modules/test_extensions/sql/test_extensions.sql
A src/test/modules/test_extensions/test_ext_evttrig–1.0–2.0.sql
A src/test/modules/test_extensions/test_ext_evttrig–1.0.sql
A src/test/modules/test_extensions/test_ext_evttrig.control
Doc: improve release notes' info about FROM UNPACKAGED feature removal.
commit : d42c6176446440b185fcb95c214b7e40d5758b60
author : Tom Lane <[email protected]>
date : Tue, 15 Sep 2020 14:29:43 -0400
committer: Tom Lane <[email protected]>
date : Tue, 15 Sep 2020 14:29:43 -0400
Per gripe from Jonathan Katz.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Doc: fix misstatement in v13 release notes.
commit : 001d2c5f15bf8d554a7fe28af033d82c24de4e44
author : Tom Lane <[email protected]>
date : Tue, 15 Sep 2020 10:58:37 -0400
committer: Tom Lane <[email protected]>
date : Tue, 15 Sep 2020 10:58:37 -0400
Parallel vacuuming isn't restricted to b-tree indexes.
Noted by Peter Eisentraut.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Stamp 13rc1.
commit : efea2b85fa2c3dec1c8039f1c97fcfe53ee5e82c
author : Tom Lane <[email protected]>
date : Mon, 14 Sep 2020 16:08:07 -0400
committer: Tom Lane <[email protected]>
date : Mon, 14 Sep 2020 16:08:07 -0400
M configure
M configure.in
Translation updates
commit : bab6f77f24407e0924dac292af9e65016fce99bf
author : Peter Eisentraut <[email protected]>
date : Mon, 14 Sep 2020 13:14:53 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 14 Sep 2020 13:14:53 +0200
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 00c0d74fc1f1f2a831077fdf3655c6ae5eeceac3
M src/backend/nls.mk
M src/backend/po/de.po
M src/backend/po/es.po
D src/backend/po/id.po
M src/backend/po/ja.po
D src/backend/po/pl.po
D src/backend/po/pt_BR.po
M src/backend/po/ru.po
M src/backend/po/sv.po
A src/backend/po/uk.po
M src/bin/initdb/nls.mk
M src/bin/initdb/po/es.po
D src/bin/initdb/po/he.po
D src/bin/initdb/po/it.po
M src/bin/initdb/po/ja.po
D src/bin/initdb/po/pl.po
D src/bin/initdb/po/pt_BR.po
M src/bin/initdb/po/ru.po
D src/bin/initdb/po/vi.po
M src/bin/pg_archivecleanup/nls.mk
M src/bin/pg_archivecleanup/po/es.po
M src/bin/pg_archivecleanup/po/ja.po
D src/bin/pg_archivecleanup/po/pl.po
M src/bin/pg_archivecleanup/po/ru.po
D src/bin/pg_archivecleanup/po/vi.po
M src/bin/pg_basebackup/nls.mk
M src/bin/pg_basebackup/po/es.po
D src/bin/pg_basebackup/po/he.po
D src/bin/pg_basebackup/po/it.po
M src/bin/pg_basebackup/po/ja.po
D src/bin/pg_basebackup/po/pl.po
D src/bin/pg_basebackup/po/pt_BR.po
M src/bin/pg_basebackup/po/ru.po
A src/bin/pg_basebackup/po/uk.po
D src/bin/pg_basebackup/po/vi.po
M src/bin/pg_checksums/po/es.po
M src/bin/pg_checksums/po/ja.po
M src/bin/pg_checksums/po/ru.po
M src/bin/pg_config/nls.mk
M src/bin/pg_config/po/es.po
M src/bin/pg_config/po/ja.po
D src/bin/pg_config/po/nb.po
D src/bin/pg_config/po/ro.po
M src/bin/pg_config/po/ru.po
D src/bin/pg_config/po/ta.po
D src/bin/pg_config/po/zh_TW.po
M src/bin/pg_controldata/nls.mk
M src/bin/pg_controldata/po/es.po
M src/bin/pg_controldata/po/ja.po
D src/bin/pg_controldata/po/pl.po
D src/bin/pg_controldata/po/pt_BR.po
M src/bin/pg_controldata/po/ru.po
D src/bin/pg_controldata/po/vi.po
M src/bin/pg_ctl/nls.mk
M src/bin/pg_ctl/po/es.po
D src/bin/pg_ctl/po/he.po
M src/bin/pg_ctl/po/ja.po
D src/bin/pg_ctl/po/pl.po
D src/bin/pg_ctl/po/pt_BR.po
M src/bin/pg_ctl/po/ru.po
M src/bin/pg_dump/nls.mk
M src/bin/pg_dump/po/es.po
D src/bin/pg_dump/po/he.po
D src/bin/pg_dump/po/it.po
M src/bin/pg_dump/po/ja.po
D src/bin/pg_dump/po/pl.po
D src/bin/pg_dump/po/pt_BR.po
M src/bin/pg_dump/po/ru.po
M src/bin/pg_dump/po/sv.po
A src/bin/pg_dump/po/uk.po
M src/bin/pg_resetwal/nls.mk
M src/bin/pg_resetwal/po/es.po
D src/bin/pg_resetwal/po/it.po
M src/bin/pg_resetwal/po/ja.po
D src/bin/pg_resetwal/po/pl.po
D src/bin/pg_resetwal/po/pt_BR.po
M src/bin/pg_resetwal/po/ru.po
M src/bin/pg_rewind/nls.mk
M src/bin/pg_rewind/po/de.po
M src/bin/pg_rewind/po/es.po
D src/bin/pg_rewind/po/it.po
M src/bin/pg_rewind/po/ja.po
D src/bin/pg_rewind/po/pl.po
D src/bin/pg_rewind/po/pt_BR.po
M src/bin/pg_rewind/po/ru.po
M src/bin/pg_test_fsync/po/es.po
M src/bin/pg_test_fsync/po/ru.po
M src/bin/pg_test_timing/po/es.po
M src/bin/pg_upgrade/nls.mk
M src/bin/pg_upgrade/po/es.po
M src/bin/pg_upgrade/po/ja.po
M src/bin/pg_upgrade/po/ru.po
A src/bin/pg_upgrade/po/uk.po
M src/bin/pg_verifybackup/nls.mk
A src/bin/pg_verifybackup/po/de.po
A src/bin/pg_verifybackup/po/es.po
A src/bin/pg_verifybackup/po/ru.po
A src/bin/pg_verifybackup/po/uk.po
M src/bin/pg_waldump/nls.mk
M src/bin/pg_waldump/po/es.po
M src/bin/pg_waldump/po/ja.po
M src/bin/pg_waldump/po/ru.po
D src/bin/pg_waldump/po/vi.po
M src/bin/psql/nls.mk
M src/bin/psql/po/de.po
M src/bin/psql/po/es.po
D src/bin/psql/po/he.po
M src/bin/psql/po/ja.po
D src/bin/psql/po/pl.po
D src/bin/psql/po/pt_BR.po
M src/bin/psql/po/ru.po
M src/bin/psql/po/sv.po
D src/bin/psql/po/zh_TW.po
M src/bin/scripts/nls.mk
M src/bin/scripts/po/de.po
M src/bin/scripts/po/es.po
D src/bin/scripts/po/he.po
D src/bin/scripts/po/it.po
M src/bin/scripts/po/ja.po
D src/bin/scripts/po/pl.po
D src/bin/scripts/po/pt_BR.po
M src/bin/scripts/po/ru.po
M src/bin/scripts/po/sv.po
A src/bin/scripts/po/uk.po
M src/interfaces/ecpg/ecpglib/po/es.po
M src/interfaces/ecpg/ecpglib/po/ru.po
M src/interfaces/ecpg/preproc/po/es.po
M src/interfaces/ecpg/preproc/po/ru.po
M src/interfaces/libpq/nls.mk
M src/interfaces/libpq/po/es.po
D src/interfaces/libpq/po/he.po
M src/interfaces/libpq/po/ja.po
D src/interfaces/libpq/po/pl.po
D src/interfaces/libpq/po/pt_BR.po
M src/interfaces/libpq/po/ru.po
M src/interfaces/libpq/po/sv.po
D src/interfaces/libpq/po/zh_TW.po
M src/pl/plperl/nls.mk
M src/pl/plperl/po/es.po
M src/pl/plperl/po/ru.po
A src/pl/plperl/po/uk.po
D src/pl/plperl/po/zh_TW.po
M src/pl/plpgsql/src/nls.mk
M src/pl/plpgsql/src/po/es.po
D src/pl/plpgsql/src/po/ro.po
M src/pl/plpgsql/src/po/ru.po
D src/pl/plpgsql/src/po/zh_TW.po
M src/pl/plpython/po/es.po
M src/pl/plpython/po/ru.po
M src/pl/tcl/nls.mk
M src/pl/tcl/po/es.po
D src/pl/tcl/po/pt_BR.po
D src/pl/tcl/po/ro.po
M src/pl/tcl/po/ru.po
D src/pl/tcl/po/zh_TW.po
Fix interpolation in test name.
commit : 6fb1c5b528267918a88c4143985a08a3c997e528
author : Noah Misch <[email protected]>
date : Sun, 13 Sep 2020 23:29:51 -0700
committer: Noah Misch <[email protected]>
date : Sun, 13 Sep 2020 23:29:51 -0700
A pre-commit review had reported the problem, but the fix reached only
v10 and earlier. Back-patch to v11.
Discussion: https://postgr.es/m/[email protected]
M src/test/recovery/t/020_archive_status.pl
Message fixes and style improvements
commit : b1b53f15bbac106e241b14ae1bc13f2708fe74c8
author : Peter Eisentraut <[email protected]>
date : Mon, 14 Sep 2020 06:42:07 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 14 Sep 2020 06:42:07 +0200
M src/backend/access/heap/vacuumlazy.c
M src/backend/access/transam/xlog.c
M src/backend/commands/opclasscmds.c
M src/backend/commands/tablecmds.c
M src/backend/libpq/hba.c
M src/backend/nodes/params.c
M src/backend/parser/gram.y
M src/backend/parser/parse_clause.c
M src/backend/replication/basebackup.c
M src/backend/storage/ipc/procarray.c
M src/backend/utils/adt/jsonpath_exec.c
M src/backend/utils/fmgr/fmgr.c
M src/backend/utils/misc/guc.c
M src/backend/utils/sort/sharedtuplestore.c
M src/bin/pg_verifybackup/parse_manifest.c
M src/bin/pg_verifybackup/pg_verifybackup.c
M src/bin/pg_verifybackup/t/005_bad_manifest.pl
M src/bin/pgbench/t/001_pgbench_with_server.pl
M src/bin/scripts/vacuumdb.c
M src/fe_utils/archive.c
M src/test/modules/test_misc/t/001_constraint_validation.pl
M src/test/regress/expected/alter_generic.out
M src/test/regress/expected/jsonb_jsonpath.out
M src/test/regress/expected/limit.out
Use the properly transformed RangeVar for expandTableLikeClause().
commit : b380484a850b6bf7d9fc0d85c555a2366e38451f
author : Tom Lane <[email protected]>
date : Sun, 13 Sep 2020 12:51:21 -0400
committer: Tom Lane <[email protected]>
date : Sun, 13 Sep 2020 12:51:21 -0400
transformCreateStmt() adjusts the transformed statement's RangeVar
to specify the target schema explicitly, for the express reason
of making sure that auxiliary statements derived by parse
transformation operate on the right table. But the refactoring
I did in commit 502898192 got this wrong and passed the untransformed
RangeVar to expandTableLikeClause(). This could lead to assertion
failures or weird misbehavior if the wrong table was accessed.
Per report from Alexander Lakhin. Like the previous patch, back-patch
to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/backend/tcop/utility.c
M src/test/regress/expected/create_table_like.out
M src/test/regress/sql/create_table_like.sql
doc: Don't hide the "Up" link when it is the same as "Home"
commit : e6bbe07deec9824eb62fbbf38c4bfe7aaf674d37
author : Peter Eisentraut <[email protected]>
date : Sun, 6 Sep 2020 16:46:13 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 6 Sep 2020 16:46:13 +0200
The original stylesheets seemed to think this was a good idea, but our
users find it confusing and unhelpful, so undo that logic.
Reported-by: Fabien COELHO <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/alpine.DEB.2.22.394.2006210914370.859381%40pseudo
M doc/src/sgml/stylesheet.xsl
logtape.c: do not preallocate for tapes when sorting
commit : 93106d71a18afdda2b9bf6e6b8e6c7f9cea2d0ef
author : Jeff Davis <[email protected]>
date : Fri, 11 Sep 2020 17:10:02 -0700
committer: Jeff Davis <[email protected]>
date : Fri, 11 Sep 2020 17:10:02 -0700
The preallocation logic is only useful for HashAgg, so disable it when
sorting.
Also, adjust an out-of-date comment.
Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-Wzn_o7tE2+hRVvwSFghRb75AJ5g-nqGzDUqLYMexjOAe=g@mail.gmail.com
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
M src/backend/utils/sort/logtape.c
M src/backend/utils/sort/tuplesort.c
M src/include/utils/logtape.h
psql: Display stats target of extended statistics
commit : aeb781107a7ca0cfe109c188534ecbf9c392f6ba
author : Alvaro Herrera <[email protected]>
date : Fri, 11 Sep 2020 16:15:47 -0300
committer: Alvaro Herrera <[email protected]>
date : Fri, 11 Sep 2020 16:15:47 -0300
The stats target can be set since commit d06215d03, but wasn't shown by
psql.
Author: Justin Pryzby <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Reviewed-by: Georgios Kokolatos <[email protected]>
Reviewed-by: Tatsuro Yamada <[email protected]>
M src/bin/psql/describe.c
M src/test/regress/expected/stats_ext.out
M src/test/regress/sql/stats_ext.sql
Update copyright year
commit : 6dcec8fe13b41b0773e9122168a1b53f3e458206
author : Alvaro Herrera <[email protected]>
date : Fri, 11 Sep 2020 12:53:25 -0300
committer: Alvaro Herrera <[email protected]>
date : Fri, 11 Sep 2020 12:53:25 -0300
Thinko in 40b3e2c201af.
Reported-by: "Wang, Shenhao" <[email protected]>
Discussion: https://postgr.es/m/ed98706b82694b57a8c0d339a10732aa@G08CNEXMBPEKD06.g08.fujitsu.local
M src/backend/catalog/pg_cast.c
Doc: some more v13 release note tweaking.
commit : 9892564121d425291c4fd06ff083147dd70b9156
author : Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 18:42:57 -0400
committer: Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 18:42:57 -0400
Justin Pryzby
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Doc: update v13 release notes through today, do a copy-editing pass.
commit : 3965de54e718600a4703233936e56a3202caf73f
author : Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 17:43:16 -0400
committer: Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 17:43:16 -0400
Also set the release date ... hopefully we won't have to change that.
M doc/src/sgml/release-13.sgml
Doc: fill in "major enhancements" list in v13 release notes.
commit : 3d92252d7d8bf7080ba61f1bda3d27bd8a3617e1
author : Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 13:14:09 -0400
committer: Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 13:14:09 -0400
Jonathan S. Katz, minor tweaks by me
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Use _exit(2) for SIGQUIT during ProcessStartupPacket, too.
commit : 3f29aa48b6df318e43d0efe5735f61175ef38574
author : Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 12:06:26 -0400
committer: Tom Lane <[email protected]>
date : Thu, 10 Sep 2020 12:06:26 -0400
Bring the signal handling for startup-packet collection into line
with the policy established in commits bedadc732 and 8e19a8264,
namely don't risk running atexit callbacks when handling SIGQUIT.
Ideally, we'd not do so for SIGTERM or timeout interrupts either,
but that change seems a bit too risky for the back branches.
For now, just improve the comments in this area to describe the risk.
Also relocate where BackendInitialize re-disables these interrupts,
to minimize the code span where they're active. This doesn't buy
a whole lot of safety, but it can't hurt.
In passing, rename startup_die() to remove confusion about whether
it is for the startup process.
Like the previous commits, back-patch to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/backend/postmaster/postmaster.c
doc: Remove buggy ICU collation from documentation
commit : 9f358c5ef31327f7a67af783f5f37468bbac3aed
author : Peter Eisentraut <[email protected]>
date : Thu, 10 Sep 2020 15:31:09 +0200
committer: Peter Eisentraut <[email protected]>
date : Thu, 10 Sep 2020 15:31:09 +0200
We have had multiple reports that point to the
'@colReorder=latn-digit' collation customization being buggy. We have
reported this to ICU and are waiting for a fix. In the meantime,
remove references to this from the documentation and replace it by
another reordering example. Apparently, many users have been picking
up this example specifically from the documentation.
Author: Jehan-Guillaume de Rorthais <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/153201618542.1404.3611626898935613264%40wrigleys.postgresql.org
M doc/src/sgml/charset.sgml
Fix title in reference section
commit : 727f6fb8f71f7ed64e6883164765bbf6cb7684ec
author : Magnus Hagander <[email protected]>
date : Thu, 10 Sep 2020 14:15:26 +0200
committer: Magnus Hagander <[email protected]>
date : Thu, 10 Sep 2020 14:15:26 +0200
Reported-by: Robert Kahlert
Author: Daniel Gustafsson
M doc/src/sgml/biblio.sgml
Clean up some code and comments in partbounds.c.
commit : d601a930756b96fe05beb75a1b624a8155c98cc8
author : Etsuro Fujita <[email protected]>
date : Thu, 10 Sep 2020 18:00:01 +0900
committer: Etsuro Fujita <[email protected]>
date : Thu, 10 Sep 2020 18:00:01 +0900
Do some minor cleanup for commit c8434d64c: 1) remove a useless
assignment (in normal builds) and 2) improve comments a little.
Back-patch to v13 where the aforementioned commit went in.
Author: Etsuro Fujita
Reviewed-by: Alvaro Herrera
Discussion: https://postgr.es/m/CAPmGK16yCd2R4=bQ4g8N2dT9TtA5ZU+qNmJ3LPc_nypbNy4_2A@mail.gmail.com
M src/backend/partitioning/partbounds.c
Doc: clean up contributor names.
commit : 32a433455a0a6918b9c8f300d6c0be73ef06e9f9
author : Etsuro Fujita <[email protected]>
date : Thu, 10 Sep 2020 16:15:00 +0900
committer: Etsuro Fujita <[email protected]>
date : Thu, 10 Sep 2020 16:15:00 +0900
Standardize Japanese names as given-name-first.
Author: Etsuro Fujita
Reviewed-by: Peter Eisentraut
Discussion: https://postgr.es/m/CAPmGK14S5frHWzsKS14R2LeMjKkjr5PeqRGiKZ0os0A+o8BWuQ@mail.gmail.com
M doc/src/sgml/release-13.sgml
doc: Fix some grammar and inconsistencies
commit : b3d89b7a889614a5ad549bae49b8a6fdda3a6bdd
author : Michael Paquier <[email protected]>
date : Thu, 10 Sep 2020 15:50:42 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 10 Sep 2020 15:50:42 +0900
Some comments are fixed while on it.
Author: Justin Pryzby
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.6
M doc/src/sgml/logicaldecoding.sgml
M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/create_subscription.sgml
M doc/src/sgml/ref/pg_verifybackup.sgml
M doc/src/sgml/sources.sgml
M src/backend/replication/logical/relation.c
M src/backend/storage/lmgr/proc.c
Fix rd_firstRelfilenodeSubid for nailed relations, in parallel workers.
commit : 6f15be5bedfc423b8a8f2f0282e2a0eb20a16663
author : Noah Misch <[email protected]>
date : Wed, 9 Sep 2020 18:50:24 -0700
committer: Noah Misch <[email protected]>
date : Wed, 9 Sep 2020 18:50:24 -0700
Move applicable code out of RelationBuildDesc(), which nailed relations
bypass. Non-assert builds experienced no known problems. Back-patch to
v13, where commit c6b92041d38512a4176ed76ad06f713d2e6c01a8 introduced
rd_firstRelfilenodeSubid.
Kyotaro Horiguchi. Reported by Justin Pryzby.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/cache/relcache.c
M src/test/regress/expected/reindex_catalog.out
M src/test/regress/sql/reindex_catalog.sql
Make archiver's SIGQUIT handler exit via _exit().
commit : 35e59398abbb562f1e831af206f1d1cc8c3cb7db
author : Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 15:32:34 -0400
committer: Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 15:32:34 -0400
Commit 8e19a8264 changed the SIGQUIT handlers of almost all server
processes not to run atexit callbacks. The archiver process was
skipped, perhaps because it's not connected to shared memory; but
it's just as true here that running atexit callbacks in a signal
handler is unsafe. So let's make it work like the rest.
In HEAD and v13, we can use the common SignalHandlerForCrashExit
handler. Before that, just tweak pgarch_exit to use _exit(2)
explicitly.
Like the previous commit, back-patch to all supported branches.
Kyotaro Horiguchi, back-patching by me
Discussion: https://postgr.es/m/[email protected]
M src/backend/postmaster/pgarch.c
Doc: adjust documentation related to index support functions.
commit : 6b473ab4f23736d67c420909ab65c55228dcd6e6
author : Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 12:00:49 -0400
committer: Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 12:00:49 -0400
Commit 15cb2bd27 neglected to make the running text match the
tables, leaving the reader with the strong impression that
we cannot count. Also, don't drop an unrelated para between
a table and the para describing it.
M doc/src/sgml/xindex.sgml
Minor fixes in docs and error messages.
commit : aa33187164e1d8571f1568f0470aaace8f791876
author : Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 11:53:39 -0400
committer: Tom Lane <[email protected]>
date : Wed, 9 Sep 2020 11:53:39 -0400
Alexander Lakhin
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/bgworker.sgml
M doc/src/sgml/btree.sgml
M doc/src/sgml/intarray.sgml
M src/backend/replication/backup_manifest.c
M src/backend/utils/misc/guc.c
Add missing quote in docs
commit : 1bf0b9c5f58c61c160519a77a8f9dd24cea68b32
author : Magnus Hagander <[email protected]>
date : Wed, 9 Sep 2020 12:20:53 +0200
committer: Magnus Hagander <[email protected]>
date : Wed, 9 Sep 2020 12:20:53 +0200
Mistake in commit 68b603e1a9.
Reported-by: Ian Barwick
M doc/src/sgml/file-fdw.sgml
Check default partitions constraints while descending
commit : d0230a43fcae6f923fcedfe6f27db7fca8760d95
author : Alvaro Herrera <[email protected]>
date : Tue, 8 Sep 2020 19:35:15 -0300
committer: Alvaro Herrera <[email protected]>
date : Tue, 8 Sep 2020 19:35:15 -0300
Partitioning tuple route code assumes that the partition chosen while
descending the partition hierarchy is always the correct one. This is
true except when the partition is the default partition and another
partition has been added concurrently: the partition constraint changes
and we don't recheck it. This can lead to tuples mistakenly being added
to the default partition that should have been rejected.
Fix by rechecking the default partition constraint while descending the
hierarchy.
An isolation test based on the reproduction steps described by Hao Wu
(with tweaks for extra coverage) is included.
Backpatch to 12, where this bug came in with 898e5e3290a7.
Reported by: Hao Wu <[email protected]>
Author: Amit Langote <[email protected]>
Author: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/CA+HiwqFqBmcSSap4sFnCBUEL_VfOMmEKaQ3gwUhyfa4c7J_-nA@mail.gmail.com
Discussion: https://postgr.es/m/DM5PR0501MB3910E97A9EDFB4C775CF3D75A42F0@DM5PR0501MB3910.namprd05.prod.outlook.com
M src/backend/executor/execPartition.c
A src/test/isolation/expected/partition-concurrent-attach.out
M src/test/isolation/isolation_schedule
A src/test/isolation/specs/partition-concurrent-attach.spec
Adjust cost model for HashAgg that spills to disk.
commit : b61d048e0d480f4311c62bf3026879c83ba9aaad
author : Jeff Davis <[email protected]>
date : Mon, 7 Sep 2020 13:31:59 -0700
committer: Jeff Davis <[email protected]>
date : Mon, 7 Sep 2020 13:31:59 -0700
Tomas Vondra observed that the IO behavior for HashAgg tends to be
worse than for Sort. Penalize HashAgg IO costs accordingly.
Also, account for the CPU effort of spilling the tuples and reading
them back.
Discussion: https://postgr.es/m/20200906212112.nzoy5ytrzjjodpfh@development
Reviewed-by: Tomas Vondra
Backpatch-through: 13
M src/backend/optimizer/path/costsize.c
Clarify comments in enforce_generic_type_consistency().
commit : e02c99bff6fcf7a14292cf99b16e4810ea89a2de
author : Tom Lane <[email protected]>
date : Mon, 7 Sep 2020 14:52:33 -0400
committer: Tom Lane <[email protected]>
date : Mon, 7 Sep 2020 14:52:33 -0400
Some of the pre-existing comments were vague about whether they
referred to all polymorphic types or only the old-style ones.
Also be more consistent about using the "family 1" vs "family 2"
terminology.
Himanshu Upadhyaya and Tom Lane
Discussion: https://postgr.es/m/CAPF61jBUg9XoMPNuLpoZ+h6UZ2VxKdNt3rQL1xw1GOBwjWzAXQ@mail.gmail.com
M src/backend/parser/parse_coerce.c
Update list of acknowledgments in release notes
commit : 1e83138da14d61d572b0b58a9da6a2cf535ea198
author : Peter Eisentraut <[email protected]>
date : Mon, 7 Sep 2020 09:08:58 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 7 Sep 2020 09:08:58 +0200
current through b7cf9e42ac2d4b153eb781195ebf369d4b8b566e
M doc/src/sgml/release-13.sgml
doc: Tweak sentence for pg_checksums when enabling checksums
commit : b7cf9e42ac2d4b153eb781195ebf369d4b8b566e
author : Michael Paquier <[email protected]>
date : Mon, 7 Sep 2020 14:35:13 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 7 Sep 2020 14:35:13 +0900
The previous version of the docs mentioned that files are rewritten,
implying that a second copy of each file gets created, but each file is
updated in-place.
Author: Michael Banck
Reviewed-by: Daniel Gustafsson, Michael Paquier
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 12
M doc/src/sgml/ref/pg_checksums.sgml
Change path in example of file_fdw for logs
commit : a82919afe26ad93a135aa5f017a3f31ec5a6547a
author : Magnus Hagander <[email protected]>
date : Sun, 6 Sep 2020 19:28:32 +0200
committer: Magnus Hagander <[email protected]>
date : Sun, 6 Sep 2020 19:28:32 +0200
It's better to use a relative path into the data directory, than to a
hardcoded home directory of user 'josh'.
Discussion: https://postgr.es/m/CABUevEyuf67Yu_r9gpDMs5MKifK7+-+pe=ZjKzya4JEn9kUk1w@mail.gmail.com
M doc/src/sgml/file-fdw.sgml
Fix misleading error message about inconsistent moving-aggregate types.
commit : f04203ab7e683bc3e961a40b002cf3c8d1d12100
author : Tom Lane <[email protected]>
date : Sun, 6 Sep 2020 12:55:13 -0400
committer: Tom Lane <[email protected]>
date : Sun, 6 Sep 2020 12:55:13 -0400
We reported the wrong types when complaining that an aggregate's
moving-aggregate implementation is inconsistent with its regular
implementation.
This was wrong since the feature was introduced, so back-patch
to all supported branches.
Jeff Janes
Discussion: https://postgr.es/m/CAMkU=1x808LH=LPhZp9mNSP0Xd1xDqEd+XeGcvEe48dfE6xV=A@mail.gmail.com
M src/backend/catalog/pg_aggregate.c
Remove useless lstat() call in pg_rewind.
commit : e7f06ea60a3c07128176b294ce3fb0555edd15a5
author : Tom Lane <[email protected]>
date : Sun, 6 Sep 2020 11:50:40 -0400
committer: Tom Lane <[email protected]>
date : Sun, 6 Sep 2020 11:50:40 -0400
This is duplicative of an lstat that was just done by the calling
function (traverse_datadir), besides which we weren't really doing
anything with the results. There's not much point in checking to
see if someone removed the file since the previous lstat, since the
FILE_ACTION_REMOVE code would have to deal with missing-file cases
anyway. Moreover, the "exists = false" assignment was a dead store;
nothing was done with that value later.
A syscall saved is a syscall earned, so back-patch to 9.5
where this code was introduced.
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_rewind/filemap.c
Make new authentication test case more robust.
commit : 8df601bd4067ecdf373ebe43bdf03159a12e2e9d
author : Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 21:01:59 -0400
committer: Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 21:01:59 -0400
I happened to notice that the new test case I added in b55b4dad9
falls over if one runs "make check" repeatedly; though not in branches
after v10. That's because it was assuming that tmp_check/pgpass
wouldn't exist already. However, it's only been since v11 that the
Makefiles forcibly remove all of tmp_check/ before starting a TAP run.
This fix to unlink the file is therefore strictly necessary only in
v10 ... but it seems wisest to do it across the board, rather than
let the test rely on external logic to get the conditions right.
M src/test/authentication/t/001_password.pl
Fix over-eager ping'ing in logical replication receiver.
commit : 9b81a30f924cf30e6bf3abb3366706440351e163
author : Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 20:20:05 -0400
committer: Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 20:20:05 -0400
Commit 3f60f690f only partially fixed the broken-status-tracking
issue in LogicalRepApplyLoop: we need ping_sent to have the same
lifetime as last_recv_timestamp. The effects are much less serious
than what that commit fixed, though. AFAICS this would just lead to
extra ping requests being sent, once per second until the sender
responds. Still, it's a bug, so backpatch to v10 as before.
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/logical/worker.c
Fix bogus MaxAllocSize check in logtape.c.
commit : 4a4f3bf983b4abd908585a8d752eee0e47627034
author : Jeff Davis <[email protected]>
date : Fri, 4 Sep 2020 12:01:58 -0700
committer: Jeff Davis <[email protected]>
date : Fri, 4 Sep 2020 12:01:58 -0700
Reported-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-Wz=NZPZc3-fkdmvu=w2itx0PiB-G6QpxHXZOjuvFAzPdZw@mail.gmail.com
Backpatch-through: 13
M src/backend/utils/sort/logtape.c
Collect attribute data on extension owned tables being dumped
commit : 72857482c135677703111855f33550c442108eaa
author : Andrew Dunstan <[email protected]>
date : Fri, 4 Sep 2020 13:53:09 -0400
committer: Andrew Dunstan <[email protected]>
date : Fri, 4 Sep 2020 13:53:09 -0400
If this data is not collected, pg_dump segfaults if asked for column
inserts.
Fix by Fabrízio de Royes Mello
Backpatch to release 12 where the bug was introduced.
M src/bin/pg_dump/pg_dump.c
M src/test/modules/test_pg_dump/t/001_base.pl
M src/test/modules/test_pg_dump/test_pg_dump–1.0.sql
C comment: correct use of 64-"byte" cache line size
commit : 7574af1e1b94a4de7a6f63f3a7854a508ab7b0e0
author : Bruce Momjian <[email protected]>
date : Fri, 4 Sep 2020 13:27:52 -0400
committer: Bruce Momjian <[email protected]>
date : Fri, 4 Sep 2020 13:27:52 -0400
Reported-by: Kelly Min
Discussion: https://postgr.es/m/CAPSbxatOiQO90LYpSC3+svAU9-sHgDfEP4oFhcEUt_X=DqFA9g@mail.gmail.com
Backpatch-through: 9.5
M src/include/storage/buf_internals.h
Fix rare deadlock failure in create_am regression test.
commit : afec6ba0bae0258835b81fcc0eeed3ff9c455427
author : Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 12:40:28 -0400
committer: Tom Lane <[email protected]>
date : Fri, 4 Sep 2020 12:40:28 -0400
The "DROP ACCESS METHOD gist2" test will require locking the index
to be dropped and then its table; while most ordinary operations
lock a table first then its index. While no concurrent test scripts
should be touching fast_emp4000, autovacuum might chance to be
processing that table when the DROP runs, resulting in a deadlock
failure. This is pretty rare but we see it in the buildfarm from
time to time.
To fix, acquire a lock on fast_emp4000 before issuing the DROP.
Since the point of the exercise is mostly to prevent buildfarm
failures, back-patch to 9.6 where this test was introduced.
Discussion: https://postgr.es/m/[email protected]
M src/test/regress/expected/create_am.out
M src/test/regress/sql/create_am.sql
Avoid lockup of a parallel worker when reporting a long error message.
commit : 17424e79d9794b00bdb6653185fc27ba423d8d81
author : Tom Lane <[email protected]>
date : Thu, 3 Sep 2020 16:52:09 -0400
committer: Tom Lane <[email protected]>
date : Thu, 3 Sep 2020 16:52:09 -0400
Because sigsetjmp() will restore the initial state with signals blocked,
the code path in bgworker.c for reporting an error and exiting would
execute that way. Usually this is fairly harmless; but if a parallel
worker had an error message exceeding the shared-memory communication
buffer size (16K) it would lock up, because it would wait for a
resume-sending signal from its parallel leader which it would never
detect.
To fix, just unblock signals at the appropriate point.
This can be shown to fail back to 9.6. The lack of parallel query
infrastructure makes it difficult to provide a simple test case for
9.5; but I'm pretty sure the issue exists in some form there as well,
so apply the code change there too.
Vignesh C, reviewed by Bharath Rupireddy, Robert Haas, and myself
Discussion: https://postgr.es/m/CALDaNm1d1hHPZUg3xU4XjtWBOLCrA+-2cJcLpw-cePZ=GgDVfA@mail.gmail.com
M src/backend/postmaster/bgworker.c
M src/test/regress/expected/select_parallel.out
M src/test/regress/sql/select_parallel.sql
Doc: mention packager-supplied tools for server start/stop, initdb, etc.
commit : 214bc9038e39e209924514b77db4ee491f95509a
author : Tom Lane <[email protected]>
date : Thu, 3 Sep 2020 11:45:26 -0400
committer: Tom Lane <[email protected]>
date : Thu, 3 Sep 2020 11:45:26 -0400
The majority of our audience is probably using a pre-packaged Postgres
build rather than raw sources. For them, much of runtime.sgml is not
too relevant, and they should be reading the packager's docs instead.
Add some notes pointing that way in appropriate places.
Text by me; thanks to Daniel Gustafsson for review and discussion,
and to Laurenz Albe for an earlier version.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/runtime.sgml
Fix typo in comment
commit : 352b8cf59f400e69a80db12f920adf12a1b0607c
author : Alvaro Herrera <[email protected]>
date : Tue, 1 Sep 2020 20:43:23 -0400
committer: Alvaro Herrera <[email protected]>
date : Tue, 1 Sep 2020 20:43:23 -0400
Introduced by 8b08f7d4820f; backpatch to 11.
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_dump/pg_dump.h
doc: clarify that max_wal_size is "during" checkpoints
commit : 2c7db50ce83ec375ad6ddeba498f07c78bc10e97
author : Bruce Momjian <[email protected]>
date : Tue, 1 Sep 2020 17:00:10 -0400
committer: Bruce Momjian <[email protected]>
date : Tue, 1 Sep 2020 17:00:10 -0400
Previous wording was "between".
Reported-by: Pavel Luzanov
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/config.sgml
Raise error on concurrent drop of partitioned index
commit : 15dad5776578e884ee7857abb278a116c0c3e578
author : Alvaro Herrera <[email protected]>
date : Tue, 1 Sep 2020 13:40:43 -0400
committer: Alvaro Herrera <[email protected]>
date : Tue, 1 Sep 2020 13:40:43 -0400
We were already raising an error for DROP INDEX CONCURRENTLY on a
partitioned table, albeit a different and confusing one:
ERROR: DROP INDEX CONCURRENTLY must be first action in transaction
Change that to throw a more comprehensible error:
ERROR: cannot drop partitioned index \"%s\" concurrently
Michael Paquier authored the test case for indexes on temporary
partitioned tables.
Backpatch to 11, where indexes on partitioned tables were added.
Reported-by: Jan Mussler <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ref/drop_index.sgml
M src/backend/commands/tablecmds.c
M src/test/regress/expected/indexing.out
M src/test/regress/sql/indexing.sql
Teach libpq to handle arbitrary-length lines in .pgpass files.
commit : 4178b749963cbf28d438b81e38dedcf885ccdda3
author : Tom Lane <[email protected]>
date : Tue, 1 Sep 2020 13:14:44 -0400
committer: Tom Lane <[email protected]>
date : Tue, 1 Sep 2020 13:14:44 -0400
Historically there's been a hard-wired assumption here that no line of
a .pgpass file could be as long as NAMEDATALEN*5 bytes. That's a bit
shaky to start off with, because (a) there's no reason to suppose that
host names fit in NAMEDATALEN, and (b) this figure fails to allow for
backslash escape characters. However, it fails completely if someone
wants to use a very long password, and we're now hearing reports of
people wanting to use "security tokens" that can run up to several
hundred bytes. Another angle is that the file is specified to allow
comment lines, but there's no reason to assume that long comment lines
aren't possible.
Rather than guessing at what might be a more suitable limit, let's
replace the fixed-size buffer with an expansible PQExpBuffer. That
adds one malloc/free cycle to the typical use-case, but that's surely
pretty cheap relative to the I/O this code has to do.
Also, add TAP test cases to exercise this code, because there was no
test coverage before.
This reverts most of commit 2eb3bc588, as there's no longer a need for
a warning message about overlength .pgpass lines. (I kept the explicit
check for comment lines, though.)
In HEAD and v13, this also fixes an oversight in 74a308cf5: there's not
much point in explicit_bzero'ing the line buffer if we only do so in two
of the three exit paths.
Back-patch to all supported branches, except that the test case only
goes back to v10 where src/test/authentication/ was added.
Discussion: https://postgr.es/m/[email protected]
M src/interfaces/libpq/fe-connect.c
M src/test/authentication/t/001_password.pl
doc: document how the backup manifest is transferred
commit : 73018f564af91b135e541b28133369c5e3de975d
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 18:48:38 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 18:48:38 -0400
Reported-by: Bernd Helmle
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M doc/src/sgml/protocol.sgml
doc: add commas after 'i.e.' and 'e.g.'
commit : 1d3ff89ecfbbdd8bf56d4773d8f2749156eeb7c1
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 18:33:37 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 18:33:37 -0400
This follows the American format,
https://jakubmarian.com/comma-after-i-e-and-e-g/. There is no intention
of requiring this format for future text, but making existing text
consistent every few years makes sense.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/bki.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/datatype.sgml
M doc/src/sgml/ddl.sgml
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/glossary.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/install-windows.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/mvcc.sgml
M doc/src/sgml/parallel.sgml
M doc/src/sgml/perform.sgml
M doc/src/sgml/postgres-fdw.sgml
M doc/src/sgml/protocol.sgml
M doc/src/sgml/queries.sgml
M doc/src/sgml/ref/create_database.sgml
M doc/src/sgml/ref/create_event_trigger.sgml
M doc/src/sgml/ref/create_function.sgml
M doc/src/sgml/ref/create_procedure.sgml
M doc/src/sgml/ref/create_statistics.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_restore.sgml
M doc/src/sgml/ref/pg_rewind.sgml
M doc/src/sgml/ref/pgbench.sgml
M doc/src/sgml/ref/pgupgrade.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/ref/prepare.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/release-13.sgml
M doc/src/sgml/replication-origins.sgml
M doc/src/sgml/runtime.sgml
M doc/src/sgml/sepgsql.sgml
M doc/src/sgml/sources.sgml
M doc/src/sgml/sslinfo.sgml
M doc/src/sgml/tableam.sgml
M doc/src/sgml/textsearch.sgml
M doc/src/sgml/wal.sgml
M doc/src/sgml/xfunc.sgml
M doc/src/sgml/xml2.sgml
C comment: remove mention of use of t_hoff WAL structure member
commit : 787ccf5a5fc92698e8cc8ebfb6fe1a0bf28981a4
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:51:31 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:51:31 -0400
Reported-by: Antonin Houska
Discussion: https://postgr.es/m/21643.1595353537@antos
Backpatch-through: 9.5
M src/include/access/heapam_xlog.h
pg_upgrade doc: mention saving postgresql.conf.auto files
commit : cef30b66fdf619a1b7aa0c2605719e64e980c6f2
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:36:23 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:36:23 -0400
Also mention files included by postgresql.conf.
Reported-by: Álvaro Herrera
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ref/pgupgrade.sgml
doc: Update partitioning limitation on BEFORE triggers
commit : 97dc0d1d58916e2f063ce8a7eec6bd4d3bc29197
author : Alvaro Herrera <[email protected]>
date : Mon, 31 Aug 2020 17:04:40 -0400
committer: Alvaro Herrera <[email protected]>
date : Mon, 31 Aug 2020 17:04:40 -0400
Reported-by: Erwin Brandstetter <[email protected]>
Discussion: https://postgr.es/m/CAGHENJ6Le7S3qJJx2TvWvTwRNS3N=BtoNeb7AF2rZvfNBMeQcg@mail.gmail.com
M doc/src/sgml/ddl.sgml
docs: in mapping SQL to C data types, timestamp isn't a pointer
commit : bef7b917a76af659b4d6bce813702764e2c749db
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:05:53 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 17:05:53 -0400
It is an int64.
Reported-by: [email protected]
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/xfunc.sgml
doc: cross-link file-fdw and CSV config log sections
commit : 9bb4f98bb7745b7339fb7d102cdc36d66c002f67
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 16:59:59 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 16:59:59 -0400
There is an file-fdw example that reads the server config file, so cross
link them.
Reported-by: Oleg Samoilov
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/config.sgml
M doc/src/sgml/file-fdw.sgml
docs: clarify intermediate certificate creation instructions
commit : 8924ca865b18cac0b655170989bcd9507991d06f
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 16:21:03 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 16:21:03 -0400
Specifically, explain the v3_ca openssl specification.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/runtime.sgml
docs: replace "stable storage" with "durable" in descriptions
commit : 1bb41c6ad795e018e396eb3e216b2d21fadc865a
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 15:23:19 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 15:23:19 -0400
For PG, "durable storage" has a clear meaning, while "stable storage"
does not, so use the former.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/config.sgml
M doc/src/sgml/monitoring.sgml
doc: improve description of subscripting of arrays
commit : 8006ac1c5117a56fcd138d663a3fe3709c8f9988
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:49:17 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:49:17 -0400
It wasn't clear the non-integers are cast to integers for subscripting,
rather than throwing an error.
Reported-by: [email protected]
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/syntax.sgml
docs: improve 'capitals' inheritance example
commit : 64fd65008c62ec011ba2d0673ca09849ae2b07c8
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:43:04 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:43:04 -0400
Adds constraints and improves wording.
Reported-by: [email protected]
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/advanced.sgml
doc: clarify the useful features of procedures
commit : 785affc1d653bac43b7d4fad93f22e9e51aefcc1
author : Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:20:04 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 31 Aug 2020 13:20:04 -0400
This was not clearly documented when procedures were added in PG 11.
Reported-by: Robin Abbi
Discussion: https://postgr.es/m/CAGmg_NX327KKVuJmbWZD=pGutYFxzZjX1rU+3ji8UuX=8ONn9Q@mail.gmail.com
Backpatch-through: 11
M doc/src/sgml/xfunc.sgml
Fix docs bug stating file_fdw requires absolute paths
commit : 3a1f6a2581e41ee2c724e8422675942d30a52ff7
author : Magnus Hagander <[email protected]>
date : Mon, 31 Aug 2020 13:03:54 +0200
committer: Magnus Hagander <[email protected]>
date : Mon, 31 Aug 2020 13:03:54 +0200
It has always (since the first commit) worked with relative paths, so
use the same wording as other parts of the documentation.
Author: Bruce Momjian
Discussion: https://postgr.es/m/CABUevExx-hm=cit+A9LeKBH39srvk8Y2tEZeEAj5mP8YfzNKUg@mail.gmail.com
M doc/src/sgml/file-fdw.sgml
Mark factorial operator, and postfix operators in general, as deprecated.
commit : 845cfe012fd15300cd090b05fb4029a26b848a67
author : Tom Lane <[email protected]>
date : Sun, 30 Aug 2020 14:37:24 -0400
committer: Tom Lane <[email protected]>
date : Sun, 30 Aug 2020 14:37:24 -0400
Per discussion, we're planning to remove parser support for postfix
operators in order to simplify the grammar. So it behooves us to
put out a deprecation notice at least one release before that.
There is only one built-in postfix operator, ! for factorial.
Label it deprecated in the docs and in pg_description, and adjust
some examples that formerly relied on it. (The sister prefix
operator !! is also deprecated. We don't really have to remove
that one, but since we're suggesting that people use factorial()
instead, it seems better to remove both operators.)
Also state in the CREATE OPERATOR ref page that postfix operators
in general are going away.
Although this changes the initial contents of pg_description,
I did not force a catversion bump; it doesn't seem essential.
In v13, also back-patch 4c5cf5431, so that there's someplace for
the <link>s to point to.
Mark Dilger and John Naylor, with some adjustments by me
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/func.sgml
M doc/src/sgml/ref/create_operator.sgml
M doc/src/sgml/syntax.sgml
M doc/src/sgml/typeconv.sgml
M src/include/catalog/pg_operator.dat
M src/include/catalog/pg_proc.dat
Fix code for re-finding scan position in a multicolumn GIN index.
commit : 1df14a5669428c0060ebdcebed8c1f807b659893
author : Tom Lane <[email protected]>
date : Thu, 27 Aug 2020 17:36:13 -0400
committer: Tom Lane <[email protected]>
date : Thu, 27 Aug 2020 17:36:13 -0400
collectMatchBitmap() needs to re-find the index tuple it was previously
looking at, after transiently dropping lock on the index page it's on.
The tuple should still exist and be at its prior position or somewhere
to the right of that, since ginvacuum never removes tuples but
concurrent insertions could add one. However, there was a thinko in
that logic, to the effect of expecting any inserted tuples to have the
same index "attnum" as what we'd been scanning. Since there's no
physical separation of tuples with different attnums, it's not terribly
hard to devise scenarios where this fails, leading to transient "lost
saved point in index" errors. (While I've duplicated this with manual
testing, it seems impossible to make a reproducible test case with our
available testing technology.)
Fix by just continuing the scan when the attnum doesn't match.
While here, improve the error message used if we do fail, so that it
matches the wording used in btree for a similar case.
collectMatchBitmap()'s posting-tree code path was previously not
exercised at all by our regression tests. While I can't make
a regression test that exhibits the bug, I can at least improve
the code coverage here, so do that. The test case I made for this
is an extension of one added by 4b754d6c1, so it only works in
HEAD and v13; didn't seem worth trying hard to back-patch it.
Per bug #16595 from Jesse Kinkead. This has been broken since
multicolumn capability was added to GIN (commit 27cb66fdf),
so back-patch to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/gin/ginget.c
M src/test/regress/expected/gin.out
M src/test/regress/sql/gin.sql
docs: client certificates are always sent to the server
commit : 32c42b815ad2377c0bddc4f55b7bf32a5204a87d
author : Bruce Momjian <[email protected]>
date : Tue, 25 Aug 2020 09:53:12 -0400
committer: Bruce Momjian <[email protected]>
date : Tue, 25 Aug 2020 09:53:12 -0400
They are not "requested" by the server.
Reported-by: Kyotaro Horiguchi
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/libpq.sgml
doc: Fix up title case
commit : 62340f8eca4c9d4e49097eaf0a341aca8450b56b
author : Peter Eisentraut <[email protected]>
date : Tue, 25 Aug 2020 07:29:05 +0200
committer: Peter Eisentraut <[email protected]>
date : Tue, 25 Aug 2020 07:29:05 +0200
This fixes some instances that were missed in earlier processings and
that now look a bit strange because they are inconsistent with nearby
titles.
M doc/src/sgml/dml.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/plpgsql.sgml
Improve the vacuum error context phase information.
commit : b4ef5ac0b7bfa734ad908bb5577cf4ee65ce2974
author : Amit Kapila <[email protected]>
date : Mon, 24 Aug 2020 08:22:54 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 24 Aug 2020 08:22:54 +0530
We were displaying the wrong phase information for 'info' message in the
index clean up phase because we were switching to the previous phase a bit
early. We were also not displaying context information for heap phase
unless the block number is valid which is fine for error cases but for
messages at 'info' or lower error level it appears to be inconsistent with
index phase information.
Reported-by: Sawada Masahiko
Author: Sawada Masahiko
Reviewed-by: Amit Kapila
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CA+fd4k4HcbhPnCs7paRTw1K-AHin8y4xKomB9Ru0ATw0UeTy2w@mail.gmail.com
M src/backend/access/heap/vacuumlazy.c
Avoid pushing quals down into sub-queries that have grouping sets.
commit : de627adaad3a161b3ae0cafeb76c20519845799b
author : Tom Lane <[email protected]>
date : Sat, 22 Aug 2020 14:46:40 -0400
committer: Tom Lane <[email protected]>
date : Sat, 22 Aug 2020 14:46:40 -0400
The trouble with doing this is that an apparently-constant subquery
output column isn't really constant if it is a grouping column that
appears in only some of the grouping sets. A qual using such a
column would be subject to incorrect const-folding after push-down,
as seen in bug #16585 from Paul Sivash.
To fix, just disable qual pushdown altogether if the sub-query has
nonempty groupingSets. While we could imagine far less restrictive
solutions, there is not much point in working harder right now,
because subquery_planner() won't move HAVING clauses to WHERE within
such a subquery. If the qual stays in HAVING it's not going to be
a lot more useful than if we'd kept it at the outer level.
Having said that, this restriction could be removed if we used a
parsetree representation that distinguished such outputs from actual
constants, which is something I hope to do in future. Hence, make
the patch a minimal addition rather than integrating it more tightly
(e.g. by renumbering the existing items in subquery_is_pushdown_safe's
comment).
Back-patch to 9.5 where grouping sets were introduced.
Discussion: https://postgr.es/m/[email protected]
M src/backend/optimizer/path/allpaths.c
M src/test/regress/expected/groupingsets.out
M src/test/regress/sql/groupingsets.sql
Fix ALTER TABLE's scheduling rules for AT_AddConstraint subcommands.
commit : 47de6ac11b53cf24393a2ef048f9e8921163da0a
author : Tom Lane <[email protected]>
date : Sat, 22 Aug 2020 12:34:17 -0400
committer: Tom Lane <[email protected]>
date : Sat, 22 Aug 2020 12:34:17 -0400
Commit 1281a5c90 rearranged the logic in this area rather drastically,
and it broke the case of adding a foreign key constraint in the same
ALTER that adds the pkey or unique constraint it depends on. While
self-referential fkeys are surely a pretty niche case, this used to
work so we shouldn't break it.
To fix, reorganize the scheduling rules in ATParseTransformCmd so
that a transformed AT_AddConstraint subcommand will be delayed into
a later pass in all cases, not only when it's been spit out as a
side-effect of parsing some other command type.
Also tweak the logic so that we won't run ATParseTransformCmd twice
while doing this. It seems to work even without that, but it's
surely wasting cycles to do so.
Per bug #16589 from Jeremy Evans. Back-patch to v13 where the new
code was introduced.
Discussion: https://postgr.es/m/[email protected]
M src/backend/commands/tablecmds.c
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql
doc: Fix format, incorrect structure names and markup inconsistencies
commit : 610394c7b876bc841464aad38f8abed09d63924e
author : Michael Paquier <[email protected]>
date : Sat, 22 Aug 2020 22:26:18 +0900
committer: Michael Paquier <[email protected]>
date : Sat, 22 Aug 2020 22:26:18 +0900
Author: Alexander Lakhin
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M doc/src/sgml/datetime.sgml
M doc/src/sgml/func.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/protocol.sgml
docs: improve description of how to handle multiple databases
commit : 3669792934593a7b682c5b32dea41c9e3b48e6cc
author : Bruce Momjian <[email protected]>
date : Fri, 21 Aug 2020 20:23:09 -0400
committer: Bruce Momjian <[email protected]>
date : Fri, 21 Aug 2020 20:23:09 -0400
This is a redesign of the intro to the managing databases chapter.
Discussion: https://postgr.es/m/[email protected]
Author: David G. Johnston
Backpatch-through: 9.5
M doc/src/sgml/manage-ag.sgml
docs: add COMMENT examples for new features, rename rtree
commit : 35f2d22ba909735448606fefc126b73e4fb3c627
author : Bruce Momjian <[email protected]>
date : Fri, 21 Aug 2020 18:29:37 -0400
committer: Bruce Momjian <[email protected]>
date : Fri, 21 Aug 2020 18:29:37 -0400
Reported-by: Jürgen Purtz
Discussion: https://postgr.es/m/[email protected]
Author: Jürgen Purtz
Backpatch-through: 11
M doc/src/sgml/ref/comment.sgml
Fix handling of CREATE TABLE LIKE with inheritance.
commit : 894f5dea76e1a59fa2f3e1905c6a44f254d9d08b
author : Tom Lane <[email protected]>
date : Fri, 21 Aug 2020 15:00:42 -0400
committer: Tom Lane <[email protected]>
date : Fri, 21 Aug 2020 15:00:42 -0400
If a CREATE TABLE command uses both LIKE and traditional inheritance,
Vars in CHECK constraints and expression indexes that are absorbed
from a LIKE parent table tended to get mis-numbered, resulting in
wrong answers and/or bizarre error messages (though probably not any
actual crashes, thanks to validation occurring in the executor).
In v12 and up, the same could happen to Vars in GENERATED expressions,
even in cases with no LIKE clause but multiple traditional-inheritance
parents.
The cause of the problem for LIKE is that parse_utilcmd.c supposed
it could renumber such Vars correctly during transformCreateStmt(),
which it cannot since we have not yet accounted for columns added via
inheritance. Fix that by postponing processing of LIKE INCLUDING
CONSTRAINTS, DEFAULTS, GENERATED, INDEXES till after we've performed
DefineRelation().
The error with GENERATED and multiple inheritance is a simple oversight
in MergeAttributes(); it knows it has to renumber Vars in inherited
CHECK constraints, but forgot to apply the same processing to inherited
GENERATED expressions (a/k/a defaults).
Per bug #16272 from Tom Gottfried. The non-GENERATED variants of the
issue are ancient, presumably dating right back to the addition of
CREATE TABLE LIKE; hence back-patch to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/backend/commands/tablecmds.c
M src/backend/parser/parse_utilcmd.c
M src/backend/tcop/utility.c
M src/include/nodes/parsenodes.h
M src/include/parser/parse_utilcmd.h
M src/test/modules/test_ddl_deparse/expected/create_table.out
M src/test/modules/test_ddl_deparse/test_ddl_deparse.c
M src/test/regress/expected/create_table_like.out
M src/test/regress/sql/create_table_like.sql
Fix explain regression test failure.
commit : bc2ebf3acfd287247cd9ee286c44e969af1c81de
author : Fujii Masao <[email protected]>
date : Sat, 22 Aug 2020 01:22:55 +0900
committer: Fujii Masao <[email protected]>
date : Sat, 22 Aug 2020 01:22:55 +0900
Commit 9d701e624f caused the regression test for EXPLAIN to fail on
the buildfarm member prion. This happened because of instability of
test output, i.e., in text format, whether "Planning:" line is output
varies depending on the system state.
This commit updated the regression test so that it ignores that
"Planning:" line to produce more stable test output and get rid of
the test failure.
Back-patch to v13.
Author: Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M src/test/regress/expected/explain.out
M src/test/regress/sql/explain.sql
Rework EXPLAIN for planner's buffer usage.
commit : 674899ae02c375b03411c0676e7cfb4bafeebac9
author : Fujii Masao <[email protected]>
date : Fri, 21 Aug 2020 20:48:59 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 21 Aug 2020 20:48:59 +0900
Commit ce77abe63c allowed EXPLAIN (BUFFERS) to report the information
on buffer usage during planning phase. However three issues were
reported regarding this feature.
(1) Previously, EXPLAIN option BUFFERS required ANALYZE. So the query
had to be actually executed by specifying ANALYZE even when we
want to see only the planner's buffer usage. This was inconvenient
especially when the query was write one like DELETE.
(2) EXPLAIN included the planner's buffer usage in summary
information. So SUMMARY option had to be enabled to report that.
Also this format was confusing.
(3) The output structure for planning information was not consistent
between TEXT format and the others. For example, "Planning" tag
was output in JSON format, but not in TEXT format.
For (1), this commit allows us to perform EXPLAIN (BUFFERS) without
ANALYZE to report the planner's buffer usage.
For (2), this commit changed EXPLAIN output so that the planner's
buffer usage is reported before summary information.
For (3), this commit made the output structure for planning
information more consistent between the formats.
Back-patch to v13 where the planner's buffer usage was allowed to
be reported in EXPLAIN.
Reported-by: Pierre Giraud, David Rowley
Author: Fujii Masao
Reviewed-by: David Rowley, Julien Rouhaud, Pierre Giraud
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ref/explain.sgml
M src/backend/commands/explain.c
M src/test/regress/expected/explain.out
M src/test/regress/sql/explain.sql
Fix a few typos in JIT comments and README
commit : 0d7437de73b68b0105d00ff4fed3e7894b02f6d5
author : David Rowley <[email protected]>
date : Fri, 21 Aug 2020 09:34:47 +1200
committer: David Rowley <[email protected]>
date : Fri, 21 Aug 2020 09:34:47 +1200
Reviewed-by: Abhijit Menon-Sen
Reviewed-by: Andres Freund
Discussion: https://postgr.es/m/CAApHDvobgmCs6CohqhKTUf7D8vffoZXQTCBTERo9gbOeZmvLTw%40mail.gmail.com
Backpatch-through: 11, where JIT was added
M src/backend/jit/README
M src/include/jit/llvmjit_emit.h
Revise REINDEX CONCURRENTLY recovery instructions
commit : 2a9f042c47053e3ce73f634cce9622fa0151f63c
author : Alvaro Herrera <[email protected]>
date : Thu, 20 Aug 2020 13:49:04 -0400
committer: Alvaro Herrera <[email protected]>
date : Thu, 20 Aug 2020 13:49:04 -0400
When the leftover invalid index is "ccold", there's no need to re-run
the command. Reword the instructions to make that explicit.
Backpatch to 12, where REINDEX CONCURRENTLY appeared.
Author: Álvaro Herrera <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Reviewed-by: Julien Rouhaud <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ref/reindex.sgml
Suppress unnecessary RelabelType nodes in yet more cases.
commit : 69ffc2f838990fb2c802087091ce7c2ff1b735eb
author : Tom Lane <[email protected]>
date : Wed, 19 Aug 2020 14:07:49 -0400
committer: Tom Lane <[email protected]>
date : Wed, 19 Aug 2020 14:07:49 -0400
Commit a477bfc1d fixed eval_const_expressions() to ensure that it
didn't generate unnecessary RelabelType nodes, but I failed to notice
that some other places in the planner had the same issue. Really
noplace in the planner should be using plain makeRelabelType(), for
fear of generating expressions that should be equal() to semantically
equivalent trees, but aren't.
An example is that because canonicalize_ec_expression() failed
to be careful about this, we could end up with an equivalence class
containing both a plain Const, and a Const-with-RelabelType
representing exactly the same value. So far as I can tell this led to
no visible misbehavior, but we did waste a bunch of cycles generating
and evaluating "Const = Const-with-RelabelType" to prove such entries
are redundant.
Hence, move the support function added by a477bfc1d to where it can
be more generally useful, and use it in the places where planner code
previously used makeRelabelType.
Back-patch to v12, like the previous patch. While I have no concrete
evidence of any real misbehavior here, it's certainly possible that
I overlooked a case where equivalent expressions that aren't equal()
could cause a user-visible problem. In any case carrying extra
RelabelType nodes through planning to execution isn't very desirable.
Discussion: https://postgr.es/m/[email protected]
M src/backend/nodes/nodeFuncs.c
M src/backend/optimizer/path/equivclass.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/clauses.c
M src/include/nodes/nodeFuncs.h
Avoid non-constant format string argument to fprintf().
commit : bff41b2b8938f5e3e7d536da6d7a14a1648b4dec
author : Heikki Linnakangas <[email protected]>
date : Tue, 18 Aug 2020 13:13:09 +0300
committer: Heikki Linnakangas <[email protected]>
date : Tue, 18 Aug 2020 13:13:09 +0300
As Tom Lane pointed out, it could defeat the compiler's printf() format
string verification.
Backpatch to v12, like that patch that introduced it.
Discussion: https://www.postgresql.org/message-id/1069283.1597672779%40sss.pgh.pa.us
M src/bin/pg_basebackup/pg_basebackup.c
M src/bin/pg_checksums/pg_checksums.c
M src/bin/pg_rewind/pg_rewind.c
Disable autovacuum for BRIN test table
commit : b83f1bcca0bb460413da4ce856b030502b4f71c5
author : Alvaro Herrera <[email protected]>
date : Mon, 17 Aug 2020 16:20:06 -0400
committer: Alvaro Herrera <[email protected]>
date : Mon, 17 Aug 2020 16:20:06 -0400
This should improve stability in the tests.
Per buildfarm member hyrax (CLOBBER_CACHE_ALWAYS) via Tom Lane.
Discussion: https://postgr.es/m/[email protected]
M src/test/regress/expected/brin.out
M src/test/regress/sql/brin.sql
Doc: fix description of UNION/CASE/etc type unification.
commit : 8216a1d3ed27364c7b2a9e6db76f15202a6070c1
author : Tom Lane <[email protected]>
date : Mon, 17 Aug 2020 15:40:07 -0400
committer: Tom Lane <[email protected]>
date : Mon, 17 Aug 2020 15:40:07 -0400
The description of what select_common_type() does was not terribly
accurate. Improve it.
David Johnston and Tom Lane
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/typeconv.sgml
Fix printing last progress report line in client programs.
commit : 5ca1798f32b7fe730fef7ccd8d69e785a50134b8
author : Heikki Linnakangas <[email protected]>
date : Mon, 17 Aug 2020 09:27:29 +0300
committer: Heikki Linnakangas <[email protected]>
date : Mon, 17 Aug 2020 09:27:29 +0300
A number of client programs have a "--progress" option that when printing
to a TTY, updates the current line by printing a '\r' and overwriting it.
After the last line, '\n' needs to be printed to move the cursor to the
next line. pg_basebackup and pgbench got this right, but pg_rewind and
pg_checksums were slightly wrong. pg_rewind printed the newline to stdout
instead of stderr, and pg_checksums printed the newline even when not
printing to a TTY. Fix them, and also add a 'finished' argument to
pg_basebackup's progress_report() function, to keep it consistent with
the other programs.
Backpatch to v12. pg_rewind's newline was broken with the logging changes
in commit cc8d415117 in v12, and pg_checksums was introduced in v12.
Discussion: https://www.postgresql.org/message-id/[email protected]
M src/bin/pg_basebackup/pg_basebackup.c
M src/bin/pg_checksums/pg_checksums.c
M src/bin/pg_rewind/pg_rewind.c
M src/bin/pg_rewind/pg_rewind.h
doc: Fix description about bgwriter and checkpoint in HA section
commit : 3424c6bef0b897f9c6800f55d34a162a07319795
author : Michael Paquier <[email protected]>
date : Mon, 17 Aug 2020 10:24:24 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 17 Aug 2020 10:24:24 +0900
Since 806a2ae, the work of the bgwriter is split the checkpointer, but a
portion of the documentation did not get the message.
Author: Masahiko Sawada
Discussion: https://postgr.es/m/CA+fd4k6jXxjAtjMVC=wG3=QGpauZBtcgN3Jhw+oV7zXGKVLKzQ@mail.gmail.com
Backpatch-through: 9.5
M doc/src/sgml/high-availability.sgml
Doc: various improvements for pg_basebackup reference page.
commit : 277e49eca73a719695d0b74360b54124e76c6833
author : Tom Lane <[email protected]>
date : Sat, 15 Aug 2020 15:43:34 -0400
committer: Tom Lane <[email protected]>
date : Sat, 15 Aug 2020 15:43:34 -0400
Put the -r option in the right section (it certainly isn't an
option controlling "the location and format of the output").
Clarify the behavior of the tablespace and waldir options
(that part per gripe from [email protected]).
Make a large number of small copy-editing fixes in text that
visibly wasn't written by native speakers, and try to avoid
grammatical inconsistencies between the descriptions of
the different options.
Back-patch to v13, since HEAD hasn't meaningfully diverged yet.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ref/pg_basebackup.sgml
Prevent concurrent SimpleLruTruncate() for any given SLRU.
commit : 592a589a04bd456410b853d86bd05faa9432cbbb
author : Noah Misch <[email protected]>
date : Sat, 15 Aug 2020 10:15:53 -0700
committer: Noah Misch <[email protected]>
date : Sat, 15 Aug 2020 10:15:53 -0700
The SimpleLruTruncate() header comment states the new coding rule. To
achieve this, add locktype "frozenid" and two LWLocks. This closes a
rare opportunity for data loss, which manifested as "apparent
wraparound" or "could not access status of transaction" errors. Data
loss is more likely in pg_multixact, due to released branches' thin
margin between multiStopLimit and multiWrapLimit. If a user's physical
replication primary logged ": apparent wraparound" messages, the user
should rebuild standbys of that primary regardless of symptoms. At less
risk is a cluster having emitted "not accepting commands" errors or
"must be vacuumed" warnings at some point. One can test a cluster for
this data loss by running VACUUM FREEZE in every database. Back-patch
to 9.5 (all supported versions).
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/monitoring.sgml
M src/backend/access/transam/slru.c
M src/backend/access/transam/subtrans.c
M src/backend/commands/async.c
M src/backend/commands/vacuum.c
M src/backend/storage/lmgr/lmgr.c
M src/backend/storage/lmgr/lwlocknames.txt
M src/backend/utils/adt/lockfuncs.c
M src/include/storage/lmgr.h
M src/include/storage/lock.h
Be more careful about the shape of hashable subplan clauses.
commit : b538e83f17e36fd0fe0686815da0ff5866ce8a64
author : Tom Lane <[email protected]>
date : Fri, 14 Aug 2020 22:14:03 -0400
committer: Tom Lane <[email protected]>
date : Fri, 14 Aug 2020 22:14:03 -0400
nodeSubplan.c expects that the testexpr for a hashable ANY SubPlan
has the form of one or more OpExprs whose LHS is an expression of the
outer query's, while the RHS is an expression over Params representing
output columns of the subquery. However, the planner only went as far
as verifying that the clauses were all binary OpExprs. This works
99.99% of the time, because the clauses have the right shape when
emitted by the parser --- but it's possible for function inlining to
break that, as reported by PegoraroF10. To fix, teach the planner
to check that the LHS and RHS contain the right things, or more
accurately don't contain the wrong things. Given that this has been
broken for years without anyone noticing, it seems sufficient to just
give up hashing when it happens, rather than go to the trouble of
commuting the clauses back again (which wouldn't necessarily work
anyway).
While poking at that, I also noticed that nodeSubplan.c had a baked-in
assumption that the number of hash clauses is identical to the number
of subquery output columns. Again, that's fine as far as parser output
goes, but it's not hard to break it via function inlining. There seems
little reason for that assumption though --- AFAICS, the only thing
it's buying us is not having to store the number of hash clauses
explicitly. Adding code to the planner to reject such cases would take
more code than getting nodeSubplan.c to cope, so I fixed it that way.
This has been broken for as long as we've had hashable SubPlans,
so back-patch to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/backend/executor/nodeSubplan.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/util/clauses.c
M src/include/nodes/execnodes.h
M src/include/optimizer/clauses.h
M src/test/regress/expected/subselect.out
M src/test/regress/sql/subselect.sql
pg_dump: fix dependencies on FKs to partitioned tables
commit : b7cc21c57d738b41f6116f46d566b9949a433747
author : Alvaro Herrera <[email protected]>
date : Fri, 14 Aug 2020 17:33:31 -0400
committer: Alvaro Herrera <[email protected]>
date : Fri, 14 Aug 2020 17:33:31 -0400
Parallel-restoring a foreign key that references a partitioned table
with several levels of partitions can fail:
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 6684; 2606 29166 FK CONSTRAINT fk fk_a_fkey postgres
pg_restore: error: could not execute query: ERROR: there is no unique constraint matching given keys for referenced table "pk"
Command was: ALTER TABLE fkpart3.fk
ADD CONSTRAINT fk_a_fkey FOREIGN KEY (a) REFERENCES fkpart3.pk(a);
This happens in parallel restore mode because some index partitions
aren't yet attached to the topmost partitioned index that the FK uses,
and so the index is still invalid. The current code marks the FK as
dependent on the first level of index-attach dump objects; the bug is
fixed by recursively marking the FK on their children.
Backpatch to 12, where FKs to partitioned tables were introduced.
Reported-by: Tom Lane <[email protected]>
Author: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Backpatch: 12-master
M src/bin/pg_dump/pg_dump.c
Fix postmaster's behavior during smart shutdown.
commit : 1c6066fbdb70a92b10b8616652d25c4434cd222e
author : Tom Lane <[email protected]>
date : Fri, 14 Aug 2020 13:26:57 -0400
committer: Tom Lane <[email protected]>
date : Fri, 14 Aug 2020 13:26:57 -0400
Up to now, upon receipt of a SIGTERM ("smart shutdown" command), the
postmaster has immediately killed all "optional" background processes,
and subsequently refused to launch new ones while it's waiting for
foreground client processes to exit. No doubt this seemed like an OK
policy at some point; but it's a pretty bad one now, because it makes
for a seriously degraded environment for the remaining clients:
* Parallel queries are killed, and new ones fail to launch. (And our
parallel-query infrastructure utterly fails to deal with the case
in a reasonable way --- it just hangs waiting for workers that are
not going to arrive. There is more work needed in that area IMO.)
* Autovacuum ceases to function. We can tolerate that for awhile,
but if bulk-update queries continue to run in the surviving client
sessions, there's eventually going to be a mess. In the worst case
the system could reach a forced shutdown to prevent XID wraparound.
* The bgwriter and walwriter are also stopped immediately, likely
resulting in performance degradation.
Hence, let's rearrange things so that the only immediate change in
behavior is refusing to let in new normal connections. Once the last
normal connection is gone, shut everything down as though we'd received
a "fast" shutdown. To implement this, remove the PM_WAIT_BACKUP and
PM_WAIT_READONLY states, instead staying in PM_RUN or PM_HOT_STANDBY
while normal connections remain. A subsidiary state variable tracks
whether or not we're letting in new connections in those states.
This also allows having just one copy of the logic for killing child
processes in smart and fast shutdown modes. I moved that logic into
PostmasterStateMachine() by inventing a new state PM_STOP_BACKENDS.
Back-patch to 9.6 where parallel query was added. In principle
this'd be a good idea in 9.5 as well, but the risk/reward ratio
is not as good there, since lack of autovacuum is not a problem
during typical uses of smart shutdown.
Per report from Bharath Rupireddy.
Patch by me, reviewed by Thomas Munro
Discussion: https://postgr.es/m/CALj2ACXAZ5vKxT9P7P89D87i3MDO9bfS+_bjMHgnWJs8uwUOOw@mail.gmail.com
M doc/src/sgml/ref/pg_ctl-ref.sgml
M src/backend/postmaster/postmaster.c
M src/backend/utils/init/postinit.c
M src/include/libpq/libpq-be.h
Fix typo in test comment.
commit : cabec1dbdf405211c1a4d30f52a91e8de2cf7226
author : Heikki Linnakangas <[email protected]>
date : Fri, 14 Aug 2020 10:40:50 +0300
committer: Heikki Linnakangas <[email protected]>
date : Fri, 14 Aug 2020 10:40:50 +0300
M src/test/regress/expected/stats_ext.out
M src/test/regress/sql/stats_ext.sql
Doc: improve examples for json_populate_record() and related functions.
commit : 124772e3cac6d3bf6c1f6d32518209c6a3fdd3eb
author : Tom Lane <[email protected]>
date : Thu, 13 Aug 2020 20:00:39 -0400
committer: Tom Lane <[email protected]>
date : Thu, 13 Aug 2020 20:00:39 -0400
Make these examples self-contained by providing declarations of the
user-defined row types they rely on. There wasn't room to do this
in the old doc format, but now there is, and I think it makes the
examples a good bit less confusing.
M doc/src/sgml/func.sgml
Handle new HOT chains in index-build table scans
commit : 2f29fd4cb2522dfd64888892f0442a0ead8c6dd0
author : Alvaro Herrera <[email protected]>
date : Thu, 13 Aug 2020 17:33:49 -0400
committer: Alvaro Herrera <[email protected]>
date : Thu, 13 Aug 2020 17:33:49 -0400
When a table is scanned by heapam_index_build_range_scan (née
IndexBuildHeapScan) and the table lock being held allows concurrent data
changes, it is possible for new HOT chains to sprout in a page that were
unknown when the scan of a page happened. This leads to an error such
as
ERROR: failed to find parent tuple for heap-only tuple at (X,Y) in table "tbl"
because the root tuple was not present when we first obtained the list
of the page's root tuples. This can be fixed by re-obtaining the list
of root tuples, if we see that a heap-only tuple appears to point to a
non-existing root.
This was reported by Anastasia as occurring for BRIN summarization
(which exists since 9.5), but I think it could theoretically also happen
with CREATE INDEX CONCURRENTLY (much older) or REINDEX CONCURRENTLY
(very recent). It seems a happy coincidence that BRIN forces us to
backpatch this all the way to 9.5.
Reported-by: Anastasia Lubennikova <[email protected]>
Diagnosed-by: Anastasia Lubennikova <[email protected]>
Co-authored-by: Anastasia Lubennikova <[email protected]>
Co-authored-by: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Backpatch: 9.5 - master
M src/backend/access/heap/heapam_handler.c
M src/backend/access/heap/pruneheap.c
BRIN: Handle concurrent desummarization properly
commit : 8782ea2f36a2468e08c227c8d7907a5a1a9f5e32
author : Alvaro Herrera <[email protected]>
date : Wed, 12 Aug 2020 15:33:36 -0400
committer: Alvaro Herrera <[email protected]>
date : Wed, 12 Aug 2020 15:33:36 -0400
If a page range is desummarized at just the right time concurrently with
an index walk, BRIN would raise an error indicating index corruption.
This is scary and unhelpful; silently returning that the page range is
not summarized is sufficient reaction.
This bug was introduced by commit 975ad4e602ff as additional protection
against a bug whose actual fix was elsewhere. Backpatch equally.
Reported-By: Anastasia Lubennikova <[email protected]>
Diagnosed-By: Alexander Lakhin <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Backpatch: 9.5 - master
M src/backend/access/brin/brin_revmap.c
Stamp 13beta3.
commit : 1754a71986e806330ac3ab9e8125c902286b829d
author : Tom Lane <[email protected]>
date : Mon, 10 Aug 2020 17:12:51 -0400
committer: Tom Lane <[email protected]>
date : Mon, 10 Aug 2020 17:12:51 -0400
M configure
M configure.in
Document clashes between logical replication and untrusted users.
commit : b601f24c875d79e747eb8b50a4b1555ac22cf8f9
author : Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
committer: Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
Back-patch to v10, which introduced logical replication.
Security: CVE-2020-14349
M doc/src/sgml/logical-replication.sgml
Empty search_path in logical replication apply worker and walsender.
commit : 412c5c4010c0bec294f60a10cd56929680d3f95b
author : Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
committer: Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
This is like CVE-2018-1058 commit
582edc369cdbd348d68441fc50fa26a84afd0c1a. Today, a malicious user of a
publisher or subscriber database can invoke arbitrary SQL functions
under an identity running replication, often a superuser. This fix may
cause "does not exist" or "no schema has been selected to create in"
errors in a replication process. After upgrading, consider watching
server logs for these errors. Objects accruing schema qualification in
the wake of the earlier commit are unlikely to need further correction.
Back-patch to v10, which introduced logical replication.
Security: CVE-2020-14349
M src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
M src/backend/replication/logical/worker.c
M src/test/subscription/t/001_rep_changes.pl
Move connect.h from fe_utils to src/include/common.
commit : 41dae35532d40041297ee728eac1f4584af05570
author : Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
committer: Noah Misch <[email protected]>
date : Mon, 10 Aug 2020 09:22:54 -0700
Any libpq client can use the header. Clients include backend components
postgres_fdw, dblink, and logical replication apply worker. Back-patch
to v10, because another fix needs this. In released branches, just copy
the header and keep the original.
M contrib/oid2name/oid2name.c
M contrib/vacuumlo/vacuumlo.c
M src/bin/pg_basebackup/streamutil.c
M src/bin/pg_dump/pg_backup_db.c
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dumpall.c
M src/bin/pg_rewind/libpq_fetch.c
M src/bin/pg_upgrade/server.c
M src/bin/scripts/common.c
M src/bin/scripts/reindexdb.c
M src/bin/scripts/vacuumdb.c
M src/fe_utils/cancel.c
R096 src/include/fe_utils/connect.h src/include/common/connect.h
M src/tools/findoidjoins/findoidjoins.c
Make contrib modules' installation scripts more secure.
commit : 98ca64899cec6a4bf3099481aff43b8777319c41
author : Tom Lane <[email protected]>
date : Mon, 10 Aug 2020 10:44:42 -0400
committer: Tom Lane <[email protected]>
date : Mon, 10 Aug 2020 10:44:42 -0400
Hostile objects located within the installation-time search_path could
capture references in an extension's installation or upgrade script.
If the extension is being installed with superuser privileges, this
opens the door to privilege escalation. While such hazards have existed
all along, their urgency increases with the v13 "trusted extensions"
feature, because that lets a non-superuser control the installation path
for a superuser-privileged script. Therefore, make a number of changes
to make such situations more secure:
* Tweak the construction of the installation-time search_path to ensure
that references to objects in pg_catalog can't be subverted; and
explicitly add pg_temp to the end of the path to prevent attacks using
temporary objects.
* Disable check_function_bodies within installation/upgrade scripts,
so that any security gaps in SQL-language or PL-language function bodies
cannot create a risk of unwanted installation-time code execution.
* Adjust lookup of type input/receive functions and join estimator
functions to complain if there are multiple candidate functions. This
prevents capture of references to functions whose signature is not the
first one checked; and it's arguably more user-friendly anyway.
* Modify various contrib upgrade scripts to ensure that catalog
modification queries are executed with secure search paths. (These
are in-place modifications with no extension version changes, since
it is the update process itself that is at issue, not the end result.)
Extensions that depend on other extensions cannot be made fully secure
by these methods alone; therefore, revert the "trusted" marking that
commit eb67623c9 applied to earthdistance and hstore_plperl, pending
some better solution to that set of issues.
Also add documentation around these issues, to help extension authors
write secure installation scripts.
Patch by me, following an observation by Andres Freund; thanks
to Noah Misch for review.
Security: CVE-2020-14350
M contrib/btree_gist/btree_gist–1.1–1.2.sql
M contrib/citext/citext–1.1–1.2.sql
M contrib/citext/citext–1.2–1.3.sql
M contrib/cube/cube–1.1–1.2.sql
M contrib/cube/cube–1.3–1.4.sql
M contrib/earthdistance/earthdistance–1.1.sql
M contrib/earthdistance/earthdistance.control
M contrib/hstore/hstore–1.1–1.2.sql
M contrib/hstore/hstore–1.3–1.4.sql
M contrib/hstore_plperl/hstore_plperl.control
M contrib/intagg/intagg–1.0–1.1.sql
M contrib/intarray/intarray–1.1–1.2.sql
M contrib/ltree/ltree–1.0–1.1.sql
M contrib/pg_trgm/pg_trgm–1.2–1.3.sql
M contrib/seg/seg–1.0–1.1.sql
M contrib/seg/seg–1.2–1.3.sql
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/hstore.sgml
M doc/src/sgml/ltree.sgml
M doc/src/sgml/ref/create_extension.sgml
M src/backend/commands/extension.c
M src/backend/commands/operatorcmds.c
M src/backend/commands/typecmds.c
Translation updates
commit : 378bd1ed6e4314a8b8b32c555f73524c2283b016
author : Peter Eisentraut <[email protected]>
date : Mon, 10 Aug 2020 15:15:50 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 10 Aug 2020 15:15:50 +0200
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 42620448109473e0d2271f0f0015d3647fbbfff6
M src/bin/initdb/po/uk.po
M src/bin/pg_archivecleanup/po/uk.po
M src/bin/pg_basebackup/po/es.po
M src/bin/pg_checksums/nls.mk
A src/bin/pg_checksums/po/uk.po
A src/bin/pg_checksums/po/zh_CN.po
M src/bin/pg_config/po/uk.po
M src/bin/pg_controldata/po/uk.po
M src/bin/pg_ctl/po/uk.po
M src/bin/pg_dump/po/de.po
M src/bin/pg_resetwal/nls.mk
A src/bin/pg_resetwal/po/uk.po
M src/bin/pg_rewind/nls.mk
A src/bin/pg_rewind/po/uk.po
M src/bin/pg_test_fsync/po/uk.po
M src/bin/pg_test_timing/po/uk.po
M src/bin/pg_verifybackup/nls.mk
A src/bin/pg_verifybackup/po/zh_CN.po
M src/bin/pg_waldump/nls.mk
A src/bin/pg_waldump/po/uk.po
M src/bin/pg_waldump/po/zh_CN.po
M src/bin/psql/po/uk.po
M src/interfaces/ecpg/ecpglib/po/uk.po
M src/interfaces/ecpg/preproc/po/uk.po
M src/interfaces/libpq/po/de.po
M src/interfaces/libpq/po/uk.po
M src/interfaces/libpq/po/zh_CN.po
M src/pl/plpgsql/src/po/uk.po
M src/pl/plpython/po/uk.po
M src/pl/tcl/po/uk.po
Doc: update v13 release notes for changes through today.
commit : bc635dd16388015c72e47a4b90c4c3ceecebb0cd
author : Tom Lane <[email protected]>
date : Sun, 9 Aug 2020 16:59:53 -0400
committer: Tom Lane <[email protected]>
date : Sun, 9 Aug 2020 16:59:53 -0400
M doc/src/sgml/release-13.sgml
Check for fseeko() failure in pg_dump's _tarAddFile().
commit : dd63a71ebe3937e0ec965248513fb71e45ee0ec8
author : Tom Lane <[email protected]>
date : Sun, 9 Aug 2020 12:39:08 -0400
committer: Tom Lane <[email protected]>
date : Sun, 9 Aug 2020 12:39:08 -0400
Coverity pointed out, not unreasonably, that we checked fseeko's
result at every other call site but these. Failure to seek in the
temp file (note this is NOT pg_dump's output file) seems quite
unlikely, and even if it did happen the file length cross-check
further down would probably detect the problem. Still, that's a
poor excuse for not checking the result of a system call.
M src/bin/pg_dump/pg_backup_tar.c
walsnd: Don't set waiting_for_ping_response spuriously
commit : 900429d0c03668ac474770c01ba5911b15025dfb
author : Alvaro Herrera <[email protected]>
date : Sat, 8 Aug 2020 12:31:55 -0400
committer: Alvaro Herrera <[email protected]>
date : Sat, 8 Aug 2020 12:31:55 -0400
Ashutosh Bapat noticed that when logical walsender needs to wait for
WAL, and it realizes that it must send a keepalive message to
walreceiver to update the sent-LSN, which *does not* request a reply
from walreceiver, it wrongly sets the flag that it's going to wait for
that reply. That means that any future would-be sender of feedback
messages ends up not sending a feedback message, because they all
believe that a reply is expected.
With built-in logical replication there's not much harm in this, because
WalReceiverMain will send a ping-back every wal_receiver_timeout/2
anyway; but with other logical replication systems (e.g. pglogical) it
can cause significant pain.
This problem was introduced in commit 41d5f8ad734, where the
request-reply flag was changed from true to false to WalSndKeepalive,
without at the same time removing the line that sets
waiting_for_ping_response.
Just removing that line would be a sufficient fix, but it seems better
to shift the responsibility of setting the flag to WalSndKeepalive
itself instead of requiring caller to do it; this is clearly less
error-prone.
Author: Álvaro Herrera <[email protected]>
Reported-by: Ashutosh Bapat <[email protected]>
Backpatch: 9.5 and up
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/walsender.c
Add list of acknowledgments to release notes
commit : f1c3a41bd695c4ba97d50ffa4b2ab2a72068bd3b
author : Peter Eisentraut <[email protected]>
date : Fri, 7 Aug 2020 20:38:55 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 7 Aug 2020 20:38:55 +0200
This contains all individuals mentioned in the commit messages during
PostgreSQL 13 development.
current through 79a3ab1e98d6b5952e29ad91e07c0e9fc777cc0b
M doc/src/sgml/release-13.sgml
Fix yet another issue with step generation in partition pruning.
commit : 79a3ab1e98d6b5952e29ad91e07c0e9fc777cc0b
author : Etsuro Fujita <[email protected]>
date : Fri, 7 Aug 2020 14:45:01 +0900
committer: Etsuro Fujita <[email protected]>
date : Fri, 7 Aug 2020 14:45:01 +0900
Commit 13838740f fixed some issues with step generation in partition
pruning, but there was yet another one: get_steps_using_prefix() assumes
that clauses in the passed-in prefix list are sorted in ascending order
of their partition key numbers, but the caller failed to ensure this for
range partitioning, which led to an assertion failure in debug builds.
Adjust the caller function to arrange the clauses in the prefix list in
the required order for range partitioning.
Back-patch to v11, like the previous commit.
Patch by me, reviewed by Amit Langote.
Discussion: https://postgr.es/m/CAPmGK16jkXiFG0YqMbU66wte-oJTfW6D1HaNvQf%3D%2B5o9%3Dm55wQ%40mail.gmail.com
M src/backend/partitioning/partprune.c
M src/test/regress/expected/partition_prune.out
M src/test/regress/sql/partition_prune.sql
amcheck: Sanitize metapage's allequalimage field.
commit : be9bdab983cfc44db1d7f8c06df7d7a7cbcb8128
author : Peter Geoghegan <[email protected]>
date : Thu, 6 Aug 2020 15:25:47 -0700
committer: Peter Geoghegan <[email protected]>
date : Thu, 6 Aug 2020 15:25:47 -0700
This will be helpful if it ever proves necessary to revoke an opclass's
support for deduplication.
Backpatch: 13-, where nbtree deduplication was introduced.
M contrib/amcheck/verify_nbtree.c
Fix bogus EXPLAIN output for Hash Aggregate
commit : 05dfb813245bf3b896b5317570a24a3d66e97a41
author : David Rowley <[email protected]>
date : Fri, 7 Aug 2020 10:22:08 +1200
committer: David Rowley <[email protected]>
date : Fri, 7 Aug 2020 10:22:08 +1200
9bdb300de modified the EXPLAIN output for Hash Aggregate to show details
from parallel workers. However, it neglected to consider that a given
parallel worker may not have assisted with the given Hash Aggregate. This
can occur when workers fail to start or during Parallel Append with
enable_partitionwise_join enabled when only a single worker is working on
a non-parallel aware sub-plan. It could also happen if a worker simply
wasn't fast enough to get any work done before other processes went and
finished all the work.
The bogus output came from the fact that ExplainOpenWorker() skipped
showing any details for non-initialized workers but show_hashagg_info()
did show details from the worker. This meant that the worker properties
that were shown were not properly attributed to the worker that they
belong to.
In passing, we also now don't show Hash Aggregate properties for the
leader process when it did not contribute any work to the Hash Aggregate.
This can occur either during Parallel Append when only a parallel worker
worked on a given sub plan or with parallel_leader_participation set to
off. This aims to make the behavior of Hash Aggregate's EXPLAIN output
more similar to Sort's.
Reported-by: Justin Pryzby
Discussion: https://postgr.es/m/20200805012105.GZ28072%40telsasoft.com
Backpatch-through: 13, where the original breakage was introduced
M src/backend/commands/explain.c
doc: clarify "state" table reference in tutorial
commit : d0aa57d0e9441b9fab5de5dbed0cb0afd4fa756d
author : Bruce Momjian <[email protected]>
date : Wed, 5 Aug 2020 17:12:10 -0400
committer: Bruce Momjian <[email protected]>
date : Wed, 5 Aug 2020 17:12:10 -0400
Reported-by: Vyacheslav Shablistyy
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/advanced.sgml
Fix matching of sub-partitions when a partitioned plan is stale.
commit : c43a36fa8fff380072d9fc745b1e27baf1a4d3f8
author : Tom Lane <[email protected]>
date : Wed, 5 Aug 2020 15:38:55 -0400
committer: Tom Lane <[email protected]>
date : Wed, 5 Aug 2020 15:38:55 -0400
Since we no longer require AccessExclusiveLock to add a partition,
the executor may see that a partitioned table has more partitions
than the planner saw. ExecCreatePartitionPruneState's code for
matching up the partition lists in such cases was faulty, and would
misbehave if the planner had successfully pruned any partitions from
the query. (Thus, trouble would occur only if a partition addition
happens concurrently with a query that uses both static and dynamic
partition pruning.) This led to an Assert failure in debug builds,
and probably to crashes or query misbehavior in production builds.
To repair the bug, just explicitly skip zeroes in the plan's
relid_map[] list. I also made some cosmetic changes to make the code
more readable (IMO anyway). Also, convert the cross-checking Assert
to a regular test-and-elog, since it's now apparent that this logic
is more fragile than one would like.
Currently, there's no way to repeatably exercise this code, except
with manual use of a debugger to stop the backend between planning
and execution. Hence, no test case in this patch. We oughta do
something about that testability gap, but that's for another day.
Amit Langote and Tom Lane, per report from Justin Pryzby. Oversight
in commit 898e5e329; backpatch to v12 where that appeared.
Discussion: https://postgr.es/m/[email protected]
M src/backend/executor/execPartition.c
Increase hard-wired timeout values in ecpg regression tests.
commit : 565f1690264b5773c23b86303645cf11a0893cff
author : Tom Lane <[email protected]>
date : Tue, 4 Aug 2020 15:20:31 -0400
committer: Tom Lane <[email protected]>
date : Tue, 4 Aug 2020 15:20:31 -0400
A couple of test cases had connect_timeout=14, a value that seems
to have been plucked from a hat. While it's more than sufficient
for normal cases, slow/overloaded buildfarm machines can get a timeout
failure here, as per recent report from "sungazer". Increase to 180
seconds, which is in line with our typical timeouts elsewhere in
the regression tests.
Back-patch to 9.6; the code looks different in 9.5, and this doesn't
seem to be quite worth the effort to adapt to that.
Report: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=sungazer&dt=2020-08-04%2007%3A12%3A22
M src/interfaces/ecpg/test/connect/test1.pgc
M src/interfaces/ecpg/test/connect/test5.pgc
M src/interfaces/ecpg/test/expected/connect-test1-minGW32.stderr
M src/interfaces/ecpg/test/expected/connect-test1.c
M src/interfaces/ecpg/test/expected/connect-test1.stderr
M src/interfaces/ecpg/test/expected/connect-test5.c
M src/interfaces/ecpg/test/expected/connect-test5.stderr
Make new SSL TAP test for channel_binding more robust
commit : 1a01595cc2ffb20ef9f2bc1a92d39728b65e3797
author : Michael Paquier <[email protected]>
date : Tue, 4 Aug 2020 14:36:09 +0900
committer: Michael Paquier <[email protected]>
date : Tue, 4 Aug 2020 14:36:09 +0900
The test would fail in an environment including a certificate file in
~/.postgresql/. bdd6e9b fixed a similar failure, and d6e612f introduced
the same problem again with a new test.
Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M src/test/ssl/t/002_scram.pl
doc: PG 13 relnotes: hash_mem_multiplier can restore old behav.
commit : e7a6cd5dcf24c6d4b04d036a4837c7af154c4b49
author : Bruce Momjian <[email protected]>
date : Mon, 3 Aug 2020 17:01:42 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 3 Aug 2020 17:01:42 -0400
Document that hash_mem_multiplier can get query behavior closer to the
pre-PG 13 behavior of allowing hashing to use more memory.
Reported-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-Wzn3kwQm_pe6g2=ki+P7+ZRqH5GvFGn6SWfv_j7UUgcLdQ@mail.gmail.com
Backpatch-through: 13 only
M doc/src/sgml/release-13.sgml
Remove unnecessary "DISTINCT" in psql's queries for \dAc and \dAf.
commit : 72ca61101ad4076941f175b50cc86e6372023034
author : Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 14:02:35 -0400
committer: Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 14:02:35 -0400
A moment's examination of these queries is sufficient to see that
they do not produce duplicate rows, unless perhaps there's
catalog corruption. Using DISTINCT anyway is inefficient and
confusing; moreover it sets a poor example for anyone who
refers to psql -E output to see how to query the catalogs.
M src/bin/psql/describe.c
Doc: fix obsolete info about allowed range of TZ offsets in timetz.
commit : 6d78f219e8afc57b6ca3765eb2dfa1b8fe095ddc
author : Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 13:11:16 -0400
committer: Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 13:11:16 -0400
We've allowed UTC offsets up to +/- 15:59 since commit cd0ff9c0f, but
that commit forgot to fix the documentation about timetz.
Per bug #16571 from osdba.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/datatype.sgml
Fix behavior of ecpg's "EXEC SQL elif name".
commit : 44cd434ec4a70d2dfbc460492fc0574d08440250
author : Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 09:46:12 -0400
committer: Tom Lane <[email protected]>
date : Mon, 3 Aug 2020 09:46:12 -0400
This ought to work much like C's "#elif defined(name)"; but the code
implemented it in a way equivalent to endif followed by ifdef, so that
it didn't matter whether any previous branch of the IF construct had
succeeded. Fix that; add some test cases covering elif and nested IFs;
and improve the documentation, which also seemed a bit confused.
AFAICS the code has been like this since the feature was added in 1999
(commit b57b0e044). So while it's surely wrong, there might be code
out there relying on the current behavior. Hence, don't back-patch
into stable branches. It seems all right to fix it in v13 though.
Per report from Ashutosh Sharma. Reviewed by Ashutosh Sharma and
Michael Meskes.
Discussion: https://postgr.es/m/CAE9k0P=dQk9X0cU2tN49S7a9tv733-e1pVdpB1P-pWJ5PdTktg@mail.gmail.com
M doc/src/sgml/ecpg.sgml
M src/interfaces/ecpg/preproc/pgc.l
M src/interfaces/ecpg/test/expected/preproc-define.c
M src/interfaces/ecpg/test/expected/preproc-define.stderr
M src/interfaces/ecpg/test/preproc/define.pgc
Fix rare failure in LDAP tests.
commit : f5293fb09e7346bb663f2f5c63081e8aabe61a8e
author : Thomas Munro <[email protected]>
date : Mon, 3 Aug 2020 12:39:15 +1200
committer: Thomas Munro <[email protected]>
date : Mon, 3 Aug 2020 12:39:15 +1200
Instead of writing a query to psql's stdin, use -c. This avoids a
failure where psql exits before we write, seen a few times on the build
farm. Thanks to Tom Lane for the suggestion.
Back-patch to 11, where the LDAP tests arrived.
Reviewed-by: Noah Misch <[email protected]>
Discussion: https://postgr.es/m/CA%2BhUKGLFmW%2BHQYPeKiwSp5sdFFHtFViCpw4Mh6yAgEx74r5-Cw%40mail.gmail.com
M src/test/ldap/t/001_auth.pl
Fix minor issues in psql's new \dAc and related commands.
commit : 719304a3043d9f60247df371f55236058a7f3caa
author : Tom Lane <[email protected]>
date : Sun, 2 Aug 2020 17:00:26 -0400
committer: Tom Lane <[email protected]>
date : Sun, 2 Aug 2020 17:00:26 -0400
The type-name pattern in \dAc and \dAf was matched only to the actual
pg_type.typname string, which is fairly user-unfriendly in cases where
that is not what's shown to the user by format_type (compare "_int4"
and "integer[]"). Make this code match what \dT does, i.e. match the
pattern against either typname or format_type() output. Also fix its
broken handling of schema-name restrictions. (IOW, make these
processSQLNamePattern calls match \dT's.) While here, adjust
whitespace to make the query a little prettier in -E output, too.
Also improve some inaccuracies and shaky grammar in the related
documentation.
Noted while working on a patch for intarray's opclasses; I wondered
why I couldn't get a match to "integer*" for the input type name.
M doc/src/sgml/indices.sgml
M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/describe.c
Use int64 instead of long in incremental sort code
commit : 22c105595fc736ae94ce3b806da16b0bd8e94fb8
author : David Rowley <[email protected]>
date : Sun, 2 Aug 2020 14:23:57 +1200
committer: David Rowley <[email protected]>
date : Sun, 2 Aug 2020 14:23:57 +1200
Windows 64bit has 4-byte long values which is not suitable for tracking
disk space usage in the incremental sort code. Let's just make all these
fields int64s.
Author: James Coleman
Discussion: https://postgr.es/m/CAApHDvpky%2BUhof8mryPf5i%3D6e6fib2dxHqBrhp0Qhu0NeBhLJw%40mail.gmail.com
Backpatch-through: 13, where the incremental sort code was added
M src/backend/commands/explain.c
M src/include/nodes/execnodes.h
M src/include/utils/tuplesort.h
Restore lost amcheck TOAST test coverage.
commit : 725b43b9c3b3c25c60ac717c41047ad0dffb1312
author : Peter Geoghegan <[email protected]>
date : Fri, 31 Jul 2020 15:34:26 -0700
committer: Peter Geoghegan <[email protected]>
date : Fri, 31 Jul 2020 15:34:26 -0700
Commit eba77534 fixed an amcheck false positive bug involving
inconsistencies in TOAST input state between table and index. A test
case was added that verified that such an inconsistency didn't result in
a spurious corruption related error.
Test coverage from the test was accidentally lost by commit 501e41dd,
which propagated ALTER TABLE ... SET STORAGE attstorage state to
indexes. This broke the test because the test specifically relied on
attstorage not being propagated. This artificially forced there to be
index tuples whose datums were equivalent to the datums in the heap
without the datums actually being bitwise equal.
Fix this by updating pg_attribute directly instead. Commit 501e41dd
made similar changes to a test_decoding TOAST-related test case which
made the same assumption, but overlooked the amcheck test case.
Backpatch: 11-, just like commit eba77534 (and commit 501e41dd).
M contrib/amcheck/expected/check_btree.out
M contrib/amcheck/sql/check_btree.sql
Fix oversight in ALTER TYPE: typmodin/typmodout must propagate to arrays.
commit : 5c439f189bf4bdbb0ff75b2043ca713d76019528
author : Tom Lane <[email protected]>
date : Fri, 31 Jul 2020 17:11:28 -0400
committer: Tom Lane <[email protected]>
date : Fri, 31 Jul 2020 17:11:28 -0400
If a base type supports typmods, its array type does too, with the
same interpretation. Hence changes in pg_type.typmodin/typmodout
must be propagated to the array type.
While here, improve AlterTypeRecurse to not recurse to domains if
there is nothing we'd need to change.
Oversight in fe30e7ebf. Back-patch to v13 where that came in.
M src/backend/commands/typecmds.c
M src/test/regress/expected/create_type.out
M src/test/regress/sql/create_type.sql
Fix recently-introduced performance problem in ts_headline().
commit : 11dce63d6c3f676a9f1829eca96f085b6d935af0
author : Tom Lane <[email protected]>
date : Fri, 31 Jul 2020 11:43:12 -0400
committer: Tom Lane <[email protected]>
date : Fri, 31 Jul 2020 11:43:12 -0400
The new hlCover() algorithm that I introduced in commit c9b0c678d
turns out to potentially take O(N^2) or worse time on long documents,
if there are many occurrences of individual query words but few or no
substrings that actually satisfy the query. (One way to hit this
behavior is with a "common_word & rare_word" type of query.) This
seems unavoidable given the original goal of checking every substring
of the document, so we have to back off that idea. Fortunately, it
seems unlikely that anyone would really want headlines spanning all of
a long document, so we can avoid the worse-than-linear behavior by
imposing a maximum length of substring that we'll consider.
For now, just hard-wire that maximum length as a multiple of max_words
times max_fragments. Perhaps at some point somebody will argue for
exposing it as a ts_headline parameter, but I'm hesitant to make such
a feature addition in a back-patched bug fix.
I also noted that the hlFirstIndex() function I'd added in that
commit was unnecessarily stupid: it really only needs to check whether
a HeadlineWordEntry's item pointer is null or not. This wouldn't make
all that much difference in typical cases with queries having just
a few terms, but a cycle shaved is a cycle earned.
In addition, add a CHECK_FOR_INTERRUPTS call in TS_execute_recurse.
This ensures that hlCover's loop is cancellable if it manages to take
a long time, and it may protect some other TS_execute callers as well.
Back-patch to 9.6 as the previous commit was. I also chose to add the
CHECK_FOR_INTERRUPTS call to 9.5. The old hlCover() algorithm seems
to avoid the O(N^2) behavior, at least on the test case I tried, but
nonetheless it's not very quick on a long document.
Per report from Stephen Frost.
Discussion: https://postgr.es/m/[email protected]
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/tsvector_op.c
Doc: fix high availability solutions comparison.
commit : 0d9b64fe8d2d98f8f074334f86aaaedfb2b5a1e1
author : Tatsuo Ishii <[email protected]>
date : Fri, 31 Jul 2020 07:46:25 +0900
committer: Tatsuo Ishii <[email protected]>
date : Fri, 31 Jul 2020 07:46:25 +0900
In "High Availability, Load Balancing, and Replication" chapter,
certain descriptions of Pgpool-II were not correct at this point. It
does not need conflict resolution. Also "Multiple-Server Parallel
Query Execution" is not supported anymore.
Discussion: https://postgr.es/m/20200726.230128.53842489850344110.t-ishii%40sraoss.co.jp
Author: Tatsuo Ishii
Reviewed-by: Bruce Momjian
Backpatch-through: 9.5
M doc/src/sgml/high-availability.sgml
Use pg_bitutils for HyperLogLog.
commit : 07cbcdd00c2465a844513f14b7a96232013d3129
author : Jeff Davis <[email protected]>
date : Thu, 30 Jul 2020 08:44:58 -0700
committer: Jeff Davis <[email protected]>
date : Thu, 30 Jul 2020 08:44:58 -0700
Using pg_leftmost_one_post32() yields substantial performance benefits.
Backpatching to version 13 because HLL is used for HashAgg
improvements in 9878b643, which was also backpatched to 13.
Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-WzkGvDKVDo+0YvfvZ+1CE=iCi88DCOGFF3i1hTGGaxcKPw@mail.gmail.com
Backpatch-through: 13
M src/backend/lib/hyperloglog.c
doc: Mention index references in pg_inherits
commit : e710f3b8e7da43de2ad8113ce7c7933928092656
author : Michael Paquier <[email protected]>
date : Thu, 30 Jul 2020 15:48:52 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 30 Jul 2020 15:48:52 +0900
Partitioned indexes are also registered in pg_inherits, but the
description of this catalog did not reflect that.
Author: Dagfinn Ilmari Mannsåker
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 11
M doc/src/sgml/catalogs.sgml
Add hash_mem_multiplier GUC.
commit : 78530c8e7a5abe0b646b0b46527f8799f831e1e1
author : Peter Geoghegan <[email protected]>
date : Wed, 29 Jul 2020 14:14:57 -0700
committer: Peter Geoghegan <[email protected]>
date : Wed, 29 Jul 2020 14:14:57 -0700
Add a GUC that acts as a multiplier on work_mem. It gets applied when
sizing executor node hash tables that were previously size constrained
using work_mem alone.
The new GUC can be used to preferentially give hash-based nodes more
memory than the generic work_mem limit. It is intended to enable admin
tuning of the executor's memory usage. Overall system throughput and
system responsiveness can be improved by giving hash-based executor
nodes more memory (especially over sort-based alternatives, which are
often much less sensitive to being memory constrained).
The default value for hash_mem_multiplier is 1.0, which is also the
minimum valid value. This means that hash-based nodes continue to apply
work_mem in the traditional way by default.
hash_mem_multiplier is generally useful. However, it is being added now
due to concerns about hash aggregate performance stability for users
that upgrade to Postgres 13 (which added disk-based hash aggregation in
commit 1f39bce0). While the old hash aggregate behavior risked
out-of-memory errors, it is nevertheless likely that many users actually
benefited. Hash agg's previous indifference to work_mem during query
execution was not just faster; it also accidentally made aggregation
resilient to grouping estimate problems (at least in cases where this
didn't create destabilizing memory pressure).
hash_mem_multiplier can provide a certain kind of continuity with the
behavior of Postgres 12 hash aggregates in cases where the planner
incorrectly estimates that all groups (plus related allocations) will
fit in work_mem/hash_mem. This seems necessary because hash-based
aggregation is usually much slower when only a small fraction of all
groups can fit. Even when it isn't possible to totally avoid hash
aggregates that spill, giving hash aggregation more memory will reliably
improve performance (the same cannot be said for external sort
operations, which appear to be almost unaffected by memory availability
provided it's at least possible to get a single merge pass).
The PostgreSQL 13 release notes should advise users that increasing
hash_mem_multiplier can help with performance regressions associated
with hash aggregation. That can be taken care of by a later commit.
Author: Peter Geoghegan
Reviewed-By: Álvaro Herrera, Jeff Davis
Discussion: https://postgr.es/m/[email protected]
Discussion: https://postgr.es/m/CAH2-WzmD%2Bi1pG6rc1%2BCjc4V6EaFJ_qSuKCCHVnH%3DoruqD-zqow%40mail.gmail.com
Backpatch: 13-, where disk-based hash aggregation was introduced.
M doc/src/sgml/config.sgml
M doc/src/sgml/ref/postgres-ref.sgml
M doc/src/sgml/runtime.sgml
M src/backend/executor/execGrouping.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/planner.c
M src/backend/optimizer/plan/subselect.c
M src/backend/optimizer/prep/prepunion.c
M src/backend/optimizer/util/pathnode.c
M src/backend/utils/adt/ri_triggers.c
M src/backend/utils/init/globals.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/executor/hashjoin.h
M src/include/executor/nodeHash.h
M src/include/miscadmin.h
HashAgg: use better cardinality estimate for recursive spilling.
commit : 3a232a3183d517743acf232794fadc07f0944220
author : Jeff Davis <[email protected]>
date : Tue, 28 Jul 2020 23:15:47 -0700
committer: Jeff Davis <[email protected]>
date : Tue, 28 Jul 2020 23:15:47 -0700
Use HyperLogLog to estimate the group cardinality in a spilled
partition. This estimate is used to choose the number of partitions if
we recurse.
The previous behavior was to use the number of tuples in a spilled
partition as the estimate for the number of groups, which lead to
overpartitioning. That could cause the number of batches to be much
higher than expected (with each batch being very small), which made it
harder to interpret EXPLAIN ANALYZE results.
Reviewed-by: Peter Geoghegan
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
M src/include/executor/nodeAgg.h
Rename another "hash_mem" local variable.
commit : cdd7bd695bed552936e86b70ff1d234360bc5bea
author : Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 17:59:14 -0700
committer: Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 17:59:14 -0700
Missed by my commit 564ce621.
Backpatch: 13-, where disk-based hash aggregation was introduced.
M src/backend/executor/nodeAgg.c
Correct obsolete UNION hash aggs comment.
commit : b6c15e71f33fe9aa7f38cc7bde26d420fbaaef5b
author : Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 17:14:06 -0700
committer: Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 17:14:06 -0700
Oversight in commit 1f39bce0, which added disk-based hash aggregation.
Backpatch: 13-, where disk-based hash aggregation was introduced.
M src/backend/optimizer/prep/prepunion.c
Doc: Remove obsolete CREATE AGGREGATE note.
commit : e362f469c50f6e671285640cc2087345ab55a9b2
author : Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 16:58:59 -0700
committer: Peter Geoghegan <[email protected]>
date : Tue, 28 Jul 2020 16:58:59 -0700
The planner is in fact willing to use hash aggregation when work_mem is
not set high enough for everything to fit in memory. This has been the
case since commit 1f39bce0, which added disk-based hash aggregation.
There are a few remaining cases in which hash aggregation is avoided as
a matter of policy when the planner surmises that spilling will be
necessary. For example, callers of choose_hashed_setop() still
conservatively avoid hash aggregation when spilling is anticipated.
That doesn't seem like a good enough reason to mention hash aggregation
in this context.
Backpatch: 13-, where disk-based hash aggregation was introduced.
M doc/src/sgml/ref/create_aggregate.sgml
Make EXPLAIN ANALYZE of HashAgg more similar to Hash Join
commit : a57c837e5cdf601d6ec05e5e10a40d01f1d2b84e
author : David Rowley <[email protected]>
date : Wed, 29 Jul 2020 11:43:11 +1200
committer: David Rowley <[email protected]>
date : Wed, 29 Jul 2020 11:43:11 +1200
There were various unnecessary differences between Hash Agg's EXPLAIN
ANALYZE output and Hash Join's. Here we modify the Hash Agg output so
that it's better aligned to Hash Join's.
The following changes have been made:
1. Start batches counter at 1 instead of 0.
2. Always display the "Batches" property, even when we didn't spill to
disk.
3. Use the text "Batches" instead of "HashAgg Batches" for text format.
4. Use the text "Memory Usage" instead of "Peak Memory Usage" for text
format.
5. Include "Batches" before "Memory Usage" in both text and non-text
formats.
In passing also modify the "Planned Partitions" property so that we show
it regardless of if the value is 0 or not for non-text EXPLAIN formats.
This was pointed out by Justin Pryzby and probably should have been part
of 40efbf870.
Reviewed-by: Justin Pryzby, Jeff Davis
Discussion: https://postgr.es/m/CAApHDvrshRnA6C0VFnu7Fb9TVvgGo80PUMm5+2DiaS1gEkPvtw@mail.gmail.com
Backpatch-through: 13, where HashAgg batching was introduced
M src/backend/commands/explain.c
M src/backend/executor/nodeAgg.c
Doc: Improve documentation for pg_jit_available()
commit : dc6f2fb4353508af27dde44bdf5cb14749ae73a1
author : David Rowley <[email protected]>
date : Tue, 28 Jul 2020 22:52:43 +1200
committer: David Rowley <[email protected]>
date : Tue, 28 Jul 2020 22:52:43 +1200
Per complaint from Scott Ribe. Based on wording suggestion from Tom Lane.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 11, where pg_jit_available() was added
M doc/src/sgml/func.sgml
doc: Mention the rename of wal_keep_segments GUC in release note.
commit : 128fd0a65ae54d97896cb6409fbc56d5da6319f1
author : Fujii Masao <[email protected]>
date : Tue, 28 Jul 2020 11:23:02 +0900
committer: Fujii Masao <[email protected]>
date : Tue, 28 Jul 2020 11:23:02 +0900
Commit f5dff45962 renamed wal_keep_segments to wal_keep_size.
This commit adds the mention to this change in the release note.
Author: Fujii Masao
Reviewed-by: David Steele
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Fix some issues with step generation in partition pruning.
commit : cebe10a5f307635e187f424d0dce700666ae58fd
author : Etsuro Fujita <[email protected]>
date : Tue, 28 Jul 2020 11:00:00 +0900
committer: Etsuro Fujita <[email protected]>
date : Tue, 28 Jul 2020 11:00:00 +0900
In the case of range partitioning, get_steps_using_prefix() assumes that
the passed-in prefix list contains at least one clause for each of the
partition keys earlier than one specified in the passed-in
step_lastkeyno, but the caller (ie, gen_prune_steps_from_opexps())
didn't take it into account, which led to a server crash or incorrect
results when the list contained no clauses for such partition keys, as
reported in bug #16500 and #16501 from Kobayashi Hisanori. Update the
caller to call that function only when the list created there contains
at least one clause for each of the earlier partition keys in the case
of range partitioning.
While at it, fix some other issues:
* The list to pass to get_steps_using_prefix() is allowed to contain
multiple clauses for the same partition key, as described in the
comment for that function, but that function actually assumed that the
list contained just a single clause for each of middle partition keys,
which led to an assertion failure when the list contained multiple
clauses for such partition keys. Update that function to match the
comment.
* In the case of hash partitioning, partition keys are allowed to be
NULL, in which case the list to pass to get_steps_using_prefix()
contains no clauses for NULL partition keys, but that function treats
that case as like the case of range partitioning, which led to the
assertion failure. Update the assertion test to take into account
NULL partition keys in the case of hash partitioning.
* Fix a typo in a comment in get_steps_using_prefix_recurse().
* gen_partprune_steps() failed to detect self-contradiction from
strict-qual clauses and an IS NULL clause for the same partition key
in some cases, producing incorrect partition-pruning steps, which led
to incorrect results of partition pruning, but didn't cause any
user-visible problems fortunately, as the self-contradiction is
detected later in the query planning. Update that function to detect
the self-contradiction.
Per bug #16500 and #16501 from Kobayashi Hisanori. Patch by me, initial
diagnosis for the reported issue and review by Dmitry Dolgov.
Back-patch to v11, where partition pruning was introduced.
Discussion: https://postgr.es/m/16500-d1613f2a78e1e090%40postgresql.org
Discussion: https://postgr.es/m/16501-5234a9a0394f6754%40postgresql.org
M src/backend/partitioning/partprune.c
M src/test/regress/expected/partition_prune.out
M src/test/regress/sql/partition_prune.sql
Remove hashagg_avoid_disk_plan GUC.
commit : 5a6cc6ffa914775e0184207686c2216998126549
author : Peter Geoghegan <[email protected]>
date : Mon, 27 Jul 2020 17:53:17 -0700
committer: Peter Geoghegan <[email protected]>
date : Mon, 27 Jul 2020 17:53:17 -0700
Note: This GUC was originally named enable_hashagg_disk when it appeared
in commit 1f39bce0, which added disk-based hash aggregation. It was
subsequently renamed in commit 92c58fd9.
Author: Peter Geoghegan
Reviewed-By: Jeff Davis, Álvaro Herrera
Discussion: https://postgr.es/m/9d9d1e1252a52ea1bad84ea40dbebfd54e672a0f.camel%40j-davis.com
Backpatch: 13-, where disk-based hash aggregation was introduced.
M doc/src/sgml/config.sgml
M doc/src/sgml/release-13.sgml
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/planner.c
M src/backend/utils/misc/guc.c
M src/include/optimizer/cost.h
Fix corner case with 16kB-long decompression in pgcrypto, take 2
commit : 0caf1fc6e86a8985ef8b881a4dbb3488381ff976
author : Michael Paquier <[email protected]>
date : Mon, 27 Jul 2020 15:58:54 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 27 Jul 2020 15:58:54 +0900
A compressed stream may end with an empty packet. In this case
decompression finishes before reading the empty packet and the
remaining stream packet causes a failure in reading the following
data. This commit makes sure to consume such extra data, avoiding a
failure when decompression the data. This corner case was reproducible
easily with a data length of 16kB, and existed since e94dd6a. A cheap
regression test is added to cover this case based on a random,
incompressible string.
The first attempt of this patch has allowed to find an older failure
within the compression logic of pgcrypto, fixed by b9b6105. This
involved SLES 15 with z390 where a custom flavor of libz gets used.
Bonus thanks to Mark Wong for providing access to the specific
environment.
Reported-by: Frank Gagnepain
Author: Kyotaro Horiguchi, Michael Paquier
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M contrib/pgcrypto/expected/pgp-compression.out
M contrib/pgcrypto/pgp-compress.c
M contrib/pgcrypto/sql/pgp-compression.sql
Fix handling of structure for bytea data type in ECPG
commit : ed4a9dc9cf69eee06f4e655ef5d175c5efa87dd7
author : Michael Paquier <[email protected]>
date : Mon, 27 Jul 2020 10:29:08 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 27 Jul 2020 10:29:08 +0900
Some code paths dedicated to bytea used the structure for varchar. This
did not lead to any actual bugs, as bytea and varchar have the same
definition, but it could become a trap if one of these definitions
changes for a new feature or a bug fix.
Issue introduced by 050710b.
Author: Shenhao Wang
Reviewed-by: Vignesh C, Michael Paquier
Discussion: https://postgr.es/m/07ac7dee1efc44f99d7f53a074420177@G08CNEXMBPEKD06.g08.fujitsu.local
Backpatch-through: 12
M src/interfaces/ecpg/ecpglib/data.c
M src/interfaces/ecpg/ecpglib/descriptor.c
M src/interfaces/ecpg/ecpglib/execute.c
Fix LookupTupleHashEntryHash() pipeline-stall issue.
commit : 7f5f2249b27a46a4d91d6be5aff188ca67719fa7
author : Jeff Davis <[email protected]>
date : Sun, 26 Jul 2020 14:55:52 -0700
committer: Jeff Davis <[email protected]>
date : Sun, 26 Jul 2020 14:55:52 -0700
Refactor hash lookups in nodeAgg.c to improve performance.
Author: Andres Freund and Jeff Davis
Discussion: https://postgr.es/m/20200612213715.op4ye4q7gktqvpuo%40alap3.anarazel.de
Backpatch-through: 13
M src/backend/executor/execGrouping.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeRecursiveunion.c
M src/backend/executor/nodeSetOp.c
M src/backend/executor/nodeSubplan.c
M src/include/executor/executor.h
Tweak behavior of pg_stat_activity.leader_pid
commit : 21b0055359f036e3ba22402d14536431dd39242e
author : Michael Paquier <[email protected]>
date : Sun, 26 Jul 2020 16:32:20 +0900
committer: Michael Paquier <[email protected]>
date : Sun, 26 Jul 2020 16:32:20 +0900
The initial implementation of leader_pid in pg_stat_activity added by
b025f32 took the approach to strictly print what a PGPROC entry
includes. In short, if a backend has been involved in parallel query at
least once, leader_pid would remain set as long as the backend is alive.
For a parallel group leader, this means that the field would always be
set after it participated at least once in parallel query, and after
more discussions this could be confusing if using for example a
connection pooler.
This commit changes the data printed so as leader_pid becomes always
NULL for a parallel group leader, showing up a non-NULL value only for
the parallel workers, and actually as long as a parallel query is
running as workers are shut down once the query has completed.
This does not change the definition of any catalog, so no catalog bump
is needed. Per discussion with Justin Pryzby, Álvaro Herrera, Julien
Rouhaud and me.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M doc/src/sgml/monitoring.sgml
M src/backend/utils/adt/pgstatfuncs.c
Fix buffer usage stats for nodes above Gather Merge.
commit : b15367ae39402eb4eb8736f9c38c607995c82bb2
author : Amit Kapila <[email protected]>
date : Sat, 25 Jul 2020 10:31:19 +0530
committer: Amit Kapila <[email protected]>
date : Sat, 25 Jul 2020 10:31:19 +0530
Commit 85c9d347 addressed a similar problem for Gather and Gather
Merge nodes but forgot to account for nodes above parallel nodes. This
still works for nodes above Gather node because we shut down the workers
for Gather node as soon as there are no more tuples. We can do a similar
thing for Gather Merge as well but it seems better to account for stats
during nodes shutdown after completing the execution.
Reported-by: Stéphane Lorek, Jehan-Guillaume de Rorthais
Author: Jehan-Guillaume de Rorthais <[email protected]>
Reviewed-by: Amit Kapila
Backpatch-through: 10, where it was introduced
Discussion: https://postgr.es/m/20200718160206.584532a2@firost
M src/backend/executor/execProcnode.c
Replace TS_execute's TS_EXEC_CALC_NOT flag with TS_EXEC_SKIP_NOT.
commit : 70eca6a9a6df679a86f30442194cc6b858b82000
author : Tom Lane <[email protected]>
date : Fri, 24 Jul 2020 15:43:56 -0400
committer: Tom Lane <[email protected]>
date : Fri, 24 Jul 2020 15:43:56 -0400
It's fairly silly that ignoring NOT subexpressions is TS_execute's
default behavior. It's wrong on its face and it encourages errors
of omission. Moreover, the only two remaining callers that aren't
specifying CALC_NOT are in ts_headline calculations, and it's very
arguable that those are bugs: if you've specified "!foo" in your
query, why would you want to get a headline that includes "foo"?
Hence, rip that out and change the default behavior to be to calculate
NOT accurately. As a concession to the slim chance that there is still
somebody somewhere who needs the incorrect behavior, provide a new
SKIP_NOT flag to explicitly request that.
Back-patch into v13, mainly because it seems better to change this
at the same time as the previous commit's rejiggering of TS_execute
related APIs. Any outside callers affected by this change are
probably also affected by that one.
Discussion: https://postgr.es/m/CALT9ZEE-aLotzBg-pOp2GFTesGWVYzXA3=mZKzRDa_OKnLF7Mg@mail.gmail.com
M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsgistidx.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/adt/tsvector_op.c
M src/include/tsearch/ts_utils.h
Fix assorted bugs by changing TS_execute's callback API to ternary logic.
commit : 92fe6895d66da93a3c920089cfbbe4eb2db2145e
author : Tom Lane <[email protected]>
date : Fri, 24 Jul 2020 15:26:51 -0400
committer: Tom Lane <[email protected]>
date : Fri, 24 Jul 2020 15:26:51 -0400
Text search sometimes failed to find valid matches, for instance
'!crew:A'::tsquery might fail to locate 'crew:1B'::tsvector during
an index search. The root of the issue is that TS_execute's callback
functions were not changed to use ternary (yes/no/maybe) reporting
when we made the search logic itself do so. It's somewhat annoying
to break that API, but on the other hand we now see that any code
using plain boolean logic is almost certainly broken since the
addition of phrase search. There seem to be very few outside callers
of this code anyway, so we'll just break them intentionally to get
them to adapt.
This allows removal of tsginidx.c's private re-implementation of
TS_execute, since that's now entirely duplicative. It's also no
longer necessary to avoid use of CALC_NOT in tsgistidx.c, since
the underlying callbacks can now do something reasonable.
Back-patch into v13. We can't change this in stable branches,
but it seems not quite too late to fix it in v13.
Tom Lane and Pavel Borisov
Discussion: https://postgr.es/m/CALT9ZEE-aLotzBg-pOp2GFTesGWVYzXA3=mZKzRDa_OKnLF7Mg@mail.gmail.com
M src/backend/tsearch/wparser_def.c
M src/backend/utils/adt/tsginidx.c
M src/backend/utils/adt/tsgistidx.c
M src/backend/utils/adt/tsrank.c
M src/backend/utils/adt/tsvector_op.c
M src/include/tsearch/ts_utils.h
M src/test/regress/expected/tsearch.out
M src/test/regress/expected/tstypes.out
M src/test/regress/sql/tsearch.sql
M src/test/regress/sql/tstypes.sql
Fix ancient violation of zlib's API spec.
commit : 7dab4569d19341720316d139141f1c867ef438bf
author : Tom Lane <[email protected]>
date : Thu, 23 Jul 2020 17:19:37 -0400
committer: Tom Lane <[email protected]>
date : Thu, 23 Jul 2020 17:19:37 -0400
contrib/pgcrypto mishandled the case where deflate() does not consume
all of the offered input on the first try. It reset the next_in pointer
to the start of the input instead of leaving it alone, causing the wrong
data to be fed to the next deflate() call.
This has been broken since pgcrypto was committed. The reason for the
lack of complaints seems to be that it's fairly hard to get stock zlib
to not consume all the input, so long as the output buffer is big enough
(which it normally would be in pgcrypto's usage; AFAICT the input is
always going to be packetized into packets no larger than ZIP_OUT_BUF).
However, IBM's zlibNX implementation for AIX evidently will do it
in some cases.
I did not add a test case for this, because I couldn't find one that
would fail with stock zlib. When we put back the test case for
bug #16476, that will cover the zlibNX situation well enough.
While here, write deflate()'s second argument as Z_NO_FLUSH per its
API spec, instead of hard-wiring the value zero.
Per buildfarm results and subsequent investigation.
Discussion: https://postgr.es/m/[email protected]
M contrib/pgcrypto/pgp-compress.c
doc: Document that ssl_ciphers does not affect TLS 1.3
commit : dbd03482c626e7c5bb92dde983c4b9de6f623253
author : Peter Eisentraut <[email protected]>
date : Thu, 23 Jul 2020 17:13:00 +0200
committer: Peter Eisentraut <[email protected]>
date : Thu, 23 Jul 2020 17:13:00 +0200
TLS 1.3 uses a different way of specifying ciphers and a different
OpenSSL API. PostgreSQL currently does not support setting those
ciphers. For now, just document this. In the future, support for
this might be added somehow.
Reviewed-by: Jonathan S. Katz <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
M doc/src/sgml/config.sgml
Fix error message.
commit : 6b366190d54a2cfc57782e11c62f05899e17b6ae
author : Thomas Munro <[email protected]>
date : Thu, 23 Jul 2020 21:10:49 +1200
committer: Thomas Munro <[email protected]>
date : Thu, 23 Jul 2020 21:10:49 +1200
Remove extra space. Back-patch to all releases, like commit 7897e3bb.
Author: Lu, Chenyang <[email protected]>
Discussion: https://postgr.es/m/795d03c6129844d3803e7eea48f5af0d%40G08CNEXMBPEKD04.g08.fujitsu.local
M src/backend/storage/file/buffile.c
Revert "Fix corner case with PGP decompression in pgcrypto"
commit : 9f5162ef43c52396c4365b9cabfdffb4e4bf716d
author : Michael Paquier <[email protected]>
date : Thu, 23 Jul 2020 08:29:14 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 23 Jul 2020 08:29:14 +0900
This reverts commit 9e10898, after finding out that buildfarm members
running SLES 15 on z390 complain on the compression and decompression
logic of the new test: pipistrelles, barbthroat and steamerduck.
Those hosts are visibly using hardware-specific changes to improve zlib
performance, requiring more investigation.
Thanks to Tom Lane for the discussion.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M contrib/pgcrypto/expected/pgp-compression.out
M contrib/pgcrypto/pgp-compress.c
M contrib/pgcrypto/sql/pgp-compression.sql
Fix corner case with PGP decompression in pgcrypto
commit : 35e142202b14fa12f8edbd7e58b33c39d3c03c62
author : Michael Paquier <[email protected]>
date : Wed, 22 Jul 2020 14:52:36 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 22 Jul 2020 14:52:36 +0900
A compressed stream may end with an empty packet, and PGP decompression
finished before reading this empty packet in the remaining stream. This
caused a failure in pgcrypto, handling this case as corrupted data.
This commit makes sure to consume such extra data, avoiding a failure
when decompression the entire stream. This corner case was reproducible
with a data length of 16kB, and existed since its introduction in
e94dd6a. A cheap regression test is added to cover this case.
Thanks to Jeff Janes for the extra investigation.
Reported-by: Frank Gagnepain
Author: Kyotaro Horiguchi, Michael Paquier
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M contrib/pgcrypto/expected/pgp-compression.out
M contrib/pgcrypto/pgp-compress.c
M contrib/pgcrypto/sql/pgp-compression.sql
neqjoinsel must now pass through collation to eqjoinsel.
commit : cc4dd2a7af13b4759cd76074a932c8cf24e32bb2
author : Tom Lane <[email protected]>
date : Tue, 21 Jul 2020 19:40:44 -0400
committer: Tom Lane <[email protected]>
date : Tue, 21 Jul 2020 19:40:44 -0400
Since commit 044c99bc5, eqjoinsel passes the passed-in collation
to any operators it invokes. However, neqjoinsel failed to pass
on whatever collation it got, so that if we invoked a
collation-dependent operator via that code path, we'd get "could not
determine which collation to use for string comparison" or the like.
Per report from Justin Pryzby. Back-patch to v12, like the previous
commit.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/adt/selfuncs.c
Minor glossary tweaks
commit : ac25e7b039d5eacb8eb8fcc856a7ba4f14136b50
author : Alvaro Herrera <[email protected]>
date : Tue, 21 Jul 2020 13:08:16 -0400
committer: Alvaro Herrera <[email protected]>
date : Tue, 21 Jul 2020 13:08:16 -0400
Add "(process)" qualifier to two terms, remove self-reference in one
term.
Author: Jürgen Purtz <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/glossary.sgml
Assert that we don't insert nulls into attnotnull catalog columns.
commit : bca409e5b160f81ccd980bef2aeb32f8b731b0fd
author : Tom Lane <[email protected]>
date : Tue, 21 Jul 2020 12:38:08 -0400
committer: Tom Lane <[email protected]>
date : Tue, 21 Jul 2020 12:38:08 -0400
The executor checks for this error, and so does the bootstrap catalog
loader, but we never checked for it in retail catalog manipulations.
The folly of that has now been exposed, so let's add assertions
checking it. Checking in CatalogTupleInsert[WithInfo] and
CatalogTupleUpdate[WithInfo] should be enough to cover this.
Back-patch to v10; the aforesaid functions didn't exist before that,
and it didn't seem worth adapting the patch to the oldest branches.
But given the risk of JIT crashes, I think we certainly need this
as far back as v11.
Pre-v13, we have to explicitly exclude pg_subscription.subslotname
and pg_subscription_rel.srsublsn from the checks, since they are
mismarked. (Even if we change our mind about applying BKI_FORCE_NULL
in the branch tips, it doesn't seem wise to have assertions that
would fire in existing databases.)
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/bki.sgml
M src/backend/catalog/indexing.c
Correctly mark pg_subscription_rel.srsublsn as nullable.
commit : e5372b48b94f17dcce5d8f3b26d55b0f182e4306
author : Tom Lane <[email protected]>
date : Mon, 20 Jul 2020 14:55:56 -0400
committer: Tom Lane <[email protected]>
date : Mon, 20 Jul 2020 14:55:56 -0400
The code has always set this column to NULL when it's not valid,
but the catalog header's description failed to reflect that,
as did the SGML docs, as did some of the code. To prevent future
coding errors of the same ilk, let's hide the field from C code
as though it were variable-length (which, in a sense, it is).
As with commit 72eab84a5, we can only fix this cleanly in HEAD
and v13; the problem extends further back but we'll need some
klugery in the released branches.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M src/backend/catalog/pg_subscription.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_subscription_rel.h
Fix construction of updated-columns bitmap in logical replication.
commit : 2f1f189cf8806a02987dfa1759257b154162fac2
author : Tom Lane <[email protected]>
date : Mon, 20 Jul 2020 13:40:16 -0400
committer: Tom Lane <[email protected]>
date : Mon, 20 Jul 2020 13:40:16 -0400
Commit b9c130a1f failed to apply the publisher-to-subscriber column
mapping while checking which columns were updated. Perhaps less
significantly, it didn't exclude dropped columns either. This could
result in an incorrect updated-columns bitmap and thus wrong decisions
about whether to fire column-specific triggers on the subscriber while
applying updates. In HEAD (since commit 9de77b545), it could also
result in accesses off the end of the colstatus array, as detected by
buildfarm member skink. Fix the logic, and adjust 003_constraints.pl
so that the problem is exposed in unpatched code.
In HEAD, also add some assertions to check that we don't access off
the ends of these newly variable-sized arrays.
Back-patch to v10, as b9c130a1f was.
Discussion: https://postgr.es/m/CAH2-Wz=79hKQ4++c5A060RYbjTHgiYTHz=fw6mptCtgghH2gJA@mail.gmail.com
M src/backend/replication/logical/worker.c
M src/test/subscription/t/003_constraints.pl
Rename wal_keep_segments to wal_keep_size.
commit : f5dff45962ec0a0daad443e45811d6c426be1237
author : Fujii Masao <[email protected]>
date : Mon, 20 Jul 2020 13:30:18 +0900
committer: Fujii Masao <[email protected]>
date : Mon, 20 Jul 2020 13:30:18 +0900
max_slot_wal_keep_size that was added in v13 and wal_keep_segments are
the GUC parameters to specify how much WAL files to retain for
the standby servers. While max_slot_wal_keep_size accepts the number of
bytes of WAL files, wal_keep_segments accepts the number of WAL files.
This difference of setting units between those similar parameters could
be confusing to users.
To alleviate this situation, this commit renames wal_keep_segments to
wal_keep_size, and make users specify the WAL size in it instead of
the number of WAL files.
There was also the idea to rename max_slot_wal_keep_size to
max_slot_wal_keep_segments, in the discussion. But we have been moving
away from measuring in segments, for example, checkpoint_segments was
replaced by max_wal_size. So we concluded to rename wal_keep_segments
to wal_keep_size.
Back-patch to v13 where max_slot_wal_keep_size was added.
Author: Fujii Masao
Reviewed-by: Álvaro Herrera, Kyotaro Horiguchi, David Steele
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/wal.sgml
M src/backend/access/transam/xlog.c
M src/backend/replication/slotfuncs.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/bin/pg_rewind/t/RewindTest.pm
M src/include/access/xlog.h
M src/test/recovery/t/019_replslot_limit.pl
Fix minor typo in nodeIncrementalSort.c.
commit : 4a1ae21750cbf23d8317d565c55ac7bce46bf0f6
author : Amit Kapila <[email protected]>
date : Mon, 20 Jul 2020 07:54:04 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 20 Jul 2020 07:54:04 +0530
Author: Vignesh C
Reviewed-by: James Coleman
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CALDaNm0WjZqRvdeL59ZfYH0o4mLbKQ23jm-bnjXcFzgpANx55g@mail.gmail.com
M src/backend/executor/nodeIncrementalSort.c
Correctly mark pg_subscription.subslotname as nullable.
commit : 914d2383ae91918b359311a90d23c0d5862781ac
author : Tom Lane <[email protected]>
date : Sun, 19 Jul 2020 12:37:23 -0400
committer: Tom Lane <[email protected]>
date : Sun, 19 Jul 2020 12:37:23 -0400
Due to the layout of this catalog, subslotname has to be explicitly
marked BKI_FORCE_NULL, else initdb will default to the assumption
that it's non-nullable. Since, in fact, CREATE/ALTER SUBSCRIPTION
will store null values there, the existing marking is just wrong,
and has been since this catalog was invented.
We haven't noticed because not much in the system actually depends
on attnotnull being truthful. However, JIT'ed tuple deconstruction
does depend on that in some cases, allowing crashes or wrong answers
in queries that inspect pg_subscription. Commit 9de77b545 quite
accidentally exposed this on the buildfarm members that force JIT
activation.
Back-patch to v13. The problem goes further back, but we cannot
force initdb in released branches, so some klugier solution will
be needed there. Before working on that, push this simple fix
to try to get the buildfarm back to green.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M src/include/catalog/catversion.h
M src/include/catalog/pg_subscription.h
M src/test/regress/expected/subscription.out
M src/test/regress/sql/subscription.sql
doc: Refresh more URLs in the docs
commit : f2b65519e17d6de4cd95dfe1570ab1aca187b24d
author : Michael Paquier <[email protected]>
date : Sat, 18 Jul 2020 22:43:41 +0900
committer: Michael Paquier <[email protected]>
date : Sat, 18 Jul 2020 22:43:41 +0900
This updates some URLs that are redirections, mostly to an equivalent
using https. One URL referring to generalized partial indexes was
outdated.
Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/acronyms.sgml
M doc/src/sgml/biblio.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/cube.sgml
M doc/src/sgml/dfunc.sgml
M doc/src/sgml/earthdistance.sgml
M doc/src/sgml/external-projects.sgml
M doc/src/sgml/geqo.sgml
M doc/src/sgml/install-windows.sgml
M doc/src/sgml/intro.sgml
M doc/src/sgml/isn.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/nls.sgml
M doc/src/sgml/pgcrypto.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/pltcl.sgml
M doc/src/sgml/seg.sgml
M doc/src/sgml/textsearch.sgml
doc: Fix description of \copy for psql
commit : 580d8ac9b1ef2803f39b1e23d9da68fff9109c42
author : Michael Paquier <[email protected]>
date : Sat, 18 Jul 2020 10:42:46 +0900
committer: Michael Paquier <[email protected]>
date : Sat, 18 Jul 2020 10:42:46 +0900
The WHERE clause introduced by 31f3817 was not described. While on it,
split the grammar of \copy FROM and TO into two distinct parts for
clarity as they support different set of options.
Author: Vignesh C
Discussion: https://postgr.es/m/CALDaNm3zWr=OmxeNqOqfT=uZTSdam_j-gkX94CL8eTNfgUtf6A@mail.gmail.com
Backpatch-through: 12
M doc/src/sgml/ref/psql-ref.sgml
Cope with data-offset-less archive files during out-of-order restores.
commit : 71e8e66f783c143b04d381566d7a2a61e8d7598f
author : Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 13:03:50 -0400
committer: Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 13:03:50 -0400
pg_dump produces custom-format archive files that lack data offsets
when it is unable to seek its output. Up to now that's been a hazard
for pg_restore. But if pg_restore is able to seek in the archive
file, there is no reason to throw up our hands when asked to restore
data blocks out of order. Instead, whenever we are searching for a
data block, record the locations of the blocks we passed over (that
is, fill in the missing data-offset fields in our in-memory copy of
the TOC data). Then, when we hit a case that requires going
backwards, we can just seek back.
Also track the furthest point that we've searched to, and seek back
to there when beginning a search for a new data block. This avoids
possible O(N^2) time consumption, by ensuring that each data block
is examined at most twice. (On Unix systems, that's at most twice
per parallel-restore job; but since Windows uses threads here, the
threads can share block location knowledge, reducing the amount of
duplicated work.)
We can also improve the code a bit by using fseeko() to skip over
data blocks during the search.
This is all of some use even in simple restores, but it's really
significant for parallel pg_restore. In that case, we require
seekability of the input already, and we will very probably need
to do out-of-order restores.
Back-patch to v12, as this fixes a regression introduced by commit
548e50976. Before that, parallel restore avoided requesting
out-of-order restores, so it would work on a data-offset-less
archive. Now it will again.
Ideally this patch would include some test coverage, but there are
other open bugs that need to be fixed before we can extend our
coverage of parallel restore very much. Plan to revisit that later.
David Gilman and Tom Lane; reviewed by Justin Pryzby
Discussion: https://postgr.es/m/CALBH9DDuJ+scZc4MEvw5uO-=vRyR2=QF9+Yh=3hPEnKHWfS81A@mail.gmail.com
M doc/src/sgml/ref/pg_restore.sgml
M src/bin/pg_dump/pg_backup_custom.c
Remove manual tracking of file position in pg_dump/pg_backup_custom.c.
commit : 447cf2f8e9dcf9fd89c935f2daee13326a91630a
author : Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 12:14:28 -0400
committer: Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 12:14:28 -0400
We do not really need to track the file position by hand. We were
already relying on ftello() whenever the archive file is seekable,
while if it's not seekable we don't need the file position info
anyway because we're not going to be able to re-write the TOC.
Moreover, that tracking was buggy since it failed to account for
the effects of fseeko(). Somewhat remarkably, that seems not to
have made for any live bugs up to now. We could fix the oversights,
but it seems better to just get rid of the whole error-prone mess.
In itself this is merely code cleanup. However, it's necessary
infrastructure for an upcoming bug-fix patch (because that code
*does* need valid file position after fseeko). The bug fix
needs to go back as far as v12; hence, back-patch that far.
Discussion: https://postgr.es/m/CALBH9DDuJ+scZc4MEvw5uO-=vRyR2=QF9+Yh=3hPEnKHWfS81A@mail.gmail.com
M src/bin/pg_dump/pg_backup_custom.c
Avoid CREATE INDEX unique index deduplication.
commit : 49eb96852b02069600a4f6997dfb388fc37a2778
author : Peter Geoghegan <[email protected]>
date : Fri, 17 Jul 2020 09:50:46 -0700
committer: Peter Geoghegan <[email protected]>
date : Fri, 17 Jul 2020 09:50:46 -0700
There is no advantage to attempting deduplication for a unique index
during CREATE INDEX, since there cannot possibly be any duplicates.
Doing so wastes cycles due to unnecessary copying. Make sure that we
avoid it consistently.
We already avoided unique index deduplication in the case where there
were some spool2 tuples to merge. That didn't account for the fact that
spool2 is removed early/unset in the common case where it has no tuples
that need to be merged (i.e. it failed to account for the "spool2 turns
out to be unnecessary" optimization in _bt_spools_heapscan()).
Oversight in commit 0d861bbb, which added nbtree deduplication
Backpatch: 13-, where nbtree deduplication was introduced.
M src/backend/access/nbtree/nbtsort.c
Ensure that distributed timezone abbreviation files are plain ASCII.
commit : a220e345c87d5224d810584a7c4ef29ea7a6c1f1
author : Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 11:03:55 -0400
committer: Tom Lane <[email protected]>
date : Fri, 17 Jul 2020 11:03:55 -0400
We had two occurrences of "Mitteleuropäische Zeit" in Europe.txt,
though the corresponding entries in Default were spelled
"Mitteleuropaeische Zeit". Standardize on the latter spelling to
avoid questions of which encoding to use.
While here, correct a couple of other trivial inconsistencies between
the Default file and the supposedly-matching entries in the *.txt
files, as exposed by some checking with comm(1). Also, add BDST to
the Europe.txt file; it previously was only listed in Default.
None of this has any direct functional effect.
Per complaint from Christoph Berg. As usual for timezone data patches,
apply to all branches.
Discussion: https://postgr.es/m/[email protected]
M src/timezone/tznames/Antarctica.txt
M src/timezone/tznames/Australia.txt
M src/timezone/tznames/Default
M src/timezone/tznames/Europe.txt
Fix whitespace
commit : 6bab40bf605665fc01b84a434127cbaec3b3d1de
author : Peter Eisentraut <[email protected]>
date : Fri, 17 Jul 2020 15:16:13 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 17 Jul 2020 15:16:13 +0200
M src/backend/utils/adt/genfile.c
Resolve gratuitous tabs in SQL file
commit : e7240ccecd3001892880fd076a7ffd107b533afc
author : Peter Eisentraut <[email protected]>
date : Fri, 17 Jul 2020 15:07:54 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 17 Jul 2020 15:07:54 +0200
M src/backend/catalog/system_views.sql
Fix signal handler setup for SIGHUP in the apply launcher process.
commit : 35647ea9d214c8745922cb757424f11d791ed733
author : Amit Kapila <[email protected]>
date : Fri, 17 Jul 2020 08:43:06 +0530
committer: Amit Kapila <[email protected]>
date : Fri, 17 Jul 2020 08:43:06 +0530
Commit 1e53fe0e70 has unified the usage of the config-file reload flag by
using the same signal handler function for the SIGHUP signal at many places
in the code. By mistake, it used the wrong SIGNAL in apply launcher
process for the SIGHUP signal handler function.
Author: Bharath Rupireddy
Reviewed-by: Dilip Kumar
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CALj2ACVzHCRnS20bOiEHaLtP5PVBENZQn4khdsSJQgOv_GM-LA@mail.gmail.com
M src/backend/replication/logical/launcher.c
Switch pg_test_fsync to use binary mode on Windows
commit : beebbb39d932289b73fa7cab4037895675615a8d
author : Michael Paquier <[email protected]>
date : Thu, 16 Jul 2020 15:52:54 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 16 Jul 2020 15:52:54 +0900
pg_test_fsync has always opened files using the text mode on Windows, as
this is the default mode used if not enforced by _setmode().
This fixes a failure when running pg_test_fsync down to 12 because
O_DSYNC and the text mode are not able to work together nicely. We
fixed the handling of O_DSYNC in 12~ for the tool by switching to the
concurrent-safe version of fopen() in src/port/ with 0ba06e0. And
40cfe86, by enforcing the text mode for compatibility reasons if O_TEXT
or O_BINARY are not specified by the caller, broke pg_test_fsync. For
all versions, this avoids any translation overhead, and pg_test_fsync
should test binary writes, so it is a gain in all cases.
Note that O_DSYNC is still not handled correctly in ~11, leading to
pg_test_fsync to show insanely high numbers for open_datasync() (using
this property it is easy to notice that the binary mode is much
faster). This would require a backpatch of 0ba06e0 and 40cfe86, which
could potentially break existing applications, so this is left out.
There are no TAP tests for this tool yet, so I have checked all builds
manually using MSVC. We could invent a new option to run a single
transaction instead of using a duration of 1s to make the tests a
maximum short, but this is left as future work.
Thanks to Bruce Momjian for the discussion.
Reported-by: Jeff Janes
Author: Michael Paquier
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/bin/pg_test_fsync/pg_test_fsync.c
doc: Fix typo
commit : 6b5ca893f737184a8113aee33c6c10b1c3bbcd39
author : Peter Eisentraut <[email protected]>
date : Wed, 15 Jul 2020 21:01:29 +0200
committer: Peter Eisentraut <[email protected]>
date : Wed, 15 Jul 2020 21:01:29 +0200
M doc/src/sgml/release-13.sgml
Fix handling of missing files when using pg_rewind with online source
commit : 5f89bb4cf0109bdb36eb8f78943f5b0f141c614a
author : Michael Paquier <[email protected]>
date : Wed, 15 Jul 2020 15:17:32 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 15 Jul 2020 15:17:32 +0900
When working with an online source cluster, pg_rewind gets a list of all
the files in the source data directory using a WITH RECURSIVE query,
returning a NULL result for a file's metadata if it gets removed between
the moment it is listed in a directory and the moment its metadata is
obtained with pg_stat_file() (say a recycled WAL segment). The query
result was processed in such a way that for each tuple we checked only
that the first file's metadata was NULL. This could have two
consequences, both resulting in a failure of the rewind:
- If the first tuple referred to a removed file, all files from the
source would be ignored.
- Any file actually missing would not be considered as such.
While on it, rework slightly the code so as no values are saved if we
know that a file is going to be skipped.
Issue introduced by b36805f, so backpatch down to 9.5.
Author: Justin Pryzby, Michael Paquier
Reviewed-by: Daniel Gustafsson, Masahiko Sawada
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/bin/pg_rewind/libpq_fetch.c
Fix bitmap AND/OR scans on the inside of a nestloop partition-wise join.
commit : e38705b5c7635644a70cf7c9eadb7a90bb8ea13b
author : Tom Lane <[email protected]>
date : Tue, 14 Jul 2020 18:56:49 -0400
committer: Tom Lane <[email protected]>
date : Tue, 14 Jul 2020 18:56:49 -0400
reparameterize_path_by_child() failed to reparameterize BitmapAnd
and BitmapOr paths. This matters only if such a path is chosen as
the inside of a nestloop partition-wise join, where we have to pass
in parameters from the outside of the nestloop. If that did happen,
we generated a bad plan that would likely lead to crashes at execution.
This is not entirely reparameterize_path_by_child()'s fault though;
it's the victim of an ancient decision (my ancient decision, I think)
to not bother filling in param_info in BitmapAnd/Or path nodes. That
caused the function to believe that such nodes and their children
contain no parameter references and so need not be processed.
In hindsight that decision looks pretty penny-wise and pound-foolish:
while it saves a few cycles during path node setup, we do commonly
need the information later. In particular, by reversing the decision
and requiring valid param_info data in all nodes of a bitmap path
tree, we can get rid of indxpath.c's get_bitmap_tree_required_outer()
function, which computed the data on-demand. It's not unlikely that
that nets out as a savings of cycles in many scenarios. A couple
of other things in indxpath.c can be simplified as well.
While here, get rid of some cases in reparameterize_path_by_child()
that are visibly dead or useless, given that we only care about
reparameterizing paths that can be on the inside of a parameterized
nestloop. This case reminds one of the maxim that untested code
probably does not work, so I'm unwilling to leave unreachable code
in this function. (I did leave the T_Gather case in place even
though it's not reached in the regression tests. It's not very
clear to me when the planner might prefer to put Gather below
rather than above a nestloop, but at least in principle the case
might be interesting.)
Per bug #16536, originally from Arne Roland but with a test case
by Andrew Gierth. Back-patch to v11 where this code came in.
Discussion: https://postgr.es/m/[email protected]
M src/backend/optimizer/path/indxpath.c
M src/backend/optimizer/util/pathnode.c
M src/test/regress/expected/partition_join.out
M src/test/regress/sql/partition_join.sql
Fix timing issue with ALTER TABLE's validate constraint
commit : b827304291aff8019cdd0cee68219fe43f064380
author : David Rowley <[email protected]>
date : Tue, 14 Jul 2020 16:57:41 +1200
committer: David Rowley <[email protected]>
date : Tue, 14 Jul 2020 16:57:41 +1200
An ALTER TABLE to validate a foreign key in which another subcommand
already caused a pending table rewrite could fail due to ALTER TABLE
attempting to validate the foreign key before the actual table rewrite
takes place. This situation could result in an error such as:
ERROR: could not read block 0 in file "base/nnnnn/nnnnn": read only 0 of 8192 bytes
The failure here was due to the SPI call which validates the foreign key
trying to access an index which is yet to be rebuilt.
Similarly, we also incorrectly tried to validate CHECK constraints before
the heap had been rewritten.
The fix for both is to delay constraint validation until phase 3, after
the table has been rewritten. For CHECK constraints this means a slight
behavioral change. Previously ALTER TABLE VALIDATE CONSTRAINT on
inheritance tables would be validated from the bottom up. This was
different from the order of evaluation when a new CHECK constraint was
added. The changes made here aligns the VALIDATE CONSTRAINT evaluation
order for inheritance tables to be the same as ADD CONSTRAINT, which is
generally top-down.
Reported-by: Nazli Ugur Koyluoglu, using SQLancer
Discussion: https://postgr.es/m/CAApHDvp%3DZXv8wiRyk_0rWr00skhGkt8vXDrHJYXRMft3TjkxCA%40mail.gmail.com
Backpatch-through: 9.5 (all supported versions)
M src/backend/commands/tablecmds.c
M src/test/regress/expected/alter_table.out
M src/test/regress/sql/alter_table.sql
Fix comments related to table AMs
commit : 9678c08184a82deafac9297b9af0fc5cb07ab347
author : Michael Paquier <[email protected]>
date : Tue, 14 Jul 2020 13:17:31 +0900
committer: Michael Paquier <[email protected]>
date : Tue, 14 Jul 2020 13:17:31 +0900
Incorrect function names were referenced. As this fixes some portions
of tableam.h, that is mentioned in the docs as something to look at when
implementing a table AM, backpatch down to 12 where this has been
introduced.
Author: Hironobu Suzuki
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 12
M src/backend/access/heap/heapam.c
M src/include/access/tableam.h
Cope with lateral references in the quals of a subquery RTE.
commit : 0734dbc45034540fec1d98b15c9f173ad1d4af02
author : Tom Lane <[email protected]>
date : Mon, 13 Jul 2020 20:38:20 -0400
committer: Tom Lane <[email protected]>
date : Mon, 13 Jul 2020 20:38:20 -0400
The qual pushdown logic assumed that all Vars in a restriction clause
must be Vars referencing subquery outputs; but since we introduced
LATERAL, it's possible for such a Var to be a lateral reference instead.
This led to an assertion failure in debug builds. In a non-debug
build, there might be no ill effects (if qual_is_pushdown_safe decided
the qual was unsafe anyway), or we could get failures later due to
construction of an invalid plan. I've not gone to much length to
characterize the possible failures, but at least segfaults in the
executor have been observed.
Given that this has been busted since 9.3 and it took this long for
anybody to notice, I judge that the case isn't worth going to great
lengths to optimize. Hence, fix by just teaching qual_is_pushdown_safe
that such quals are unsafe to push down, matching the previous behavior
when it accidentally didn't fail.
Per report from Tom Ellis. Back-patch to all supported branches.
Discussion: https://postgr.es/m/20200713175124.GQ8220@cloudinit-builder
M src/backend/optimizer/path/allpaths.c
M src/test/regress/expected/subselect.out
M src/test/regress/sql/subselect.sql
Fix uninitialized value in segno calculation
commit : 794e8e32bb5ae1b38a90cbae2a88895633797599
author : Alvaro Herrera <[email protected]>
date : Mon, 13 Jul 2020 13:49:50 -0400
committer: Alvaro Herrera <[email protected]>
date : Mon, 13 Jul 2020 13:49:50 -0400
Remove previous hack in KeepLogSeg that added a case to deal with a
(badly represented) invalid segment number. This was added for the sake
of GetWALAvailability. But it's not needed if in that function we
initialize the segment number to be retreated to the currently being
written segment, so do that instead.
Per valgrind-running buildfarm member skink, and some sparc64 animals.
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/transam/xlog.c
Fix bugs in libpq's management of GSS encryption state.
commit : 8e6f134a9a8db52cbd2818ce8a60b9e5cdadfc8f
author : Tom Lane <[email protected]>
date : Mon, 13 Jul 2020 11:57:55 -0400
committer: Tom Lane <[email protected]>
date : Mon, 13 Jul 2020 11:57:55 -0400
GSS-related resources should be cleaned up in pqDropConnection,
not freePGconn, else the wrong things happen when resetting
a connection or trying to switch to a different server.
It's also critical to reset conn->gssenc there.
During connection setup, initialize conn->try_gss at the correct
place, else switching to a different server won't work right.
Remove now-redundant cleanup of GSS resources around one (and, for
some reason, only one) pqDropConnection call in connectDBStart.
Per report from Kyotaro Horiguchi that psql would freeze up,
rather than successfully resetting a GSS-encrypted connection
after a server restart.
This is YA oversight in commit b0b39f72b, so back-patch to v12.
Discussion: https://postgr.es/m/[email protected]
M src/interfaces/libpq/fe-connect.c
Improvements to psql \dAo and \dAp commands
commit : ae290059e1aa5bc2272a0345184bcf05407f69a4
author : Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 14:14:49 +0300
committer: Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 14:14:49 +0300
* Strategy number and purpose are essential information for opfamily operator.
So, show those columns in non-verbose output.
* "Left/right arg type" \dAp column names are confusing, because those type
don't necessary match to function arguments. Rename them to "Registered
left/right type".
* Replace manual assembling of operator/procedure names with casts to
regoperator/regprocedure.
* Add schema-qualification for pg_catalog functions and tables.
Reported-by: Peter Eisentraut, Tom Lane
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/2edc7b27-031f-b2b6-0db2-864241c91cb9%402ndquadrant.com
Backpatch-through: 13
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/test/regress/expected/psql.out
M src/test/regress/sql/psql.sql
HashAgg: before spilling tuples, set unneeded columns to NULL.
commit : d8a7ce245095e3a70a2ad738c17be95593f68996
author : Jeff Davis <[email protected]>
date : Sun, 12 Jul 2020 17:48:49 -0700
committer: Jeff Davis <[email protected]>
date : Sun, 12 Jul 2020 17:48:49 -0700
This is a replacement for 4cad2534. Instead of projecting all tuples
going into a HashAgg, only remove unnecessary attributes when actually
spilling. This avoids the regression for the in-memory case.
Discussion: https://postgr.es/m/a2fb7dfeb4f50aa0a123e42151ee3013933cb802.camel%40j-davis.com
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
M src/include/nodes/execnodes.h
Revert "Use CP_SMALL_TLIST for hash aggregate"
commit : 926ecf83c0bab7e985eaf5727bb69cdf8ce6b067
author : Jeff Davis <[email protected]>
date : Sun, 12 Jul 2020 16:46:19 -0700
committer: Jeff Davis <[email protected]>
date : Sun, 12 Jul 2020 16:46:19 -0700
This reverts commit 4cad2534da6d17067d98cf04be2dfc1bda8f2cd0 due to a
performance regression. It will be replaced by a new approach in an
upcoming commit.
Reported-by: Andres Freund
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M contrib/postgres_fdw/expected/postgres_fdw.out
M src/backend/optimizer/plan/createplan.c
Revert "Track statistics for spilling of changes from ReorderBuffer".
commit : b074813d48bcd2a7e224b56a3aff6db9df745237
author : Amit Kapila <[email protected]>
date : Mon, 13 Jul 2020 08:27:40 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 13 Jul 2020 08:27:40 +0530
The stats with this commit was available only for WALSenders, however,
users might want to see for backends doing logical decoding via SQL API.
Then, users might want to reset and access these stats across server
restart which was not possible with the current patch.
List of commits reverted:
caa3c4242c Don't call elog() while holding spinlock.
e641b2a995 Doc: Update the documentation for spilled transaction
statistics.
5883f5fe27 Fix unportable printf format introduced in commit 9290ad198.
9290ad198b Track statistics for spilling of changes from ReorderBuffer.
Additionaly, remove the release notes entry for this feature.
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CA+fd4k5_pPAYRTDrO2PbtTOe0eHQpBvuqmCr8ic39uTNmR49Eg@mail.gmail.com
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/release-13.sgml
M src/backend/catalog/system_views.sql
M src/backend/replication/logical/reorderbuffer.c
M src/backend/replication/walsender.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.dat
M src/include/replication/reorderbuffer.h
M src/include/replication/walsender_private.h
M src/test/regress/expected/rules.out
Avoid trying to restore table ACLs and per-column ACLs in parallel.
commit : bc9aaac1a188cac11b1ebb04047de3db71257785
author : Tom Lane <[email protected]>
date : Sat, 11 Jul 2020 13:36:50 -0400
committer: Tom Lane <[email protected]>
date : Sat, 11 Jul 2020 13:36:50 -0400
Parallel pg_restore has always supposed that ACL items for different
objects are independent and can be restored in parallel without
conflicts. However, there is one case where this fails: because
REVOKE on a table is defined to also revoke the privilege(s) at
column level, we can't restore per-column ACLs till after we restore
any table-level privileges on their table. Failure to honor this
restriction can lead to "tuple concurrently updated" errors during
parallel restore, or even to the per-column ACLs silently disappearing
because the table-level REVOKE is executed afterwards.
To fix, add a dependency from each column-level ACL item to its table's
ACL item, if there is one. Note that this doesn't fix the hazard
for pre-existing archive files, only for ones made with a corrected
pg_dump. Given that the bug's been there quite awhile without
field reports, I think this is acceptable.
This requires changing the API of pg_dump's dumpACL() function.
To keep its argument list from getting even longer, I removed the
"CatalogId objCatId" argument, which has been unused for ages.
Per report from Justin Pryzby. Back-patch to all supported branches.
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_dump/common.c
M src/bin/pg_dump/pg_backup.h
M src/bin/pg_dump/pg_dump.c
Forbid numeric NaN in jsonpath
commit : 89a0b1a7ca0af36818ed7076c12ac00bcf4f007d
author : Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 03:21:00 +0300
committer: Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 03:21:00 +0300
SQL standard doesn't define numeric Inf or NaN values. It appears even more
ridiculous to support then in jsonpath assuming JSON doesn't support these
values as well. This commit forbids returning NaN from .double(), which was
previously allowed. NaN can't be result of inner-jsonpath computation over
non-NaNs. So, we can not expect NaN in the jsonpath output.
Reported-by: Tom Lane
Discussion: https://postgr.es/m/203949.1591879542%40sss.pgh.pa.us
Author: Alexander Korotkov
Reviewed-by: Tom Lane
Backpatch-through: 12
M src/backend/utils/adt/jsonb_util.c
M src/backend/utils/adt/jsonpath_exec.c
M src/test/regress/expected/jsonb_jsonpath.out
Improve error reporting for jsonpath .double() method
commit : b9a04a9bc6653183ed23532145325694fbc46002
author : Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 03:20:46 +0300
committer: Alexander Korotkov <[email protected]>
date : Sat, 11 Jul 2020 03:20:46 +0300
When jsonpath .double() method detects that numeric or string can't be
converted to double precision, it throws an error. This commit makes these
errors explicitly express the reason of failure.
Discussion: https://postgr.es/m/CAPpHfdtqJtiSXkP7tOXez18NxhLUH_-75bL8%3DOce4Ki%2Bbv7V6Q%40mail.gmail.com
Author: Alexander Korotkov
Reviewed-by: Tom Lane
Backpatch-through: 12
M src/backend/utils/adt/jsonpath_exec.c
M src/test/regress/expected/jsonb_jsonpath.out
M src/test/regress/sql/jsonb_jsonpath.sql
Doc: update or remove dead external links.
commit : 763a0b63a25c13ac940ce2c64b37b8446ccbf895
author : Tom Lane <[email protected]>
date : Fri, 10 Jul 2020 13:16:00 -0400
committer: Tom Lane <[email protected]>
date : Fri, 10 Jul 2020 13:16:00 -0400
Re-point comp.ai.genetic FAQ link to a more stable address.
Remove stale links to AIX documentation; we don't really need to
tell AIX users how to use their systems.
Remove stale links to HP documentation about SSL. We've had to
update those twice before, making it increasingly obvious that
HP does not intend them to be stable landing points. They're
not particularly authoritative, either. (This change effectively
reverts bbd3bdba3.)
Daniel Gustafsson and Álvaro Herrera, per a gripe from
Kyotaro Horiguchi. Back-patch, since these links are
just as dead in the back branches.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/geqo.sgml
M doc/src/sgml/installation.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/runtime.sgml
Log the location field before any backtrace
commit : 8ff4d1277b8660de85e4a7d796ccc1b64187d80f
author : Peter Eisentraut <[email protected]>
date : Fri, 10 Jul 2020 08:27:00 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 10 Jul 2020 08:27:00 +0200
This order makes more sense because the location is effectively at the
lowest level of the backtrace.
Discussion: https://www.postgresql.org/message-id/flat/90f5fa04-c410-a54e-9449-aa3749fb7972%402ndquadrant.com
M src/backend/utils/error/elog.c
Remove WARNING message from brin_desummarize_range
commit : c3a79e71929a6b5cdd2416ab4976dab59736c937
author : Alvaro Herrera <[email protected]>
date : Thu, 9 Jul 2020 20:13:25 -0400
committer: Alvaro Herrera <[email protected]>
date : Thu, 9 Jul 2020 20:13:25 -0400
This message was being emitted on the grounds that only crashed
summarization could cause it, but in reality even an aborted vacuum
could do it ... which makes it way too noisy, particularly since it
shows up in regression tests and makes them die.
Reported by Tom Lane.
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/brin/brin_revmap.c
Tighten up Windows CRLF conversion in our TAP test scripts.
commit : 17b87b3049fa7e3ddc68bf9daaffa3b01d7b8be2
author : Tom Lane <[email protected]>
date : Thu, 9 Jul 2020 17:38:52 -0400
committer: Tom Lane <[email protected]>
date : Thu, 9 Jul 2020 17:38:52 -0400
Back-patch commits 91bdf499b and ffb4cee43, so that all branches
agree on when and how to do Windows CRLF conversion.
This should close the referenced thread. Thanks to Andrew Dunstan
for discussion/review.
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_rewind/t/RewindTest.pm
M src/test/perl/PostgresNode.pm
M src/test/perl/TestLib.pm
Fix pg_current_logfile() to not emit a carriage return on Windows.
commit : 601d419b2b5def62a1867169e67c7ef876f0b886
author : Tom Lane <[email protected]>
date : Thu, 9 Jul 2020 16:02:23 -0400
committer: Tom Lane <[email protected]>
date : Thu, 9 Jul 2020 16:02:23 -0400
Due to not having our signals straight about CRLF vs. LF line
termination, the output of pg_current_logfile() included a trailing
\r on Windows. To fix, force the file descriptor it uses into text
mode.
While here, move a couple of local variable declarations to make
the function's logic clearer.
In v12 and v13, also back-patch the test added by 1c4e88e2f so that
this function has some test coverage. However, the 004_logrotate.pl
test script doesn't exist before v12, and it didn't seem worth adding
to older branches just for this.
Per report from Thomas Kellerer. Back-patch to v10 where this
function was added.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/adt/misc.c
M src/bin/pg_ctl/t/004_logrotate.pl
doc: Correct the description about the length of pg_stat_activity.query.
commit : 331da659bedbad2c4d649d70cccf9d87ca1a0b7e
author : Fujii Masao <[email protected]>
date : Thu, 9 Jul 2020 13:31:33 +0900
committer: Fujii Masao <[email protected]>
date : Thu, 9 Jul 2020 13:31:33 +0900
pg_stat_activity.query text is truncated at 1024 bytes. But previously
the document described that it's truncated at 1024 characters.
This was not accurate when considering multibyte characters.
Back-patch to v10 where this inaccurate description was added.
Author: Atsushi Torikoshi
Reviewed-by: Daniel Gustafsson, Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/monitoring.sgml
Fix whitespace in HashAgg EXPLAIN ANALYZE
commit : 285da44a69ddcbe8aa955b5f863e02121f41c189
author : David Rowley <[email protected]>
date : Thu, 9 Jul 2020 10:07:00 +1200
committer: David Rowley <[email protected]>
date : Thu, 9 Jul 2020 10:07:00 +1200
The Sort node does not put a space between the number of kilobytes and
the "kB" of memory or disk space used, but HashAgg does. Here we align
HashAgg to do the same as Sort. Sort has been displaying this
information for longer than HashAgg, so it makes sense to align HashAgg
to Sort rather than the other way around.
Reported-by: Justin Pryzby
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13, where the hashagg started showing these details
M src/backend/commands/explain.c
Fix incorrect variable datatype.
commit : a2b94693beb1d052f2b4935384dd6f7f47143669
author : Fujii Masao <[email protected]>
date : Wed, 8 Jul 2020 21:24:34 +0900
committer: Fujii Masao <[email protected]>
date : Wed, 8 Jul 2020 21:24:34 +0900
Since slot_keep_segs indicates the number of WAL segments not LSN,
its datatype should not be XLogRecPtr.
Back-patch to v13 where this issue was added.
Reported-by: Atsushi Torikoshi
Author: Atsushi Torikoshi, tweaked by Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/transam/xlog.c
doc: Fix inconsistencies in GIN, BRIN and SP-GiST for optional opclass methods
commit : ea5737889f0586c2d46738bc52b97b86369f03e2
author : Michael Paquier <[email protected]>
date : Wed, 8 Jul 2020 10:42:15 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 8 Jul 2020 10:42:15 +0900
The GIN and SP-GiST parts were out-of-sync since the changes of 14903f2,
and the BRIN part was wrong since its introduction in 15cb2bd.
Author: Guillaume Lelarge
Reviewed-by: Daniel Gustafsson
Discussion: https://postgr.es/m/CAECtzeXKvEPEr967h0PRYRi39uTmdEms=oUtc_PWGjZRNN1prw@mail.gmail.com
Backpatch-through: 13
M doc/src/sgml/brin.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/spgist.sgml
Morph pg_replication_slots.min_safe_lsn to safe_wal_size
commit : c54b5891f415df36809de1aeb97e4574d5456d69
author : Alvaro Herrera <[email protected]>
date : Tue, 7 Jul 2020 13:08:00 -0400
committer: Alvaro Herrera <[email protected]>
date : Tue, 7 Jul 2020 13:08:00 -0400
The previous definition of the column was almost universally disliked,
so provide this updated definition which is more useful for monitoring
purposes: a large positive value is good, while zero or a negative value
means danger. This should be operationally more convenient.
Backpatch to 13, where the new column to pg_replication_slots (and the
feature it represents) were added.
Author: Kyotaro Horiguchi <[email protected]>
Author: Álvaro Herrera <[email protected]>
Reported-by: Fujii Masao <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M src/backend/access/transam/xlog.c
M src/backend/catalog/system_views.sql
M src/backend/replication/slotfuncs.c
M src/include/access/xlog_internal.h
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.dat
M src/test/recovery/t/019_replslot_limit.pl
M src/test/regress/expected/rules.out
doc: Add note about possible performance overhead by enabling track_planning.
commit : da6b6ff95bcaadc109ab248471527a2511e853d5
author : Fujii Masao <[email protected]>
date : Mon, 6 Jul 2020 14:27:09 +0900
committer: Fujii Masao <[email protected]>
date : Mon, 6 Jul 2020 14:27:09 +0900
Enabling pg_stat_statements.track_plaanning may incur a noticeable
performance penalty, especially when a fewer kinds of queries are executed
on many concurrent connections. This commit documents this note.
Back-patch to v13 where pg_stat_statements.track_plaanning was added.
Suggested-by: Pavel Stehule
Author: Fujii Masao
Reviewed-by: Pavel Stehule
Discussion: https://postgr.es/m/CAFj8pRC9Jxa8r5i0TNBWLb8mzuaYzEoLq3QOvip0jVpHPOLbVA@mail.gmail.com
M doc/src/sgml/pgstatstatements.sgml
Remove extra whitespace in comments atop ReorderBufferCheckMemoryLimit.
commit : e163f3a2b1d987f83e291e86969ed4a91ded6abb
author : Amit Kapila <[email protected]>
date : Mon, 6 Jul 2020 08:36:58 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 6 Jul 2020 08:36:58 +0530
Backpatch-through: 13, where it was introduced
M src/backend/replication/logical/reorderbuffer.c
Remove unused function parameter in end_parallel_vacuum.
commit : f92c24ec9f61b3502007e2a9a6de4c236844254d
author : Amit Kapila <[email protected]>
date : Mon, 6 Jul 2020 08:24:12 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 6 Jul 2020 08:24:12 +0530
Author: Vignesh C
Reviewed-by: Sawada Masahiko
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CALDaNm3Ppt71NafGY5mk3V2i3Q+mm93pVibDq-0NpW7WU67Jcg@mail.gmail.com
M src/backend/access/heap/vacuumlazy.c
doc: Spell checking
commit : ffb23488af5e6776935c46370465dcc1704e7540
author : Peter Eisentraut <[email protected]>
date : Sun, 5 Jul 2020 15:37:57 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 5 Jul 2020 15:37:57 +0200
M contrib/pg_stat_statements/pg_stat_statements.c
M doc/src/sgml/backup-manifest.sgml
M doc/src/sgml/extend.sgml
M doc/src/sgml/fdwhandler.sgml
M doc/src/sgml/glossary.sgml
M doc/src/sgml/maintenance.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/ref/create_table.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_verifybackup.sgml
M doc/src/sgml/ref/pgbench.sgml
doc: Fix incorrect reference to textout in plpgsql examples
commit : 45f165b18b72abb1e4579a3cca0862a4e5cb8b6b
author : Michael Paquier <[email protected]>
date : Sun, 5 Jul 2020 19:36:12 +0900
committer: Michael Paquier <[email protected]>
date : Sun, 5 Jul 2020 19:36:12 +0900
This error has survived for 22 years, and has been introduced by
da63386.
Reported-by: Erwin Brandstetter
Discussion: https://postgr.es/m/CAGHENJ57wogGOvGXo5LgWYcqswxafLck8ELqHDR+zrkTPgs_OQ@mail.gmail.com
Backpatch-through: 9.5
M doc/src/sgml/plpgsql.sgml
Rename enable_incrementalsort for clarity
commit : 94e454cddfbae5e32ae7bb70fedd24f243cd486a
author : Peter Eisentraut <[email protected]>
date : Sun, 5 Jul 2020 11:41:52 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 5 Jul 2020 11:41:52 +0200
Author: James Coleman <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/df652910-e985-9547-152c-9d4357dc3979%402ndquadrant.com
M doc/src/sgml/config.sgml
M doc/src/sgml/release-13.sgml
M src/backend/optimizer/path/allpaths.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/planner.c
M src/backend/utils/misc/guc.c
M src/backend/utils/misc/postgresql.conf.sample
M src/include/optimizer/cost.h
M src/test/regress/expected/incremental_sort.out
M src/test/regress/expected/partition_aggregate.out
M src/test/regress/expected/sysviews.out
M src/test/regress/sql/incremental_sort.sql
M src/test/regress/sql/partition_aggregate.sql
Fix "ignoring return value" complaints from commit 96d1f423f9
commit : c536da177cbbc9e30de17a0a445b53d79a5bbe7f
author : Joe Conway <[email protected]>
date : Sat, 4 Jul 2020 13:47:07 -0400
committer: Joe Conway <[email protected]>
date : Sat, 4 Jul 2020 13:47:07 -0400
The cfbot and some BF animals are complaining about the previous
read_binary_file commit because of ignoring return value of ‘fread’.
So let's make everyone happy by testing the return value even though
not strictly needed.
Reported by Justin Pryzby, and suggested patch by Tom Lane. Backpatched
to v11 same as the previous commit.
Reported-By: Justin Pryzby
Reviewed-By: Tom Lane
Discussion: https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
Backpatch-through: 11
M src/backend/utils/adt/genfile.c
Read until EOF vice stat-reported size in read_binary_file
commit : 0025c3a2c295459002711e0b37e48e3b067a83ba
author : Joe Conway <[email protected]>
date : Sat, 4 Jul 2020 06:28:21 -0400
committer: Joe Conway <[email protected]>
date : Sat, 4 Jul 2020 06:28:21 -0400
read_binary_file(), used by SQL functions pg_read_file() and friends,
uses stat to determine file length to read, when not passed an explicit
length as an argument. This is problematic, for example, if the file
being read is a virtual file with a stat-reported length of zero.
Arrange to read until EOF, or StringInfo data string lenth limit, is
reached instead.
Original complaint and patch by me, with significant review, corrections,
advice, and code optimizations by Tom Lane. Backpatched to v11. Prior to
that only paths relative to the data and log dirs were allowed for files,
so no "zero length" files were reachable anyway.
Reviewed-By: Tom Lane
Discussion: https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
Backpatch-through: 11
M contrib/adminpack/expected/adminpack.out
M src/backend/utils/adt/genfile.c
Clamp total-tuples estimates for foreign tables to ensure planner sanity.
commit : 9233624b128b41fd410712a7223821878f1943b0
author : Tom Lane <[email protected]>
date : Fri, 3 Jul 2020 19:01:21 -0400
committer: Tom Lane <[email protected]>
date : Fri, 3 Jul 2020 19:01:21 -0400
After running GetForeignRelSize for a foreign table, adjust rel->tuples
to be at least as large as rel->rows. This prevents bizarre behavior
in estimate_num_groups() and perhaps other places, especially in the
scenario where rel->tuples is zero because pg_class.reltuples is
(suggesting that ANALYZE has never been run for the table). As things
stood, we'd end up estimating one group out of any GROUP BY on such a
table, whereas the default group-count estimate is more likely to result
in a sane plan.
Also, clarify in the documentation that GetForeignRelSize has the option
to override the rel->tuples value if it has a better idea of what to use
than what is in pg_class.reltuples.
Per report from Jeff Janes. Back-patch to all supported branches.
Patch by me; thanks to Etsuro Fujita for review
Discussion: https://postgr.es/m/CAMkU=1xNo9cnan+Npxgz0eK7394xmjmKg-QEm8wYG9P5-CcaqQ@mail.gmail.com
M doc/src/sgml/fdwhandler.sgml
M src/backend/optimizer/path/allpaths.c
Fix temporary tablespaces for shared filesets some more.
commit : cfe89f5e6b7874e89dac7d9511b1894a7d033870
author : Tom Lane <[email protected]>
date : Fri, 3 Jul 2020 17:01:34 -0400
committer: Tom Lane <[email protected]>
date : Fri, 3 Jul 2020 17:01:34 -0400
Commit ecd9e9f0b fixed the problem in the wrong place, causing unwanted
side-effects on the behavior of GetNextTempTableSpace(). Instead,
let's make SharedFileSetInit() responsible for subbing in the value
of MyDatabaseTableSpace when the default tablespace is called for.
The convention about what is in the tempTableSpaces[] array is
evidently insufficiently documented, so try to improve that.
It also looks like SharedFileSetInit() is doing the wrong thing in the
case where temp_tablespaces is empty. It was hard-wiring use of the
pg_default tablespace, but it seems like using MyDatabaseTableSpace
is more consistent with what happens for other temp files.
Back-patch the reversion of PrepareTempTablespaces()'s behavior to
9.5, as ecd9e9f0b was. The changes in SharedFileSetInit() go back
to v11 where that was introduced. (Note there is net zero code change
before v11 from these two patch sets, so nothing to release-note.)
Magnus Hagander and Tom Lane
Discussion: https://postgr.es/m/CABUevExg5YEsOvqMxrjoNvb3ApVyH+9jggWGKwTDFyFCVWczGQ@mail.gmail.com
M src/backend/commands/tablespace.c
M src/backend/storage/file/fd.c
M src/backend/storage/file/sharedfileset.c
Fix temporary tablespaces for shared filesets
commit : 1d94c3965450417ebb0e0fd73ea636df823feeed
author : Magnus Hagander <[email protected]>
date : Fri, 3 Jul 2020 15:09:06 +0200
committer: Magnus Hagander <[email protected]>
date : Fri, 3 Jul 2020 15:09:06 +0200
A likely copy/paste error in 98e8b480532 from back in 2004 would
cause temp tablespace to be reset to InvalidOid if temp_tablespaces
was set to the same value as the primary tablespace in the database.
This would cause shared filesets (such as for parallel hash joins)
to ignore them, putting the temporary files in the default tablespace
instead of the configured one. The bug is in the old code, but it
appears to have been exposed only once we had shared filesets.
Reviewed-By: Daniel Gustafsson
Discussion: https://postgr.es/m/CABUevExg5YEsOvqMxrjoNvb3ApVyH+9jggWGKwTDFyFCVWczGQ@mail.gmail.com
Backpatch-through: 9.5
M src/backend/commands/tablespace.c
doc: Correct description of restart_lsn in pg_replication_slots
commit : 95a604eaebd145729d9f8c936b37703a212f27fd
author : Fujii Masao <[email protected]>
date : Fri, 3 Jul 2020 12:08:35 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 3 Jul 2020 12:08:35 +0900
Previously the document explained that restart_lsn indicates the LSN of
oldest WAL won't be automatically removed during checkpoints. But
since v13 this was no longer true thanks to max_slot_wal_keep_size.
Back-patch to v13 where max_slot_wal_keep_size was added.
Author: Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
Change default of pg_stat_statements.track_planning to off.
commit : 8d459762b10372e48845a49b305f4e1e165fe173
author : Fujii Masao <[email protected]>
date : Fri, 3 Jul 2020 11:35:22 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 3 Jul 2020 11:35:22 +0900
Since v13 pg_stat_statements is allowed to track the planning time of
statements when track_planning option is enabled. Its default was on.
But this feature could cause more terrible spinlock contentions in
pg_stat_statements. As a result of this, Robins Tharakan reported that
v13 beta1 showed ~45% performance drop at high DB connection counts
(when compared with v12.3) during fully-cached SELECT-only test using
pgbench.
To avoid this performance regression by the default setting,
this commit changes default of pg_stat_statements.track_planning to off.
Back-patch to v13 where pg_stat_statements.track_planning was introduced.
Reported-by: Robins Tharakan
Author: Fujii Masao
Reviewed-by: Julien Rouhaud
Discussion: https://postgr.es/m/[email protected]
M contrib/pg_stat_statements/expected/pg_stat_statements.out
M contrib/pg_stat_statements/pg_stat_statements.c
M contrib/pg_stat_statements/sql/pg_stat_statements.sql
M doc/src/sgml/pgstatstatements.sgml
Improve vacuum error context handling.
commit : 83fa48c8cd26c9a8171a85e786bb6ae1c5b04139
author : Amit Kapila <[email protected]>
date : Wed, 1 Jul 2020 08:06:00 +0530
committer: Amit Kapila <[email protected]>
date : Wed, 1 Jul 2020 08:06:00 +0530
Use separate functions to save and restore error context information as
that made code easier to understand. Also, make it clear that the index
information required for error context is sane.
Author: Andres Freund, Justin Pryzby, Amit Kapila
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/CAA4eK1LWo+v1OWu=Sky27GTGSCuOmr7iaURNbc5xz6jO+SaPeA@mail.gmail.com
M src/backend/access/heap/vacuumlazy.c
M src/tools/pgindent/typedefs.list
Fix removal of files generated by TAP tests for SSL
commit : 48d50ee9aff9be0817a175418e100b7d7fa55a0f
author : Michael Paquier <[email protected]>
date : Wed, 1 Jul 2020 10:47:29 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 1 Jul 2020 10:47:29 +0900
001_ssltests.pl and 002_scram.pl both generated an extra file for a
client key used in the tests that were not removed. In Debian, this
causes repeated builds to fail.
The code refactoring done in 4dc6355 broke the cleanup done in
001_ssltests.pl, and the new tests added in 002_scram.pl via d6e612f
forgot the removal of one file. While on it, fix a second issue
introduced in 002_scram.pl where we use the same file name in 001 and
002 for the temporary client key whose permissions are changed in the
test, as using the same file name in both tests could cause failures
with parallel jobs of src/test/ssl/ if one test removes a file still
needed by the second test.
Reported-by: Felix Lechner
Author: Daniel Gustafsson, Felix Lechner
Reviewed-by: Tom Lane, Michael Paquier
Discussion: https://postgr.es/m/CAFHYt543sjX=Cm_aEeoejStyP47C+Y3+Wh6WbirLXsgUMaw7iw@mail.gmail.com
Backpatch-through: 13
M src/test/ssl/t/001_ssltests.pl
M src/test/ssl/t/002_scram.pl
Further adjustments to Hashagg EXPLAIN ANALYZE output
commit : d73e9a57bf5bd977d9bf36bc07c77a1acf45e35b
author : David Rowley <[email protected]>
date : Wed, 1 Jul 2020 12:16:42 +1200
committer: David Rowley <[email protected]>
date : Wed, 1 Jul 2020 12:16:42 +1200
The "Disk Usage" and "HashAgg Batches" properties in the EXPLAIN ANALYZE
output for HashAgg were previously only shown if the number of batches
was greater than 0. Here we change this so that these properties are
always shown for EXPLAIN ANALYZE formats other than "text". The idea here
is that since the HashAgg could have spilled to disk if there had been
more data or groups to aggregate, then it's relevant that we're clear in
the EXPLAIN ANALYZE output when no spilling occurred in this particular
execution of the given plan.
For the "text" EXPLAIN format, we still hide these properties when no
spilling occurs. This EXPLAIN format is designed to be easy for humans
to read. To maintain the readability we have a higher threshold for which
properties we display for this format.
Discussion: https://postgr.es/m/CAApHDvo_dmNozQQTmN-2jGp1vT%3Ddxx7Q0vd%2BMvD1cGpv2HU%3DSg%40mail.gmail.com
Backpatch-through: 13, where the hashagg spilling code was added.
M src/backend/commands/explain.c
Fix ecpg crash with bytea and cursor variables.
commit : 70dc45e8cb76e0c612648ccefc433b7fb2b16c2b
author : Michael Meskes <[email protected]>
date : Tue, 30 Jun 2020 17:31:08 +0200
committer: Michael Meskes <[email protected]>
date : Tue, 30 Jun 2020 17:31:08 +0200
Author: Jehan-Guillaume de Rorthais <[email protected]>
M src/interfaces/ecpg/preproc/ecpg.header
M src/interfaces/ecpg/test/expected/sql-bytea.c
M src/interfaces/ecpg/test/expected/sql-bytea.stderr
M src/interfaces/ecpg/test/expected/sql-bytea.stdout
M src/interfaces/ecpg/test/sql/bytea.pgc
doc: clarify that storage parameter values are optional
commit : 0bddb3a95995008ed116858ddde9a89e01659dae
author : Bruce Momjian <[email protected]>
date : Tue, 30 Jun 2020 12:26:51 -0400
committer: Bruce Momjian <[email protected]>
date : Tue, 30 Jun 2020 12:26:51 -0400
In a few cases, the documented syntax specified storage parameter values
as required.
Reported-by: [email protected]
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ref/alter_index.sgml
M doc/src/sgml/ref/alter_materialized_view.sgml
M doc/src/sgml/ref/alter_table.sgml
M doc/src/sgml/ref/create_index.sgml
doc: change pg_upgrade wal_level to be not minimal
commit : c7ff80ffaa933d26298ce2d4eb7bd90d56c16668
author : Bruce Momjian <[email protected]>
date : Tue, 30 Jun 2020 11:55:53 -0400
committer: Bruce Momjian <[email protected]>
date : Tue, 30 Jun 2020 11:55:53 -0400
Previously it was specified to be only replica.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ref/pgupgrade.sgml
Remove support for timezone "posixrules" file.
commit : 21aac2ff96e37c75cc6814b86d4b55172090413c
author : Tom Lane <[email protected]>
date : Mon, 29 Jun 2020 18:55:01 -0400
committer: Tom Lane <[email protected]>
date : Mon, 29 Jun 2020 18:55:01 -0400
The IANA tzcode library has a feature to read a time zone file named
"posixrules" and apply the daylight-savings transition dates and times
therein, when it is given a POSIX-style time zone specification that
lacks an explicit transition rule. However, there's a problem with
that code: it doesn't work for dates past the Y2038 time_t rollover.
(Effectively, all times beyond that point are treated as standard
time.) The IANA crew regard this feature as legacy, so their plan is
to remove it not fix it. The time frame in which that will happen
is unclear, but presumably it'll happen well before 2038.
Moreover, effective with the next IANA data update (probably this
fall), the recommended default will be to not install a "posixrules"
file in the first place. The time frame in which tzdata packagers
might adopt that suggestion is likewise unclear, but at least some
platforms will probably do it in the next year or so. While we could
ignore that recommendation so far as PG-supplied tzdata trees are
concerned, builds using --with-system-tzdata will be subject to
whatever the platform's tzdata packager decides to do.
Thus, whether or not we do anything, some increasing fraction of
Postgres users will be exposed to the behavior observed when there
is no "posixrules" file; and if we do nothing, we'll have essentially
no control over the timing of that change.
The best thing to do to ameliorate the uncertainty seems to be to
proactively remove the posixrules-reading feature. If we do that in
a scheduled release then at least we can release-note the behavioral
change, rather than having users be surprised by it after a routine
tzdata update.
The change in question is fairly minor anyway: to be affected,
you have to be using a POSIX-style timezone spec, it has to not
have an explicit rule, and it has to not be one of the four traditional
continental-USA zone names (EST5EDT, CST6CDT, MST7MDT, or PST8PDT),
as those are special-cased. Since the default "posixrules" file
provides USA DST rules, the number of people who are likely to find
such a zone spec useful is probably quite small. Moreover, the
fallback behavior with no explicit rule and no "posixrules" file is to
apply current USA rules, so the only thing that really breaks is the
DST transitions in years before 2007 (and you get the countervailing
fix that transitions after 2038 will be applied).
Now, some installations might have replaced the "posixrules" file,
allowing e.g. EU rules to be applied to a POSIX-style timezone spec.
That won't work anymore. But it's not exactly clear why this solution
would be preferable to using a regular named zone. In any case, given
the Y2038 issue, we need to be pushing users to stop depending on this.
Back-patch into v13; it hasn't been released yet, so it seems OK to
change its behavior. (Personally I think we ought to back-patch
further, but I've been outvoted.)
Discussion: https://postgr.es/m/[email protected]
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/datetime.sgml
M src/timezone/Makefile
M src/timezone/README
M src/timezone/localtime.c
M src/tools/msvc/Install.pm
Fix documentation of "must be vacuumed within" warning.
commit : b86be844a40c439e44ea6fc974df37b7c2c9c832
author : Noah Misch <[email protected]>
date : Sat, 27 Jun 2020 22:05:04 -0700
committer: Noah Misch <[email protected]>
date : Sat, 27 Jun 2020 22:05:04 -0700
Warnings start 10M transactions before xidStopLimit, which is 11M
transactions before wraparound. The sample WARNING output showed a
value greater than 11M, and its HINT message predated commit
25ec228ef760eb91c094cc3b6dea7257cc22ffb5. Hence, the sample was
impossible. Back-patch to 9.5 (all supported versions).
M doc/src/sgml/maintenance.sgml
Fix list of SSL error codes for older OpenSSL versions.
commit : e5f63db995514473f7b3421bc80f8e7715cd6d35
author : Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 13:26:17 -0400
committer: Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 13:26:17 -0400
Apparently 1.0.1 lacks SSL_R_VERSION_TOO_HIGH and
SSL_R_VERSION_TOO_LOW. Per buildfarm.
M src/backend/libpq/be-secure-openssl.c
M src/interfaces/libpq/fe-secure-openssl.c
Add hints about protocol-version-related SSL connection failures.
commit : e2bcd99be18c67fea575a9789ebafd650e6e1076
author : Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 12:47:58 -0400
committer: Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 12:47:58 -0400
OpenSSL's native reports about problems related to protocol version
restrictions are pretty opaque and inconsistent. When we get an
SSL error that is plausibly due to this, emit a hint message that
includes the range of SSL protocol versions we (think we) are
allowing. This should at least get the user thinking in the right
direction to resolve the problem, even if the hint isn't totally
accurate, which it might not be for assorted reasons.
Back-patch to v13 where we increased the default minimum protocol
version, thereby increasing the risk of this class of failure.
Patch by me, reviewed by Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M src/backend/libpq/be-secure-openssl.c
M src/include/common/openssl.h
M src/interfaces/libpq/fe-secure-openssl.c
Change libpq's default ssl_min_protocol_version to TLSv1.2.
commit : 16412c78403e8ebcb06e34ac1eb74ff8dd299495
author : Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 12:20:33 -0400
committer: Tom Lane <[email protected]>
date : Sat, 27 Jun 2020 12:20:33 -0400
When we initially created this parameter, in commit ff8ca5fad, we left
the default as "allow any protocol version" on grounds of backwards
compatibility. However, that's inconsistent with the backend's default
since b1abfec82; protocol versions prior to 1.2 are not considered very
secure; and OpenSSL has had TLSv1.2 support since 2012, so the number
of PG servers that need a lesser minimum is probably quite small.
On top of those things, it emerges that some popular distros (including
Debian and RHEL) set MinProtocol=TLSv1.2 in openssl.cnf. Thus, far
from having "allow any protocol version" behavior in practice, what
we actually have as things stand is a platform-dependent lower limit.
So, change our minds and set the min version to TLSv1.2. Anybody
wanting to connect with a new libpq to a pre-2012 server can either
set ssl_min_protocol_version=TLSv1 or accept the fallback to non-SSL.
Back-patch to v13 where the aforementioned patches appeared.
Patch by me, reviewed by Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/fe-connect.c
Persist slot invalidation correctly
commit : 3b4b541777f0b85df7626623ef78df0ea48ca5dc
author : Alvaro Herrera <[email protected]>
date : Fri, 26 Jun 2020 20:41:29 -0400
committer: Alvaro Herrera <[email protected]>
date : Fri, 26 Jun 2020 20:41:29 -0400
We failed to save slot to disk after invalidating it, so the state was
lost in case of server restart or crash. Fix by marking it dirty and
flushing.
Also, if the slot is known invalidated we don't need to reason about the
LSN at all -- it's known invalidated. Only test the LSN if the slot is
known not invalidated.
Author: Fujii Masao <[email protected]>
Author: Kyotaro Horiguchi <[email protected]>
Reviewed-by: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/slot.c
M src/backend/replication/slotfuncs.c
doc: PG 13 relnotes; remove FOREIGN keyword item and clarify
commit : 1f601b14e3a7c5ca035cfb59575462004a8c3125
author : Bruce Momjian <[email protected]>
date : Fri, 26 Jun 2020 18:24:12 -0400
committer: Bruce Momjian <[email protected]>
date : Fri, 26 Jun 2020 18:24:12 -0400
Clarify --include-foreign-data option addition.
Reported-by: Masahiko Sawada, Alvaro Herrera
Discussion: https://postgr.es/m/CA+fd4k62hYtce8VrEMGm6Y+1c24QBgCksXvOaH5kE8PbY+68sA@mail.gmail.com
Backpatch-through: 13 only
M doc/src/sgml/release-13.sgml
Doc: explain that "timestamp - timestamp" applies justify_hours().
commit : 098868b57687ef9c5e3cd9dff469594c6a1c6d10
author : Tom Lane <[email protected]>
date : Fri, 26 Jun 2020 13:54:01 -0400
committer: Tom Lane <[email protected]>
date : Fri, 26 Jun 2020 13:54:01 -0400
Back-patch to v13; before that, there's not really space for this
kind of detail.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/func.sgml
doc: mention trigger helper functions in CREATE TRIGGER docs
commit : 08671057e025b48136d4eed5477f287ffce217b0
author : Bruce Momjian <[email protected]>
date : Thu, 25 Jun 2020 18:33:28 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 25 Jun 2020 18:33:28 -0400
Reported-by: [email protected]
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ref/create_trigger.sgml
docs: clarify that CREATE DATABASE does not copy db permissions
commit : 563ed36d5b4819066e13f5272bf1a02cf5dac0bf
author : Bruce Momjian <[email protected]>
date : Thu, 25 Jun 2020 18:22:44 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 25 Jun 2020 18:22:44 -0400
That is, those database permissions set by GRANT.
Diagnosed-by: Joseph Nahmias
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ref/create_database.sgml
Fix misuse of table_index_fetch_tuple_check().
commit : 8c2010f12344ed8834c6f63406a78e5843ebec69
author : Peter Geoghegan <[email protected]>
date : Thu, 25 Jun 2020 10:55:26 -0700
committer: Peter Geoghegan <[email protected]>
date : Thu, 25 Jun 2020 10:55:26 -0700
Commit 0d861bbb, which added deduplication to nbtree, had
_bt_check_unique() pass a TID to table_index_fetch_tuple_check() that
isn't safe to mutate. table_index_fetch_tuple_check()'s tid argument is
modified when the TID in question is not the latest visible tuple in a
hot chain, though this wasn't documented.
To fix, go back to using a local copy of the TID in _bt_check_unique(),
and update comments above table_index_fetch_tuple_check().
Backpatch: 13-, where B-Tree deduplication was introduced.
M src/backend/access/nbtree/nbtinsert.c
M src/backend/access/table/tableam.c
M src/include/access/tableam.h
Doc: correct nitpicky mistakes in array_position/array_positions examples.
commit : 185c6bc4aef1201b7d0f2c4e9c8893c4a663dfd4
author : Tom Lane <[email protected]>
date : Thu, 25 Jun 2020 13:28:30 -0400
committer: Tom Lane <[email protected]>
date : Thu, 25 Jun 2020 13:28:30 -0400
Daniel Gustafsson and Erik Rijkers, per report from nick@cleaton
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/array.sgml
Remove erroneous assertion from pg_copy_logical_replication_slot().
commit : 126c8fcec790652dd0cb755fdeedf2c02c8d8079
author : Fujii Masao <[email protected]>
date : Thu, 25 Jun 2020 11:13:13 +0900
committer: Fujii Masao <[email protected]>
date : Thu, 25 Jun 2020 11:13:13 +0900
If restart_lsn of logical replication slot gets behind more than
max_slot_wal_keep_size from the current LSN, the logical replication slot
would be invalidated and its restart_lsn is reset to an invalid LSN.
If this logical replication slot with an invalid restart_lsn was specified as
the source slot in pg_copy_logical_replication_slot(), the function caused
the assertion failure unexpectedly.
This assertion was added because restart_lsn should not be invalid before.
But in v13, it can be invalid thanks to max_slot_wal_keep_size. So since this
assertion is no longer useful, this commit removes it.
This commit also changes the errcode in the error message that
pg_copy_logical_replication_slot() emits when the slot with an invalid
restart_lsn is specified, to more appropriate one.
Back-patch to v13 where max_slot_wal_keep_size was added and
the assertion was no longer valid.
Author: Fujii Masao
Reviewed-by: Alvaro Herrera, Kyotaro Horiguchi
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/slotfuncs.c
Fix compiler warning induced by commit d8b15eeb8.
commit : 086bef8ac8b3635e7af94ac41e92dfc016b87e90
author : Tom Lane <[email protected]>
date : Wed, 24 Jun 2020 15:47:30 -0400
committer: Tom Lane <[email protected]>
date : Wed, 24 Jun 2020 15:47:30 -0400
I forgot that INT64_FORMAT can't be used with sscanf on Windows.
Use the same trick of sscanf'ing into a temp variable as we do in
some other places in zic.c.
The upstream IANA code avoids the portability problem by relying on
<inttypes.h>'s SCNdFAST64 macro. Once we're requiring C99 in all
branches, we should do likewise and drop this set of diffs from
upstream. For now, though, a hack seems fine, since we do not
actually care about leapseconds anyway.
Discussion: https://postgr.es/m/[email protected]
M src/timezone/zic.c
Adjust max_slot_wal_keep_size behavior per review
commit : 6f7a862bed3a49283c74c0adf207172002e3e03c
author : Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:23:39 -0400
committer: Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:23:39 -0400
In pg_replication_slot, change output from normal/reserved/lost to
reserved/extended/unreserved/ lost, which better expresses the possible
states particularly near the time where segments are no longer safe but
checkpoint has not run yet.
Under the new definition, reserved means the slot is consuming WAL
that's still under the normal WAL size constraints; extended means it's
consuming WAL that's being protected by wal_keep_segments or the slot
itself, whose size is below max_slot_wal_keep_size; unreserved means the
WAL is no longer safe, but checkpoint has not yet removed those files.
Such as slot is in imminent danger, but can still continue for a little
while and may catch up to the reserved WAL space.
Also, there were some bugs in the calculations used to report the
status; fixed those.
Backpatch to 13.
Reported-by: Fujii Masao <[email protected]>
Author: Kyotaro Horiguchi <[email protected]>
Reviewed-by: Fujii Masao <[email protected]>
Reviewed-by: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M src/backend/access/transam/xlog.c
M src/backend/replication/slotfuncs.c
M src/include/access/xlog.h
M src/test/recovery/t/019_replslot_limit.pl
Save slot's restart_lsn when invalidated due to size
commit : 12e52ba5a76e56aacdfbbb269e6b45c53d80c477
author : Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:15:17 -0400
committer: Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:15:17 -0400
We put it aside as invalidated_at, which let us show "lost" in
pg_replication slot. Prior to this change, the state value was reported
as NULL.
Backpatch to 13.
Author: Kyotaro Horiguchi <[email protected]>
Reviewed-by: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/slot.c
M src/backend/replication/slotfuncs.c
M src/include/access/xlog.h
M src/include/replication/slot.h
M src/test/recovery/t/019_replslot_limit.pl
Add parens to ConvertToXSegs macro
commit : 411493d701e2f97e778dc1ff14fb7169eea2e94c
author : Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:00:37 -0400
committer: Alvaro Herrera <[email protected]>
date : Wed, 24 Jun 2020 14:00:37 -0400
The current definition is dangerous. No bugs exist in our code at
present, but backpatch to 11 nonetheless where it was introduced.
Author: Álvaro Herrera <[email protected]>
M src/backend/access/transam/xlog.c
Stamp 13beta2.
commit : bc4d7817e0cbd26998ebaa682772bf6bc579c302
author : Tom Lane <[email protected]>
date : Mon, 22 Jun 2020 17:16:25 -0400
committer: Tom Lane <[email protected]>
date : Mon, 22 Jun 2020 17:16:25 -0400
M configure
M configure.in
Doc fixup for hashagg_avoid_disk_plan GUC.
commit : d33f33539d7f90d024a1dcb73b74c15b07349be8
author : Jeff Davis <[email protected]>
date : Mon, 22 Jun 2020 12:14:55 -0700
committer: Jeff Davis <[email protected]>
date : Mon, 22 Jun 2020 12:14:55 -0700
Reported-by: Justin Pryzby
Discussion: https://postgr.es/m/[email protected]
Backport-through: 13
M doc/src/sgml/config.sgml
Undo double-quoting of index names in non-text EXPLAIN output formats.
commit : 57f8b9913b912f2bdfe24b73d44b9713e328ee2e
author : Tom Lane <[email protected]>
date : Mon, 22 Jun 2020 11:46:41 -0400
committer: Tom Lane <[email protected]>
date : Mon, 22 Jun 2020 11:46:41 -0400
explain_get_index_name() applied quote_identifier() to the index name.
This is fine for text output, but the non-text output formats all have
their own quoting conventions and would much rather start from the
actual index name. For example in JSON you'd get something like
"Index Name": "\"My Index\"",
which is surely not desirable, especially when the same does not
happen for table names. Hence, move the responsibility for applying
quoting out to the callers, where it can go into already-existing
special code paths for text format.
This changes the API spec for users of explain_get_index_name_hook:
before, they were supposed to apply quote_identifier() if necessary,
now they should not. Research suggests that the only publicly
available user of the hook is hypopg, and it actually forgot to
apply quoting anyway, so it's fine. (In any case, there's no
behavioral change for the output of a hook as seen in non-text
EXPLAIN formats, so this won't break any case that programs should
be relying on.)
Digging in the commit logs, it appears that quoting was included in
explain_get_index_name's duties when commit 604ffd280 invented it;
and that was fine at the time because we only had text output format.
This should have been rethought when non-text formats were invented,
but it wasn't.
This is a fairly clear bug for users of non-text EXPLAIN formats,
so back-patch to all supported branches.
Per bug #16502 from Maciek Sakrejda. Patch by me (based on
investigation by Euler Taveira); thanks to Julien Rouhaud for review.
Discussion: https://postgr.es/m/[email protected]
M src/backend/commands/explain.c
Translation updates
commit : 793e5ad3cb7f8a8345881c7057618228546de3c6
author : Peter Eisentraut <[email protected]>
date : Mon, 22 Jun 2020 14:08:30 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 22 Jun 2020 14:08:30 +0200
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 434134899af310153f7511ccaa3f376e4c817e66
M src/backend/po/de.po
M src/backend/po/sv.po
M src/bin/initdb/po/es.po
M src/bin/pg_dump/po/es.po
M src/bin/pg_rewind/po/sv.po
M src/bin/psql/po/de.po
M src/bin/psql/po/sv.po
M src/bin/scripts/po/de.po
M src/bin/scripts/po/sv.po
M src/interfaces/ecpg/preproc/po/es.po
M src/interfaces/libpq/po/de.po
M src/interfaces/libpq/po/sv.po
M src/pl/plpgsql/src/po/de.po
M src/pl/plpgsql/src/po/sv.po
Language fixes for docs related to opclass options
commit : 70004a2a0c52e05f4aa67541fb165715a3981204
author : Alexander Korotkov <[email protected]>
date : Sun, 21 Jun 2020 04:48:03 +0300
committer: Alexander Korotkov <[email protected]>
date : Sun, 21 Jun 2020 04:48:03 +0300
Discussion: https://postgr.es/m/20200620232145.GB17995%40telsasoft.com
Author: Justin Pryzby
Backpatch-through: 13
M doc/src/sgml/brin.sgml
M doc/src/sgml/btree.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/gist.sgml
M doc/src/sgml/spgist.sgml
M doc/src/sgml/xindex.sgml
Doc: Tweak description of B-Tree duplicate tuples.
commit : f7e4989d1c65c376ca4aba2d39dc81cd1eaefe67
author : Peter Geoghegan <[email protected]>
date : Sat, 20 Jun 2020 17:34:06 -0700
committer: Peter Geoghegan <[email protected]>
date : Sat, 20 Jun 2020 17:34:06 -0700
Defining duplicates as "close by" to each other was unclear. Simplify
the definition.
Backpatch: 13-, where deduplication was introduced (by commit 0d861bbb)
M doc/src/sgml/btree.sgml
Minor corrections to docs related to opclass options
commit : b56d91ebd2bef20f9adbcc61c1279083a91bdf3e
author : Alexander Korotkov <[email protected]>
date : Sun, 21 Jun 2020 00:35:42 +0300
committer: Alexander Korotkov <[email protected]>
date : Sun, 21 Jun 2020 00:35:42 +0300
Reported-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-WzmwhYbxuoL0WjTLaiCxW3gj6qadeNpBhWAo_KZsE5-FGw%40mail.gmail.com
M doc/src/sgml/btree.sgml
M doc/src/sgml/spgist.sgml
Fix masking of SP-GiST pages during xlog consistency check
commit : 39aafc88c4b4ac281df8b2c2b8be72d4e4d99e9f
author : Alexander Korotkov <[email protected]>
date : Sat, 20 Jun 2020 17:34:51 +0300
committer: Alexander Korotkov <[email protected]>
date : Sat, 20 Jun 2020 17:34:51 +0300
spg_mask() didn't take into account that pd_lower equal to SizeOfPageHeaderData
is still valid value. This commit fixes that. Backpatch to 11, where
spg_mask() pg_lower check was introduced.
Reported-by: Michael Paquier
Discussion: https://postgr.es/m/20200615131405.GM52676%40paquier.xyz
Backpatch-through: 11
M src/backend/access/spgist/spgxlog.c
Add documentation for opclass options
commit : e6c6f427e356e3706ce2f0ae7e7e94e5501bbc13
author : Alexander Korotkov <[email protected]>
date : Sat, 20 Jun 2020 13:34:54 +0300
committer: Alexander Korotkov <[email protected]>
date : Sat, 20 Jun 2020 13:34:54 +0300
911e7020770 added opclass options and adjusted documentation for each
particular affected opclass. However, documentation for extendability was
not adjusted. This commit adjusts documentation for interfaces of index AMs
and opclasses.
Discussion: https://postgr.es/m/CAH2-WzmQnW6%2Bz5F9AW%2BSz%2BzEcEvXofTwh_A9J3%3D_WA-FBP0wYg%40mail.gmail.com
Author: Alexander Korotkov
Reported-by: Peter Geoghegan
Reviewed-by: Peter Geoghegan
M doc/src/sgml/brin.sgml
M doc/src/sgml/btree.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/gist.sgml
M doc/src/sgml/indexam.sgml
M doc/src/sgml/spgist.sgml
M doc/src/sgml/xindex.sgml
Ensure write failure reports no-disk-space
commit : e74559c9763049ff4d3edd26817bad58c13113a1
author : Alvaro Herrera <[email protected]>
date : Fri, 19 Jun 2020 16:46:07 -0400
committer: Alvaro Herrera <[email protected]>
date : Fri, 19 Jun 2020 16:46:07 -0400
A few places calling fwrite and gzwrite were not setting errno to ENOSPC
when reporting errors, as is customary; this led to some failures being
reported as
"could not write file: Success"
which makes us look silly. Make a few of these places in pg_dump and
pg_basebackup use our customary pattern.
Backpatch-to: 9.5
Author: Justin Pryzby <[email protected]>
Author: Tom Lane <[email protected]>
Author: Álvaro Herrera <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_basebackup/pg_basebackup.c
M src/bin/pg_dump/pg_backup_directory.c
Future-proof regression tests against possibly-missing posixrules file.
commit : 577dcf890cdb2621cf21ded1a2b6c96c40441f3d
author : Tom Lane <[email protected]>
date : Fri, 19 Jun 2020 13:55:21 -0400
committer: Tom Lane <[email protected]>
date : Fri, 19 Jun 2020 13:55:21 -0400
The IANA time zone folk have deprecated use of a "posixrules" file in
the tz database. While for now it's our choice whether to keep
supplying one in our own builds, installations built with
--with-system-tzdata will soon be needing to cope with that file not
being present, at least on some platforms.
This causes a problem for the horology test, which expected the
nonstandard POSIX zone spec "CST7CDT" to apply pre-2007 US daylight
savings rules. That does happen if the posixrules file supplies such
information, but otherwise the test produces undesired results.
To fix, add an explicit transition date rule that matches 2005 practice.
(We could alternatively have switched the test to use some real time
zone, but it seems useful to have coverage of this type of zone spec.)
While at it, update a documentation example that also relied on
"CST7CDT"; use a real-world zone name instead. Also, document why
the zone names EST5EDT, CST6CDT, MST7MDT, PST8PDT aren't subject to
similar failures when "posixrules" is missing.
Back-patch to all supported branches, since the hazard is the same
for all.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/datetime.sgml
M doc/src/sgml/func.sgml
M src/test/regress/expected/horology.out
M src/test/regress/sql/horology.sql
Adjust some glossary terms
commit : 91a890bd7fef1cd8bfe3c8832eea114290f16b02
author : Alvaro Herrera <[email protected]>
date : Fri, 19 Jun 2020 12:55:43 -0400
committer: Alvaro Herrera <[email protected]>
date : Fri, 19 Jun 2020 12:55:43 -0400
Mostly in response to Jürgen Purtz critique of previous definitions,
though I added many other changes.
Author: Álvaro Herrera <[email protected]>
Reviewed-by: Jürgen Purtz <[email protected]>
Reviewed-by: Justin Pryzby <[email protected]>
Reviewed-by: Erik Rijkers <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/glossary.sgml
Fix deduplication "single value" strategy bug.
commit : dedb92d4a3adc6b5165a619383739ab05d24b24d
author : Peter Geoghegan <[email protected]>
date : Fri, 19 Jun 2020 08:57:23 -0700
committer: Peter Geoghegan <[email protected]>
date : Fri, 19 Jun 2020 08:57:23 -0700
It was possible for deduplication's single value strategy to mistakenly
believe that a very small duplicate tuple counts as one of the six large
tuples that it aims to leave behind after the page finally splits. This
could cause slightly suboptimal space utilization with very low
cardinality indexes, though only under fairly narrow conditions.
To fix, be particular about what kind of tuple counts as a
maxpostingsize-capped tuple. This avoids confusion in the event of a
small tuple that gets "wedged" between two large tuples, where all
tuples on the page are duplicates of the same value.
Discussion: https://postgr.es/m/CAH2-Wz=Y+sgSFc-O3LpiZX-POx2bC+okec2KafERHuzdVa7-rQ@mail.gmail.com
Backpatch: 13-, where deduplication was introduced (by commit 0d861bbb)
M src/backend/access/nbtree/nbtdedup.c
M src/backend/access/nbtree/nbtsort.c
M src/backend/access/nbtree/nbtxlog.c
M src/include/access/nbtree.h
Fix issues in invalidation of obsolete replication slots.
commit : 08aa3151e7308556130c644c237fa4b20dfd6eba
author : Fujii Masao <[email protected]>
date : Fri, 19 Jun 2020 17:15:52 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 19 Jun 2020 17:15:52 +0900
This commit fixes the following issues.
1. There is the case where the slot is dropped while trying to invalidate it.
InvalidateObsoleteReplicationSlots() did not handle this case, and
which could cause checkpoint to fail.
2. InvalidateObsoleteReplicationSlots() could emit the same log message
multiple times unnecessary. It should be logged only once.
3. When marking the slot as used, we always searched the target slot from
all the replication slots even if we already found it. This could cause
useless waste of cycles.
Back-patch to v13 where these issues were added as a part of
max_slot_wal_keep_size code.
Author: Fujii Masao
Reviewed-by: Kyotaro Horiguchi, Alvaro Herrera
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/slot.c
Fix EXPLAIN ANALYZE for parallel HashAgg plans
commit : bdee4af8e07648008fe522fc5a562db453be5ad7
author : David Rowley <[email protected]>
date : Fri, 19 Jun 2020 17:25:07 +1200
committer: David Rowley <[email protected]>
date : Fri, 19 Jun 2020 17:25:07 +1200
Since 1f39bce02, HashAgg nodes have had the ability to spill to disk when
memory consumption exceeds work_mem. That commit added new properties to
EXPLAIN ANALYZE to show the maximum memory usage and disk usage, however,
it didn't quite go as far as showing that information for parallel
workers. Since workers may have experienced something very different from
the main process, we should show this information per worker, as is done
in Sort.
Reviewed-by: Justin Pryzby
Reviewed-by: Jeff Davis
Discussion: https://postgr.es/m/CAApHDvpEKbfZa18mM1TD7qV6PG+w97pwCWq5tVD0dX7e11gRJw@mail.gmail.com
Backpatch-through: 13, where the hashagg spilling code was added.
M src/backend/commands/explain.c
M src/backend/executor/execParallel.c
M src/backend/executor/nodeAgg.c
M src/include/executor/nodeAgg.h
M src/include/nodes/execnodes.h
Fix deadlock danger when atomic ops are done under spinlock.
commit : 5fffa8fce37b981e1a5bb79affce9a856e021265
author : Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 16:50:37 -0700
committer: Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 16:50:37 -0700
This was a danger only for --disable-spinlocks in combination with
atomic operations unsupported by the current platform.
While atomics.c was careful to signal that a separate semaphore ought
to be used when spinlock emulation is active, spin.c didn't actually
implement that mechanism. That's my (Andres') fault, it seems to have
gotten lost during the development of the atomic operations support.
Fix that issue and add test for nesting atomic operations inside a
spinlock.
Author: Andres Freund
Discussion: https://postgr.es/m/[email protected]
Backpatch: 9.5-
M src/backend/storage/lmgr/spin.c
M src/test/regress/regress.c
Add basic spinlock tests to regression tests.
commit : 59225dcefef278415aef64c3b96f84616b95661e
author : Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 16:36:51 -0700
committer: Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 16:36:51 -0700
As s_lock_test, the already existing test for spinlocks, isn't run in
an automated fashion (and doesn't test a normal backend environment),
adding tests that are run as part of a normal regression run is a good
idea. Particularly in light of several recent and upcoming spinlock
related fixes.
Currently the new tests are run as part of the pre-existing
test_atomic_ops() test. That perhaps can be quibbled about, but for
now seems ok.
The only operations that s_lock_test tests but the new tests don't are
the detection of a stuck spinlock and S_LOCK_FREE (which is otherwise
unused, not implemented on all platforms, and will be removed).
This currently contains a test for more than INT_MAX spinlocks (only
run with --disable-spinlocks), to ensure the recent commit fixing a
bug with more than INT_MAX spinlock initializations is correct. That
test is somewhat slow, so we might want to disable it after a few
days.
It might be worth retiring s_lock_test after this. The added coverage
of a stuck spinlock probably isn't worth the added complexity?
Author: Andres Freund
Discussion: https://postgr.es/m/[email protected]
M src/test/regress/regress.c
Doc: document POSIX-style time zone specifications in full.
commit : c10dc2d11791cc18ceea78caa94eb4b651090259
author : Tom Lane <[email protected]>
date : Thu, 18 Jun 2020 16:27:18 -0400
committer: Tom Lane <[email protected]>
date : Thu, 18 Jun 2020 16:27:18 -0400
We'd glossed over most of this complexity for years, but it's hard
to avoid writing it all down now, so that we can explain what happens
when there's no "posixrules" file in the IANA time zone database.
That was at best a tiny minority situation till now, but it's likely
to become quite common in the future, so we'd better explain it.
Nonetheless, we don't really encourage people to use POSIX zone specs;
picking a named zone is almost always what you really want, unless
perhaps you're stuck with an out-of-date zone database. Therefore,
let's shove all this detail into an appendix.
Patch by me; thanks to Robert Haas for help with some awkward wording.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/datatype.sgml
M doc/src/sgml/datetime.sgml
Fix oldest xmin and LSN computation across repslots after advancing
commit : 43e70addf5a65f1b99c286f82e2e4970b0c2fda7
author : Michael Paquier <[email protected]>
date : Thu, 18 Jun 2020 16:35:29 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 18 Jun 2020 16:35:29 +0900
Advancing a replication slot did not recompute the oldest xmin and LSN
values across replication slots, preventing resource removal like
segments not recycled at checkpoint time. The original commit that
introduced the slot advancing in 9c7d06d never did the update of those
oldest values, and b0afdca removed this code.
This commit adds a TAP test to check segment recycling with advancing
for physical slots, enforcing an extra segment switch before advancing
to check if the segment gets correctly recycled after a checkpoint.
Reported-by: Andres Freund
Reviewed-by: Alexey Kondratov, Kyptaro Horiguchi
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 11
M src/backend/replication/slotfuncs.c
M src/test/recovery/t/001_stream_rep.pl
doc: Fix formatting typo
commit : f2236d087eb8df9f15c016c02c92aa2bed7c2889
author : Peter Eisentraut <[email protected]>
date : Thu, 18 Jun 2020 03:22:26 +0200
committer: Peter Eisentraut <[email protected]>
date : Thu, 18 Jun 2020 03:22:26 +0200
M doc/src/sgml/release-13.sgml
Sync our copy of the timezone library with IANA release tzcode2020a.
commit : 484a57643e02b7df2bb9085603772b33511c6668
author : Tom Lane <[email protected]>
date : Wed, 17 Jun 2020 18:29:29 -0400
committer: Tom Lane <[email protected]>
date : Wed, 17 Jun 2020 18:29:29 -0400
This absorbs a leap-second-related bug fix in localtime.c, and
teaches zic to handle an expiration marker in the leapseconds file.
Neither are of any interest to us (for the foreseeable future
anyway), but we need to stay more or less in sync with upstream.
Also adjust some over-eager changes in the README from commit 957338418.
I have no intention of making changes that require C99 in this code,
until such time as all the live back branches require C99. Otherwise
back-patching will get too exciting.
For the same reason, absorb assorted whitespace and other cosmetic
changes from HEAD into the back branches; mostly this reflects use of
improved versions of pgindent.
All in all then, quite a boring update. But I figured I'd get it
done while I was looking at this code.
M src/timezone/README
M src/timezone/localtime.c
M src/timezone/zic.c
Fix nbtree.h dedup state comment.
commit : 6b296102920323f360d53457ecda5179284cca8c
author : Peter Geoghegan <[email protected]>
date : Wed, 17 Jun 2020 15:23:54 -0700
committer: Peter Geoghegan <[email protected]>
date : Wed, 17 Jun 2020 15:23:54 -0700
Oversight in commit 0d861bbb.
M src/include/access/nbtree.h
spinlock emulation: Fix bug when more than INT_MAX spinlocks are initialized.
commit : 276bdc93924afb2bd793627f49a9e7edd4172b63
author : Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 15:25:49 -0700
committer: Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 15:25:49 -0700
Once the counter goes negative we ended up with spinlocks that errored
out on first use (due to check in tas_sema).
Author: Andres Freund
Reviewed-By: Robert Haas
Discussion: https://postgr.es/m/[email protected]
Backpatch: 9.5-
M src/backend/storage/lmgr/spin.c
Avoid potential spinlock in a signal handler as part of global barriers.
commit : 09bff91b316e90bf7f523593c1e8000c772cbe52
author : Andres Freund <[email protected]>
date : Mon, 15 Jun 2020 18:23:10 -0700
committer: Andres Freund <[email protected]>
date : Mon, 15 Jun 2020 18:23:10 -0700
On platforms without support for 64bit atomic operations where we also
cannot rely on 64bit reads to have single copy atomicity, such atomics
are implemented using a spinlock based fallback. That means it's not
safe to even read such atomics from within a signal handler (since the
signal handler might run when the spinlock already is held).
To avoid this issue defer global barrier processing out of the signal
handler. Instead of checking local / shared barrier generation to
determine whether to set ProcSignalBarrierPending, introduce
PROCSIGNAL_BARRIER and always set ProcSignalBarrierPending when
receiving such a signal. Additionally avoid redundant work in
ProcessProcSignalBarrier if ProcSignalBarrierPending is unnecessarily.
Also do a small amount of other polishing.
Author: Andres Freund
Reviewed-By: Robert Haas
Discussion: https://postgr.es/m/[email protected]
Backpatch: 13-, where the code was introduced.
M src/backend/storage/ipc/procsignal.c
M src/include/storage/procsignal.h
Doc: fix copy-and-pasteo in ecpg docs.
commit : 7f932f77c7eb068772355c76cfa48bc5d0260e2f
author : Tom Lane <[email protected]>
date : Tue, 16 Jun 2020 16:41:11 -0400
committer: Tom Lane <[email protected]>
date : Tue, 16 Jun 2020 16:41:11 -0400
The synopsis for PGTYPESinterval_free() used the wrong name.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ecpg.sgml
Fix file reference in nls.mk
commit : 9c25a873d631036a92036394863eba1f4a3f3cd5
author : Peter Eisentraut <[email protected]>
date : Tue, 16 Jun 2020 17:25:20 +0200
committer: Peter Eisentraut <[email protected]>
date : Tue, 16 Jun 2020 17:25:20 +0200
Broken by move of fe_archive.c to fe_utils.
M src/bin/pg_rewind/nls.mk
Fix buffile.c error handling.
commit : 3e0b08c404b2a7d799db78eb942a01534ac7926b
author : Thomas Munro <[email protected]>
date : Tue, 16 Jun 2020 13:50:56 +1200
committer: Thomas Munro <[email protected]>
date : Tue, 16 Jun 2020 13:50:56 +1200
Convert buffile.c error handling to use ereport. This fixes cases where
I/O errors were indistinguishable from EOF or not reported. Also remove
"%m" from error messages where errno would be bogus. While we're
modifying those strings, add block numbers and short read byte counts
where appropriate.
Back-patch to all supported releases.
Reported-by: Amit Khandekar <[email protected]>
Reviewed-by: Melanie Plageman <[email protected]>
Reviewed-by: Alvaro Herrera <[email protected]>
Reviewed-by: Robert Haas <[email protected]>
Reviewed-by: Ibrar Ahmed <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Discussion: https://postgr.es/m/CA%2BhUKGJE04G%3D8TLK0DLypT_27D9dR8F1RQgNp0jK6qR0tZGWOw%40mail.gmail.com
M src/backend/access/gist/gistbuildbuffers.c
M src/backend/executor/nodeHashjoin.c
M src/backend/replication/backup_manifest.c
M src/backend/storage/file/buffile.c
M src/backend/utils/sort/logtape.c
M src/backend/utils/sort/sharedtuplestore.c
M src/backend/utils/sort/tuplestore.c
pg_upgrade: set vacuum_defer_cleanup_age to zero
commit : a2c72851a898170ee1f2e7c21c1bf9086dec2d5c
author : Bruce Momjian <[email protected]>
date : Mon, 15 Jun 2020 20:59:40 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 15 Jun 2020 20:59:40 -0400
Non-zero vacuum_defer_cleanup_age values cause pg_upgrade freezing of
the system catalogs to be incomplete, or do nothing. This will cause
the upgrade to fail in confusing ways.
Reported-by: Laurenz Albe
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/bin/pg_upgrade/server.c
Doc: Add references for SI and SSI.
commit : 4701efa9f741aa0ca38cfe922dfcaef1749b5b02
author : Thomas Munro <[email protected]>
date : Mon, 15 Jun 2020 11:33:13 +1200
committer: Thomas Munro <[email protected]>
date : Mon, 15 Jun 2020 11:33:13 +1200
Our documentation failed to point out that REPEATABLE READ is really
snapshot isolation, which might be important to some users. Point to
the standard reference paper for this complicated topic.
Likewise, add a reference to the VLDB paper about PostgreSQL SSI, for
technical information about our SSI implementation and how it compares
to S2PL.
While here, add a note about catalog access using a lower isolation
level, per recent user complaint.
Back-patch to all releases.
Reported-by: Kyle Kingsbury <[email protected]>
Reviewed-by: Andres Freund <[email protected]>
Reviewed-by: Peter Geoghegan <[email protected]>
Reviewed-by: Tatsuo Ishii <[email protected]>
Discussion: https://postgr.es/m/db7b729d-0226-d162-a126-8a8ab2dc4443%40jepsen.io
Discussion: https://postgr.es/m/16454-9408996bb1750faf%40postgresql.org
M doc/src/sgml/biblio.sgml
M doc/src/sgml/mvcc.sgml
Fix behavior of float aggregates for single Inf or NaN inputs.
commit : 33dd9bb3b0a88981f18a10d89720b4e40d8876ba
author : Tom Lane <[email protected]>
date : Sat, 13 Jun 2020 13:43:24 -0400
committer: Tom Lane <[email protected]>
date : Sat, 13 Jun 2020 13:43:24 -0400
When there is just one non-null input value, and it is infinity or NaN,
aggregates such as stddev_pop and covar_pop should produce a NaN
result, because the calculation is not well-defined. They used to do
so, but since we adopted Youngs-Cramer aggregation in commit e954a727f,
they produced zero instead. That's an oversight, so fix it. Add tests
exercising these edge cases.
Affected aggregates are
var_pop(double precision)
stddev_pop(double precision)
var_pop(real)
stddev_pop(real)
regr_sxx(double precision,double precision)
regr_syy(double precision,double precision)
regr_sxy(double precision,double precision)
regr_r2(double precision,double precision)
regr_slope(double precision,double precision)
regr_intercept(double precision,double precision)
covar_pop(double precision,double precision)
corr(double precision,double precision)
Back-patch to v12 where the behavior change was accidentally introduced.
Report and patch by me; thanks to Dean Rasheed for review.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/adt/float.c
M src/test/regress/expected/aggregates.out
M src/test/regress/sql/aggregates.sql
Silence _bt_check_unique compiler warning.
commit : e745bcc00149fe3c35ba1123800e0beb948e3678
author : Peter Geoghegan <[email protected]>
date : Sat, 13 Jun 2020 09:33:31 -0700
committer: Peter Geoghegan <[email protected]>
date : Sat, 13 Jun 2020 09:33:31 -0700
Reported-By: Tom Lane
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/nbtree/nbtinsert.c
Add missing extern keyword for a couple of numutils functions
commit : 095f2d95c92704747d84d499a33b527af42bb08e
author : David Rowley <[email protected]>
date : Sat, 13 Jun 2020 11:28:12 +1200
committer: David Rowley <[email protected]>
date : Sat, 13 Jun 2020 11:28:12 +1200
In passing, also remove a few surplus empty lines from pg_ltoa and
pg_ulltoa_n in numutils.c
Reported-by: Andrew Gierth
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13, where these changes were introduced
M src/backend/utils/adt/numutils.c
M src/include/utils/builtins.h
Improve comments for [Heap]CheckForSerializableConflictOut().
commit : 44eff28410598ef86d3d8bd812439aabf19f7ee0
author : Thomas Munro <[email protected]>
date : Fri, 12 Jun 2020 10:44:32 +1200
committer: Thomas Munro <[email protected]>
date : Fri, 12 Jun 2020 10:44:32 +1200
Rewrite the documentation of these functions, in light of recent bug fix
commit 5940ffb2.
Back-patch to 13 where the check-for-conflict-out code was split up into
AM-specific and generic parts, and new documentation was added that now
looked wrong.
Reviewed-by: Peter Geoghegan <[email protected]>
Discussion: https://postgr.es/m/db7b729d-0226-d162-a126-8a8ab2dc4443%40jepsen.io
M src/backend/access/heap/heapam.c
M src/backend/storage/lmgr/predicate.c
doc: remove xreflabels used in PG 13 relnotes
commit : db680fd82ede99d9a5224a1d316a64d763be1acc
author : Bruce Momjian <[email protected]>
date : Thu, 11 Jun 2020 18:27:59 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 11 Jun 2020 18:27:59 -0400
xreflabels were removed in a previous commit
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13 only
M doc/src/sgml/release-13.sgml
doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5
commit : c04612040165582f60cbcfe8ca1771598c9f3a05
author : Bruce Momjian <[email protected]>
date : Thu, 11 Jun 2020 18:25:46 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 11 Jun 2020 18:25:46 -0400
xreflabels prevent references to the chapter numbers of sections id's.
It should only be used in specific cases.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/ecpg.sgml
M doc/src/sgml/geqo.sgml
M doc/src/sgml/gin.sgml
M doc/src/sgml/gist.sgml
M doc/src/sgml/libpq.sgml
M doc/src/sgml/maintenance.sgml
M doc/src/sgml/plperl.sgml
M doc/src/sgml/plpgsql.sgml
M doc/src/sgml/plpython.sgml
M doc/src/sgml/spgist.sgml
M doc/src/sgml/spi.sgml
M doc/src/sgml/storage.sgml
M doc/src/sgml/vacuumlo.sgml
Fix doc build, broken by 13e0fa7a.
commit : 6fbfa4eb244eab47d67fba4258c4af777729f119
author : Jeff Davis <[email protected]>
date : Thu, 11 Jun 2020 14:44:31 -0700
committer: Jeff Davis <[email protected]>
date : Thu, 11 Jun 2020 14:44:31 -0700
Reported-by: Peter Geoghegan
M doc/src/sgml/release-13.sgml
Fix mishandling of NaN counts in numeric_[avg_]combine.
commit : ee788ba99011c9d1e8f6f352acc0b0d19350fff6
author : Tom Lane <[email protected]>
date : Thu, 11 Jun 2020 17:38:42 -0400
committer: Tom Lane <[email protected]>
date : Thu, 11 Jun 2020 17:38:42 -0400
When merging two NumericAggStates, the code missed adding the new
state's NaNcount unless its N was also nonzero; since those counts
are independent, this is wrong.
This would only have visible effect if some partial aggregate scans
found only NaNs while earlier ones found only non-NaNs; then we could
end up falsely deciding that there were no NaNs and fail to return a
NaN final result as expected. That's pretty improbable, so it's no
surprise this hasn't been reported from the field. Still, it's a bug.
I didn't try to produce a regression test that would show the bug,
but I did notice that these functions weren't being reached at all
in our regression tests, so I improved the tests to at least
exercise them. With these additions, I see pretty complete code
coverage on the aggregation-related functions in numeric.c.
Back-patch to 9.6 where this code was introduced. (I only added
the improved test case as far back as v10, though, since the
relevant part of aggregates.sql isn't there at all in 9.6.)
M src/backend/utils/adt/numeric.c
M src/test/regress/expected/aggregates.out
M src/test/regress/sql/aggregates.sql
Rework HashAgg GUCs.
commit : 13e0fa7ae50cd0e91158877dba37098492b234e8
author : Jeff Davis <[email protected]>
date : Thu, 11 Jun 2020 11:58:16 -0700
committer: Jeff Davis <[email protected]>
date : Thu, 11 Jun 2020 11:58:16 -0700
Eliminate enable_groupingsets_hash_disk, which was primarily useful
for testing grouping sets that use HashAgg and spill. Instead, hack
the table stats to convince the planner to choose hashed aggregation
for grouping sets that will spill to disk. Suggested by Melanie
Plageman.
Rename enable_hashagg_disk to hashagg_avoid_disk_plan, and invert the
meaning of on/off. The new name indicates more strongly that it only
affects the planner. Also, the word "avoid" is less definite, which
should avoid surprises when HashAgg still needs to use the
disk. Change suggested by Justin Pryzby, though I chose a different
GUC name.
Discussion: https://postgr.es/m/CAAKRu_aisiENMsPM2gC4oUY1hHG3yrCwY-fXUg22C6_MJUwQdA%40mail.gmail.com
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M doc/src/sgml/config.sgml
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/planner.c
M src/backend/utils/misc/guc.c
M src/include/optimizer/cost.h
M src/test/regress/expected/aggregates.out
M src/test/regress/expected/groupingsets.out
M src/test/regress/expected/sysviews.out
M src/test/regress/sql/aggregates.sql
M src/test/regress/sql/groupingsets.sql
Avoid update conflict out serialization anomalies.
commit : 6df7105e5d50460623421d00f24aaa46b66fa570
author : Peter Geoghegan <[email protected]>
date : Thu, 11 Jun 2020 10:09:45 -0700
committer: Peter Geoghegan <[email protected]>
date : Thu, 11 Jun 2020 10:09:45 -0700
SSI's HeapCheckForSerializableConflictOut() test failed to correctly
handle conditions involving a concurrently inserted tuple which is later
concurrently updated by a separate transaction . A SELECT statement
that called HeapCheckForSerializableConflictOut() could end up using the
same XID (updater's XID) for both the original tuple, and the successor
tuple, missing the XID of the xact that created the original tuple
entirely. This only happened when neither tuple from the chain was
visible to the transaction's MVCC snapshot.
The observable symptoms of this bug were subtle. A pair of transactions
could commit, with the later transaction failing to observe the effects
of the earlier transaction (because of the confusion created by the
update to the non-visible row). This bug dates all the way back to
commit dafaa3ef, which added SSI.
To fix, make sure that we check the xmin of concurrently inserted tuples
that happen to also have been updated concurrently.
Author: Peter Geoghegan
Reported-By: Kyle Kingsbury
Reviewed-By: Thomas Munro
Discussion: https://postgr.es/m/[email protected]
Backpatch: All supported versions
M src/backend/access/heap/heapam.c
A src/test/isolation/expected/update-conflict-out.out
M src/test/isolation/isolation_schedule
A src/test/isolation/specs/update-conflict-out.spec
Fix typos.
commit : c4d5706db298f5a02ffd321c4605a7f8746b5428
author : Amit Kapila <[email protected]>
date : Thu, 11 Jun 2020 14:10:43 +0530
committer: Amit Kapila <[email protected]>
date : Thu, 11 Jun 2020 14:10:43 +0530
Reported-by: John Naylor
Author: John Naylor
Backpatch-through: 9.5
Discussion: https://postgr.es/m/CACPNZCtRuvs6G+EYqejhVJgBq2AKeZdXRVJsbX4syhO9gn5SNQ@mail.gmail.com
M src/test/regress/input/largeobject.source
M src/test/regress/output/largeobject.source
M src/test/regress/output/largeobject_1.source
Move frontend-side archive APIs from src/common/ to src/fe_utils/
commit : 8d8b89266ca0328d78df319bacd1e809631f2acc
author : Michael Paquier <[email protected]>
date : Thu, 11 Jun 2020 15:48:56 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 11 Jun 2020 15:48:56 +0900
fe_archive.c was compiled only for the frontend in src/common/, but as
it will never share anything with the backend, it makes most sense to
move this file to src/fe_utils/.
Reported-by: Peter Eisentraut
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 13
M src/bin/pg_rewind/parsexlog.c
M src/common/Makefile
M src/fe_utils/Makefile
R094 src/common/fe_archive.c src/fe_utils/archive.c
R091 src/include/common/fe_archive.h src/include/fe_utils/archive.h
M src/tools/msvc/Mkvcbuild.pm
Update description of parameter password_encryption
commit : d6d3f8bc8433f00a43eaf936e75c757bfd743702
author : Peter Eisentraut <[email protected]>
date : Wed, 10 Jun 2020 11:57:41 +0200
committer: Peter Eisentraut <[email protected]>
date : Wed, 10 Jun 2020 11:57:41 +0200
The previous description string still described the pre-PostgreSQL
10 (pre eb61136dc75a76caef8460fa939244d8593100f2) behavior of
selecting between encrypted and unencrypted, but it is now choosing
between encryption algorithms.
M src/backend/utils/misc/guc.c
Fix ReorderBuffer memory overflow check.
commit : 16a8d5cf0337724affc4bbb3e8ba07f748f00898
author : Amit Kapila <[email protected]>
date : Wed, 10 Jun 2020 10:20:10 +0530
committer: Amit Kapila <[email protected]>
date : Wed, 10 Jun 2020 10:20:10 +0530
Commit cec2edfa78 introduced logical_decoding_work_mem to limit
ReorderBuffer memory usage. We spill the changes once the memory occupied
by changes exceeds logical_decoding_work_mem. There was an assumption
in the code that by evicting the largest (sub)transaction we will come
under the memory limit as the selected transaction will be at least as
large as the most recent change (which caused us to go over the memory
limit). However, that is not true because a user can reduce the
logical_decoding_work_mem to a smaller value before the most recent
change.
We fix it by allowing to evict the transactions until we reach under the
memory limit.
Reported-by: Fujii Masao
Author: Amit Kapila
Reviewed-by: Fujii Masao
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/logical/reorderbuffer.c
Spelling adjustments
commit : a5202889b4c78e8ffcdd8be35d59f0a7aa644f64
author : Peter Eisentraut <[email protected]>
date : Tue, 9 Jun 2020 10:41:41 +0200
committer: Peter Eisentraut <[email protected]>
date : Tue, 9 Jun 2020 10:41:41 +0200
similar to 0fd2a79a637f9f96b9830524823df0454e962f96
M contrib/pg_trgm/trgm_regexp.c
M src/backend/commands/explain.c
M src/backend/optimizer/plan/planner.c
M src/pl/plpgsql/src/expected/plpgsql_control.out
M src/pl/plpgsql/src/pl_exec.c
M src/pl/plpgsql/src/pl_gram.y
M src/pl/plpgsql/src/plpgsql.h
Fix invalid function references in a few comments
commit : 4d655f154565662cbd11f1ce5c0e6a90cd6a8f56
author : David Rowley <[email protected]>
date : Tue, 9 Jun 2020 18:43:58 +1200
committer: David Rowley <[email protected]>
date : Tue, 9 Jun 2020 18:43:58 +1200
These appear to have been forgotten when the functions were renamed in
1fd687a03.
Backpatch-through: 13, where the functions were renamed
M src/backend/utils/adt/numutils.c
Repair unstable regression test.
commit : 6df8fb391b0b98efc917b5cc43de77cba785864a
author : Tom Lane <[email protected]>
date : Tue, 9 Jun 2020 01:17:59 -0400
committer: Tom Lane <[email protected]>
date : Tue, 9 Jun 2020 01:17:59 -0400
Commit 0c882e52a tried to force table atest12 to have more-accurate-
than-default statistics; but transiently setting default_statistics_target
isn't enough for that, because autovacuum could come along and overwrite
the stats later. This evidently explains some intermittent buildfarm
failures we've seen since then. Repair by disabling autovac on this table.
Thanks to David Rowley for correctly diagnosing the cause.
Discussion: https://postgr.es/m/CA+hUKG+OUkQSOUTg=qo=S=fWa_tbm99i7rB7mfbHz1SYm4v-jQ@mail.gmail.com
M src/test/regress/expected/privileges.out
M src/test/regress/sql/privileges.sql
Fix HashAgg regression from choosing too many initial buckets.
commit : 2174d40117f62099c7b11a2d43d163b7b9271d39
author : Jeff Davis <[email protected]>
date : Mon, 8 Jun 2020 20:59:45 -0700
committer: Jeff Davis <[email protected]>
date : Mon, 8 Jun 2020 20:59:45 -0700
Diagnosis by Andres.
Reported-by: Pavel Stehule
Discussion: https://postgr.es/m/CAFj8pRDLVakD5Aagt3yZeEQeTeEWaS3YE5h8XC3Q3qJ6TYkc2Q%40mail.gmail.com
Backpatch-through: 13
M src/backend/executor/nodeAgg.c
Avoid need for valgrind suppressions for pg_atomic_init_u64 on some platforms.
commit : de4a25989611d960360d0513d00b970d3b6c52c7
author : Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 19:52:19 -0700
committer: Andres Freund <[email protected]>
date : Mon, 8 Jun 2020 19:52:19 -0700
Previously we used pg_atomic_write_64_impl inside
pg_atomic_init_u64. That works correctly, but on platforms without
64bit single copy atomicity it could trigger spurious valgrind errors
about uninitialized memory, because we use compare_and_swap for atomic
writes on such platforms.
I previously suppressed one instance of this problem (6c878edc1df),
but as Tom reports that wasn't enough. As the atomic variable cannot
yet be concurrently accessible during initialization, it seems better
to have pg_atomic_init_64_impl set the value directly.
Change pg_atomic_init_u32_impl for symmetry.
Reported-By: Tom Lane
Author: Andres Freund
Discussion: https://postgr.es/m/[email protected]
Backpatch: 9.5-
M src/include/port/atomics/generic.h
M src/tools/valgrind.supp
Fix locking bugs that could corrupt pg_control.
commit : acefa2cca6a2c2b9c0fd9f25d0c003595bed689e
author : Thomas Munro <[email protected]>
date : Mon, 8 Jun 2020 13:57:24 +1200
committer: Thomas Munro <[email protected]>
date : Mon, 8 Jun 2020 13:57:24 +1200
The redo routines for XLOG_CHECKPOINT_{ONLINE,SHUTDOWN} must acquire
ControlFileLock before modifying ControlFile->checkPointCopy, or the
checkpointer could write out a control file with a bad checksum.
Likewise, XLogReportParameters() must acquire ControlFileLock before
modifying ControlFile and calling UpdateControlFile().
Back-patch to all supported releases.
Author: Nathan Bossart <[email protected]>
Author: Fujii Masao <[email protected]>
Reviewed-by: Fujii Masao <[email protected]>
Reviewed-by: Michael Paquier <[email protected]>
Reviewed-by: Thomas Munro <[email protected]>
Discussion: https://postgr.es/m/70BF24D6-DC51-443F-B55A-95735803842A%40amazon.com
M src/backend/access/transam/xlog.c
Doc: Update example symptom of systemd misconfiguration.
commit : a1c940cc58828b81cd72e04dd264fbc65e46f0de
author : Thomas Munro <[email protected]>
date : Mon, 8 Jun 2020 13:20:46 +1200
committer: Thomas Munro <[email protected]>
date : Mon, 8 Jun 2020 13:20:46 +1200
In PostgreSQL 10, we stopped using System V semaphores on Linux
systems. Update the example we give of an error message from a
misconfigured system to show what people are most likely to see these
days.
Back-patch to 10, where PREFERRED_SEMAPHORES=UNNAMED_POSIX arrived.
Reviewed-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/CA%2BhUKGLmJUSwybaPQv39rB8ABpqJq84im2UjZvyUY4feYhpWMw%40mail.gmail.com
M doc/src/sgml/runtime.sgml
Fix crash in WAL sender when starting physical replication
commit : 10ffe0fa72ed895a3c18aef2d3950b480e810e13
author : Michael Paquier <[email protected]>
date : Mon, 8 Jun 2020 10:12:31 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 8 Jun 2020 10:12:31 +0900
Since database connections can be used with WAL senders in 9.4, it is
possible to use physical replication. This commit fixes a crash when
starting physical replication with a WAL sender using a database
connection, caused by the refactoring done in 850196b.
There have been discussions about forbidding the use of physical
replication in a database connection, but this is left for later,
taking care only of the crash new to 13.
While on it, add a test to check for a failure when attempting logical
replication if the WAL sender does not have a database connection. This
part is extracted from a larger patch by Kyotaro Horiguchi.
Reported-by: Vladimir Sitnikov
Author: Michael Paquier, Kyotaro Horiguchi
Reviewed-by: Kyotaro Horiguchi, Álvaro Herrera
Discussion: https://postgr.es/m/CAB=Je-GOWMj1PTPkeUhjqQp-4W3=nW-pXe2Hjax6rJFffB5_Aw@mail.gmail.com
Backpatch-through: 13
M src/backend/access/transam/xlogreader.c
M src/backend/replication/walsender.c
M src/include/access/xlogreader.h
M src/test/recovery/t/006_logical_decoding.pl
MSVC: Avoid warning when testing a TAP suite without PROVE_FLAGS.
commit : 9b5f85fb0a3e27040bc72451893d2dc35bb5d8bd
author : Noah Misch <[email protected]>
date : Sun, 7 Jun 2020 16:27:13 -0700
committer: Noah Misch <[email protected]>
date : Sun, 7 Jun 2020 16:27:13 -0700
Commit 7be5d8df1f74b78620167d3abf32ee607e728919 surfaced the logic
error, which had no functional implications, by adding "use warnings".
The buildfarm always customizes PROVE_FLAGS, so the warning did not
appear there. Back-patch to 9.5 (all supported versions).
M src/tools/msvc/vcregress.pl
pgindent run prior to branching v13.
commit : b5d69b7c22ee4c44b8bb99cfa0466ffaf3b5fab9
author : Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 16:57:08 -0400
committer: Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 16:57:08 -0400
pgperltidy and reformat-dat-files too, though those didn't
find anything to change.
M src/backend/jit/llvm/llvmjit_expr.c
M src/backend/optimizer/plan/createplan.c
M src/backend/postmaster/autovacuum.c
M src/backend/utils/sort/logtape.c
M src/include/access/tableam.h
M src/tools/pgindent/typedefs.list
Try to read data from the socket in pqSendSome's write_failed paths.
commit : 7247e243a803044a79a2828ced51b05765e049a0
author : Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 13:44:13 -0400
committer: Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 13:44:13 -0400
Even when we've concluded that we have a hard write failure on the
socket, we should continue to try to read data. This gives us an
opportunity to collect any final error message that the backend might
have sent before closing the connection; moreover it is the job of
pqReadData not pqSendSome to close the socket once EOF is detected.
Due to an oversight in 1f39a1c06, pqSendSome failed to try to collect
data in the case where we'd already set write_failed. The problem was
masked for ordinary query operations (which really only make one write
attempt anyway), but COPY to the server would continue to send data
indefinitely after a mid-COPY connection loss.
Hence, add pqReadData calls into the paths where pqSendSome drops data
because of write_failed. If we've lost the connection, this will
eventually result in closing the socket and setting CONNECTION_BAD,
which will cause PQputline and siblings to report failure, allowing
the application to terminate the COPY sooner. (Basically this restores
what happened before 1f39a1c06.)
There are related issues that this does not solve; for example, if the
backend sends an error but doesn't drop the connection, we did and
still will keep pumping COPY data as long as the application sends it.
Fixing that will require application-visible behavior changes though,
and anyway it's an ancient behavior that we've had few complaints about.
For now I'm just trying to fix the regression from 1f39a1c06.
Per a complaint from Andres Freund. Back-patch into v12 where
1f39a1c06 came in.
Discussion: https://postgr.es/m/[email protected]
M src/interfaces/libpq/fe-misc.c
Rethink definition of cancel.c's CancelRequested flag.
commit : 92f33bb7afd373ed562e23077c14831944d1b0d4
author : Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 13:07:31 -0400
committer: Tom Lane <[email protected]>
date : Sun, 7 Jun 2020 13:07:31 -0400
As it stands, this flag is only set when we've successfully sent a
cancel request, not if we get SIGINT and then fail to send a cancel.
However, for almost all callers, that's the Wrong Thing: we'd prefer
to abort processing after control-C even if no cancel could be sent.
As an example, since commit 1d468b9ad "pgbench -i" fails to give up
sending COPY data even after control-C, if the postmaster has been
stopped, which is clearly not what the code intends and not what anyone
would want. (The fact that it keeps going at all is the fault of a
separate bug in libpq, but not letting CancelRequested become set is
clearly not what we want here.)
The sole exception, as far as I can find, is that scripts_parallel.c's
ParallelSlotsGetIdle tries to consume a query result after issuing a
cancel, which of course might not terminate quickly if no cancel
happened. But that behavior was poorly thought out too. No user of
ParallelSlotsGetIdle tries to continue processing after a cancel,
so there is really no point in trying to clear the connection's state.
Moreover this has the same defect as for other users of cancel.c,
that if the cancel request fails for some reason then we end up with
control-C being completely ignored. (On top of that, select_loop failed
to distinguish clearly between SIGINT and other reasons for select(2)
failing, which means that it's possible that the existing code would
think that a cancel has been sent when it hasn't.)
Hence, redefine CancelRequested as simply meaning that SIGINT was
received. We could add a second flag with the other meaning, but
in the absence of any compelling argument why such a flag is needed,
I think it would just offer an opportunity for future callers to
get it wrong. Also remove the consumeQueryResult call in
ParallelSlotsGetIdle's failure exit. In passing, simplify the
API of select_loop.
It would now be possible to re-unify psql's cancel_pressed with
CancelRequested, partly undoing 5d43c3c54. But I'm not really
convinced that that's worth the trouble, so I left psql alone,
other than fixing a misleading comment.
This code is new in v13 (cf a4fd3aa71), so no need for back-patch.
Per investigation of a complaint from Andres Freund.
Discussion: https://postgr.es/m/[email protected]
M src/bin/psql/common.c
M src/bin/scripts/scripts_parallel.c
M src/fe_utils/cancel.c
Fix platform-specific performance regression in logtape.c.
commit : 1fbb6c93df30801f83c6804ab7befde3cdefe677
author : Jeff Davis <[email protected]>
date : Sun, 7 Jun 2020 09:14:24 -0700
committer: Jeff Davis <[email protected]>
date : Sun, 7 Jun 2020 09:14:24 -0700
Commit 24d85952 made a change that indirectly caused a performance
regression by triggering a change in the way GCC optimizes memcpy() on
some platforms.
The behavior seemed to contradict a GCC document, so I filed a report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95556
This patch implements a narrow workaround which eliminates the
regression I observed. The workaround is benign enough that it seems
unlikely to cause a different regression on another platform.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/sort/logtape.c
psql: Format \? output a little better
commit : aa7927698acb813283d21aa6a47a67cd3c5a8b0c
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 16:12:05 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 16:12:05 +0200
M src/bin/psql/help.c
Fix message translatability
commit : 1e8ada0c8a448891971faf71f48125439ee07023
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 15:11:51 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 15:11:51 +0200
Two parts of the same message shouldn't be split across two function
calls.
M src/bin/psql/help.c
Spelling adjustments
commit : 0fd2a79a637f9f96b9830524823df0454e962f96
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 15:06:51 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 15:06:51 +0200
M doc/src/sgml/config.sgml
M src/backend/commands/async.c
M src/backend/commands/vacuum.c
M src/backend/jit/llvm/llvmjit_expr.c
M src/backend/port/win32/socket.c
M src/backend/port/win32/timer.c
M src/backend/postmaster/autovacuum.c
M src/backend/postmaster/checkpointer.c
M src/backend/postmaster/pgstat.c
M src/backend/postmaster/postmaster.c
M src/backend/replication/logical/origin.c
M src/backend/replication/logical/reorderbuffer.c
M src/backend/storage/ipc/latch.c
M src/backend/storage/ipc/procsignal.c
M src/backend/storage/ipc/shm_mq.c
M src/backend/storage/ipc/signalfuncs.c
M src/backend/storage/ipc/standby.c
M src/backend/storage/lmgr/lock.c
M src/backend/tcop/postgres.c
M src/backend/utils/cache/relfilenodemap.c
M src/include/access/tableam.h
M src/include/access/xact.h
M src/include/replication/slot.h
M src/include/storage/condition_variable.h
M src/include/storage/procsignal.h
M src/test/modules/test_shm_mq/setup.c
doc: Fix man page whitespace issues
commit : a02b8bdd9878ae1d1ead87aabb673d60432500ea
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:54:28 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:54:28 +0200
Whitespace between tags is significant, and in some cases it creates
extra vertical space in man pages. The fix is either to remove some
newlines or in some cases to reword slightly to avoid the awkward
markup layout.
M doc/src/sgml/ref/alter_collation.sgml
M doc/src/sgml/ref/alter_subscription.sgml
M doc/src/sgml/ref/alter_type.sgml
M doc/src/sgml/ref/alter_view.sgml
M doc/src/sgml/ref/create_extension.sgml
M doc/src/sgml/ref/create_language.sgml
M doc/src/sgml/ref/create_publication.sgml
M doc/src/sgml/ref/create_subscription.sgml
M doc/src/sgml/ref/create_view.sgml
M doc/src/sgml/ref/drop_function.sgml
M doc/src/sgml/ref/drop_procedure.sgml
M doc/src/sgml/ref/drop_routine.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_verifybackup.sgml
M doc/src/sgml/ref/pgbench.sgml
M doc/src/sgml/ref/pgupgrade.sgml
M doc/src/sgml/ref/psql-ref.sgml
M doc/src/sgml/ref/select.sgml
M doc/src/sgml/spi.sgml
Formatting and punctuation improvements in postgresql.conf.sample
commit : f4c88ce1a20e8e944d74cb964926781d6ca4cb18
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:35:12 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:35:12 +0200
M src/backend/utils/misc/postgresql.conf.sample
doc: Move options on man pages into more alphabetical order
commit : b25da866152347109943f998b66b1a320a9de3e0
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:07:33 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 14:07:33 +0200
M doc/src/sgml/ref/dropdb.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_dumpall.sgml
M doc/src/sgml/ref/pg_rewind.sgml
M doc/src/sgml/ref/pgbench.sgml
doc: Fix up spacing around verbatim DocBook elements
commit : 9ac0a26210901a5869fd7ea83ab1c59489c1aeef
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:34:37 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:34:37 +0200
M doc/src/sgml/hstore.sgml
M doc/src/sgml/release-13.sgml
doc: Language review
commit : 4c6f70cd33ac395dea1acca7dabf4cb8556235e7
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:27:57 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:27:57 +0200
M doc/src/sgml/libpq.sgml
doc: Trim trailing whitespace
commit : b79cb8a919c2614c81ae7578b863b7f582a9baf2
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:24:40 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:24:40 +0200
M doc/src/sgml/ref/drop_database.sgml
M doc/src/sgml/ref/pg_checksums.sgml
M doc/src/sgml/ref/pg_receivewal.sgml
M doc/src/sgml/ref/pg_verifybackup.sgml
M doc/src/sgml/release-13.sgml
doc: Clean up title case use
commit : b3c2412e70f2be25ac70f7e9b2f12dbe4efd2a8b
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:18:36 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:18:36 +0200
M doc/src/sgml/features.sgml
doc: Remove line breaks after <title>
commit : ab5b55505ec4bf08a9f93810e1bfada93bc63bb5
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:10:18 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 13:10:18 +0200
This creates unnecessary rendering problem risks, and it's
inconsistent and gets copied around.
M doc/src/sgml/features.sgml
M doc/src/sgml/ref/createdb.sgml
M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/ref/pg_dump.sgml
M doc/src/sgml/ref/pg_receivewal.sgml
M doc/src/sgml/ref/pg_verifybackup.sgml
M doc/src/sgml/xplang.sgml
Doc: Clean up references to obsolete OS versions.
commit : c8be915aa9fcc4c0cba563ddbb2e5af7a2dadd12
author : Thomas Munro <[email protected]>
date : Sun, 7 Jun 2020 21:36:43 +1200
committer: Thomas Munro <[email protected]>
date : Sun, 7 Jun 2020 21:36:43 +1200
Remove obsolete instructions for old operating system versions, and
update the text to reflect the defaults on modern systems.
Reviewed-by: Tom Lane <[email protected]>
Reviewed-by: Peter Eisentraut <[email protected]>
Reviewed-by: Magnus Hagander <[email protected]>
Discussion: https://postgr.es/m/CA%2BhUKGLmJUSwybaPQv39rB8ABpqJq84im2UjZvyUY4feYhpWMw%40mail.gmail.com
M doc/src/sgml/runtime.sgml
doc: Fix incorrect link target
commit : c14a98032b17d514a195e4e76073ebc98a6521be
author : Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 11:16:51 +0200
committer: Peter Eisentraut <[email protected]>
date : Sun, 7 Jun 2020 11:16:51 +0200
M doc/src/sgml/func.sgml
Add missing source files to nls.mk
commit : 35b527428d6110dd0de585223a4783fe996a0020
author : Peter Eisentraut <[email protected]>
date : Sat, 6 Jun 2020 19:56:21 +0200
committer: Peter Eisentraut <[email protected]>
date : Sat, 6 Jun 2020 19:56:21 +0200
M src/bin/pg_basebackup/nls.mk
M src/bin/pg_rewind/nls.mk
M src/bin/psql/nls.mk
M src/bin/scripts/nls.mk
Fix reference to wrong view in release notes
commit : 6e2f11b631b712d691aecdbbcaa7a75b391c1e98
author : Magnus Hagander <[email protected]>
date : Sat, 6 Jun 2020 15:35:42 +0200
committer: Magnus Hagander <[email protected]>
date : Sat, 6 Jun 2020 15:35:42 +0200
The estimate of total backup size effects the view
pg_stat_progress_basebackup, not pg_stat_progress_analyze.
M doc/src/sgml/release-13.sgml
Refresh function name in CRC-associated Valgrind suppressions.
commit : 26056b3ba84d6cb51eea5d6c83fefae19919a56b
author : Noah Misch <[email protected]>
date : Fri, 5 Jun 2020 20:10:53 -0700
committer: Noah Misch <[email protected]>
date : Fri, 5 Jun 2020 20:10:53 -0700
Back-patch to 9.5, where commit 4f700bcd20c087f60346cb8aefd0e269be8e2157
first appeared.
Reviewed by Tom Lane. Reported by Andrew Dunstan.
Discussion: https://postgr.es/m/[email protected]
M src/tools/valgrind.supp
Doc: remove annotations about multi-row output of set-returning functions.
commit : ec5d6fc4ae8c75391d99993cd030a8733733747d
author : Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 18:04:37 -0400
committer: Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 18:04:37 -0400
I thought this added clarity, or at least was consistent with the way
these entries looked before v13 ... but apparently I'm in the minority.
Discussion: https://postgr.es/m/CAFj8pRAXuetiHUfs73zjsJD6B78FWcUsBS-j23sdCMFXkgx5Fg@mail.gmail.com
M doc/src/sgml/func.sgml
Improve ineq_histogram_selectivity's behavior for non-default orderings.
commit : 0c882e52a8660114234a0c4a29db919bb727e552
author : Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 16:55:16 -0400
committer: Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 16:55:16 -0400
ineq_histogram_selectivity() can be invoked in situations where the
ordering we care about is not that of the column's histogram. We could
be considering some other collation, or even more drastically, the
query operator might not agree at all with what was used to construct
the histogram. (We'll get here for anything using scalarineqsel-based
estimators, so that's quite likely to happen for extension operators.)
Up to now we just ignored this issue and assumed we were dealing with
an operator/collation whose sort order exactly matches the histogram,
possibly resulting in junk estimates if the binary search gets confused.
It's past time to improve that, since the use of nondefault collations
is increasing. What we can do is verify that the given operator and
collation match what's recorded in pg_statistic, and use the existing
code only if so. When they don't match, instead execute the operator
against each histogram entry, and take the fraction of successes as our
selectivity estimate. This gives an estimate that is probably good to
about 1/histogram_size, with no assumptions about ordering. (The quality
of the estimate is likely to degrade near the ends of the value range,
since the two orderings probably don't agree on what is an extremal value;
but this is surely going to be more reliable than what we did before.)
At some point we might further improve matters by storing more than one
histogram calculated according to different orderings. But this code
would still be good fallback logic when no matches exist, so that is
not an argument for not doing this.
While here, also improve get_variable_range() to deal more honestly
with non-default collations.
This isn't back-patchable, because it requires adding another argument
to ineq_histogram_selectivity, and because it might have significant
impact on the estimation results for extension operators relying on
scalarineqsel --- mostly for the better, one hopes, but in any case
destabilizing plan choices in back branches is best avoided.
Per investigation of a report from James Lucas.
Discussion: https://postgr.es/m/CAAFmbbOvfi=wMM=3qRsPunBSLb8BFREno2oOzSBS=mzfLPKABw@mail.gmail.com
M src/backend/utils/adt/like_support.c
M src/backend/utils/adt/selfuncs.c
M src/backend/utils/cache/lsyscache.c
M src/include/utils/lsyscache.h
M src/include/utils/selfuncs.h
M src/test/regress/expected/privileges.out
M src/test/regress/sql/privileges.sql
Add unlikely() to CHECK_FOR_INTERRUPTS()
commit : 87fb04af1e705b615ac01feba958f841ea4a71a6
author : Joe Conway <[email protected]>
date : Fri, 5 Jun 2020 16:49:25 -0400
committer: Joe Conway <[email protected]>
date : Fri, 5 Jun 2020 16:49:25 -0400
Add the unlikely() branch hint macro to CHECK_FOR_INTERRUPTS().
Backpatch to REL_10_STABLE where we first started using unlikely().
Discussion: https://www.postgresql.org/message-id/flat/8692553c-7fe8-17d9-cbc1-7cddb758f4c6%40joeconway.com
M src/include/miscadmin.h
Use query collation, not column's collation, while examining statistics.
commit : 044c99bc567ac5d44dff0af7aebb81737dc36a69
author : Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 16:18:50 -0400
committer: Tom Lane <[email protected]>
date : Fri, 5 Jun 2020 16:18:50 -0400
Commit 5e0928005 changed the planner so that, instead of blindly using
DEFAULT_COLLATION_OID when invoking operators for selectivity estimation,
it would use the collation of the column whose statistics we're
considering. This was recognized as still being not quite the right
thing, but it seemed like a good incremental improvement. However,
shortly thereafter we introduced nondeterministic collations, and that
creates cases where operators can fail if they're passed the wrong
collation. We don't want planning to fail in cases where the query itself
would work, so this means that we *must* use the query's collation when
invoking operators for estimation purposes.
The only real problem this creates is in ineq_histogram_selectivity, where
the binary search might produce a garbage answer if we perform comparisons
using a different collation than the column's histogram is ordered with.
However, when the query's collation is significantly different from the
column's default collation, the estimate we previously generated would be
pretty irrelevant anyway; so it's not clear that this will result in
noticeably worse estimates in practice. (A follow-on patch will improve
this situation in HEAD, but it seems too invasive for back-patch.)
The patch requires changing the signatures of mcv_selectivity and allied
functions, which are exported and very possibly are used by extensions.
In HEAD, I just did that, but an API/ABI break of this sort isn't
acceptable in stable branches. Therefore, in v12 the patch introduces
"mcv_selectivity_ext" and so on, with signatures matching HEAD, and makes
the old functions into wrappers that assume DEFAULT_COLLATION_OID should
be used. That does not match the prior behavior, but it should avoid risk
of failure in most cases. (In practice, I think most extension datatypes
aren't collation-aware, so the change probably doesn't matter to them.)
Per report from James Lucas. Back-patch to v12 where the problem was
introduced.
Discussion: https://postgr.es/m/CAAFmbbOvfi=wMM=3qRsPunBSLb8BFREno2oOzSBS=mzfLPKABw@mail.gmail.com
M contrib/ltree/ltree_op.c
M src/backend/utils/adt/like_support.c
M src/backend/utils/adt/network_selfuncs.c
M src/backend/utils/adt/selfuncs.c
M src/include/utils/selfuncs.h
OpenSSL 3.0.0 compatibility in tests
commit : f0d2c65f17cab8cfaf4d39f7f8e2254824cd4092
author : Peter Eisentraut <[email protected]>
date : Fri, 5 Jun 2020 11:18:11 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 5 Jun 2020 11:18:11 +0200
DES has been deprecated in OpenSSL 3.0.0 which makes loading keys
encrypted with DES fail with "fetch failed". Solve by changing the
cipher used to aes256 which has been supported since 1.0.1 (and is
more realistic to use anyways).
Note that the minimum supported OpenSSL version is 1.0.1 as of
7b283d0e1d1d79bf1c962d790c94d2a53f3bb38a, so this does not introduce
any new version requirements.
Author: Daniel Gustafsson <[email protected]>
Discussion: https://www.postgresql.org/message-id/flat/FEF81714-D479-4512-839B-C769D2605F8A%40yesql.se
M src/test/ssl/Makefile
M src/test/ssl/ssl/server-password.key
Preserve pg_index.indisreplident across REINDEX CONCURRENTLY
commit : 1127f0e392c757fc4fbbeffd7d0202bb02670e9c
author : Michael Paquier <[email protected]>
date : Fri, 5 Jun 2020 10:26:02 +0900
committer: Michael Paquier <[email protected]>
date : Fri, 5 Jun 2020 10:26:02 +0900
If the flag value is lost, logical decoding would work the same way as
REPLICA IDENTITY NOTHING, meaning that no old tuple values would be
included in the changes anymore produced by logical decoding.
Author: Michael Paquier
Reviewed-by: Euler Taveira
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 12
M src/backend/catalog/index.c
M src/test/regress/expected/create_index.out
M src/test/regress/sql/create_index.sql
Reject "23:59:60.nnn" in datetime input.
commit : a9632830bb05dc98ae24017cafc652e4a66d44a8
author : Tom Lane <[email protected]>
date : Thu, 4 Jun 2020 16:42:08 -0400
committer: Tom Lane <[email protected]>
date : Thu, 4 Jun 2020 16:42:08 -0400
It's intentional that we don't allow values greater than 24 hours,
while we do allow "24:00:00" as well as "23:59:60" as inputs.
However, the range check was miscoded in such a way that it would
accept "23:59:60.nnn" with a nonzero fraction. For time or timetz,
the stored result would then be greater than "24:00:00" which would
fail dump/reload, not to mention possibly confusing other operations.
Fix by explicitly calculating the result and making sure it does not
exceed 24 hours. (This calculation is redundant with what will happen
later in tm2time or tm2timetz. Maybe someday somebody will find that
annoying enough to justify refactoring to avoid the duplication; but
that seems too invasive for a back-patched bug fix, and the cost is
probably unmeasurable anyway.)
Note that this change also rejects such input as the time portion
of a timestamp(tz) value.
Back-patch to v10. The bug is far older, but to change this pre-v10
we'd need to ensure that the logic behaves sanely with float timestamps,
which is possibly nontrivial due to roundoff considerations.
Doesn't really seem worth troubling with.
Per report from Christoph Berg.
Discussion: https://postgr.es/m/[email protected]
M src/backend/utils/adt/date.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/timestamp.c
M src/include/utils/date.h
M src/test/regress/expected/time.out
M src/test/regress/expected/timetz.out
M src/test/regress/sql/time.sql
M src/test/regress/sql/timetz.sql
psql: Clean up terminology in \dAp command
commit : f5067049cde38cd0d6333a5e3bf1bed8d99e6f44
author : Peter Eisentraut <[email protected]>
date : Thu, 4 Jun 2020 22:09:41 +0200
committer: Peter Eisentraut <[email protected]>
date : Thu, 4 Jun 2020 22:09:41 +0200
The preferred terminology has been support "function", not procedure,
for some time, so change that over. The command stays \dAp, since
\dAf is already something else.
M doc/src/sgml/ref/psql-ref.sgml
M src/bin/psql/command.c
M src/bin/psql/describe.c
M src/bin/psql/describe.h
M src/bin/psql/help.c
M src/test/regress/expected/psql.out
Fix comment in be-secure-openssl.c
commit : 3fa44a30049826bfe2fd58eec0e8acabd5757411
author : Michael Paquier <[email protected]>
date : Thu, 4 Jun 2020 13:02:59 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 4 Jun 2020 13:02:59 +0900
Since 573bd08, hardcoded DH parameters have been moved to a different
file, making the comment on top of load_dh_buffer() incorrect.
Author: Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M src/backend/libpq/be-secure-openssl.c
Fix instance of elog() called while holding a spinlock
commit : c1669fd5812a02daac58778e2708ede11edd36a3
author : Michael Paquier <[email protected]>
date : Thu, 4 Jun 2020 10:17:49 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 4 Jun 2020 10:17:49 +0900
This broke the project rule to not call any complex code while a
spinlock is held. Issue introduced by b89e151.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/backend/replication/logical/logical.c
Don't call palloc() while holding a spinlock, either.
commit : f88bd3139f3e2a557c086215c6b15d7f66bee845
author : Tom Lane <[email protected]>
date : Wed, 3 Jun 2020 12:36:00 -0400
committer: Tom Lane <[email protected]>
date : Wed, 3 Jun 2020 12:36:00 -0400
Fix some more violations of the "only straight-line code inside a
spinlock" rule. These are hazardous not only because they risk
holding the lock for an excessively long time, but because it's
possible for palloc to throw elog(ERROR), leaving a stuck spinlock
behind.
copy_replication_slot() had two separate places that did pallocs
while holding a spinlock. We can make the code simpler and safer
by copying the whole ReplicationSlot struct into a local variable
while holding the spinlock, and then referencing that copy.
(While that's arguably more cycles than we really need to spend
holding the lock, the struct isn't all that big, and this way seems
far more maintainable than copying fields piecemeal. Anyway this
is surely much cheaper than a palloc.) That bug goes back to v12.
InvalidateObsoleteReplicationSlots() not only did a palloc while
holding a spinlock, but for extra sloppiness then leaked the memory
--- probably for the lifetime of the checkpointer process, though
I didn't try to verify that. Fortunately that silliness is new
in HEAD.
pg_get_replication_slots() had a cosmetic violation of the rule,
in that it only assumed it's safe to call namecpy() while holding
a spinlock. Still, that's a hazard waiting to bite somebody, and
there were some other cosmetic coding-rule violations in the same
function, so clean it up. I back-patched this as far as v10; the
code exists before that but it looks different, and this didn't
seem important enough to adapt the patch further back.
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/slot.c
M src/backend/replication/slotfuncs.c
M src/include/replication/slot.h
doc: PG 13 relnotes: fix link for grouping sets hash overflow
commit : 4d685f6d7b65fa1ca5afb5138e610cd08a3c1e12
author : Bruce Momjian <[email protected]>
date : Tue, 2 Jun 2020 22:11:47 -0400
committer: Bruce Momjian <[email protected]>
date : Tue, 2 Jun 2020 22:11:47 -0400
Use "guc-enable-groupingsets-hash-disk".
Reported-by: TAKATSUKA Haruka
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: master
M doc/src/sgml/release-13.sgml
doc: Move wal_init_zero and wal_recycle descriptions to proper section.
commit : 43e592c706f8ce073d166f541687ad8f02dc22c0
author : Fujii Masao <[email protected]>
date : Wed, 3 Jun 2020 09:59:43 +0900
committer: Fujii Masao <[email protected]>
date : Wed, 3 Jun 2020 09:59:43 +0900
The group of wal_init_zero and wal_recycle is WAL_SETTINGS in guc.c,
but previously their documents were located in
"Replication"/"Sending Servers" section. This commit moves them to
the proper section "Write Ahead Log"/"Settings".
Back-patch to v12 where wal_init_zero and wal_recycle parameters
were introduced.
Author: Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/config.sgml
Don't call elog() while holding spinlock.
commit : caa3c4242cf86322e2ed0c86199e6462a2c41565
author : Fujii Masao <[email protected]>
date : Tue, 2 Jun 2020 19:18:13 +0900
committer: Fujii Masao <[email protected]>
date : Tue, 2 Jun 2020 19:18:13 +0900
Previously UpdateSpillStats() called elog(DEBUG2) while holding
the spinlock even though the local variables that the elog() accesses
don't need to be protected by the lock. Since spinlocks are intended
for very short-term locks, they should not be used when calling
elog(DEBUG2). So this commit moves that elog() out of spinlock period.
Author: Kyotaro Horiguchi
Reviewed-by: Amit Kapila and Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M src/backend/replication/walsender.c
Doc: Update the documentation for spilled transaction statistics.
commit : e641b2a995abfa0dd7039863e2597feb3abf2b1e
author : Amit Kapila <[email protected]>
date : Tue, 2 Jun 2020 11:11:25 +0530
committer: Amit Kapila <[email protected]>
date : Tue, 2 Jun 2020 11:11:25 +0530
Reported-by: Sawada Masahiko
Author: Sawada Masahiko, Amit Kapila
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/CA+fd4k4vNg7dRO5ECHdtQXXf1=Q4M98pfLW0dU7BKD8h79pkqA@mail.gmail.com
M doc/src/sgml/monitoring.sgml
Make ssl certificate for ssl_passphrase_callback test via Makefile
commit : b846091fd0a7a747933232016f0a52aa764398b8
author : Andrew Dunstan <[email protected]>
date : Mon, 1 Jun 2020 17:32:32 -0400
committer: Andrew Dunstan <[email protected]>
date : Mon, 1 Jun 2020 17:32:32 -0400
The recipe was previously given in comments in the module's test
script, but now we have an explicit recipe in the Makefile. The now
redundant comments in the script are removed.
This recipe shouldn't be needed in normal use, as the certificate and
key are in git and don't need to be regenerated.
Discussion: https://postgr.es/m/[email protected]
M src/test/modules/ssl_passphrase_callback/Makefile
M src/test/modules/ssl_passphrase_callback/t/001_testfunc.pl
Use correct and consistent unit abbreviation
commit : 42181b1015b18e877e65be66ac5a2e90b731ac8b
author : Peter Eisentraut <[email protected]>
date : Mon, 1 Jun 2020 21:18:36 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 1 Jun 2020 21:18:36 +0200
M src/backend/storage/sync/sync.c
Fix use-after-release mistake in currtid() and currtid2() for views
commit : ce1c5b9ae87b6153d3f40a4f7806f2effef12363
author : Michael Paquier <[email protected]>
date : Mon, 1 Jun 2020 14:41:18 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 1 Jun 2020 14:41:18 +0900
This issue has been present since the introduction of this code as of
a3519a2 from 2002, and has been found by buildfarm member prion that
uses RELCACHE_FORCE_RELEASE via the tests introduced recently in
e786be5.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/backend/utils/adt/tid.c
Fix crashes with currtid() and currtid2()
commit : e786be5fcb257a09b05bd8e509c8d1b82e626352
author : Michael Paquier <[email protected]>
date : Mon, 1 Jun 2020 10:32:06 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 1 Jun 2020 10:32:06 +0900
A relation that has no storage initializes rd_tableam to NULL, which
caused those two functions to crash because of a pointer dereference.
Note that in 11 and older versions, this has always failed with a
confusing error "could not open file".
These two functions are used by the Postgres ODBC driver, which requires
them only when connecting to a backend strictly older than 8.1. When
connected to 8.2 or a newer version, the driver uses a RETURNING clause
instead whose support has been added in 8.2, so it should be possible to
just remove both functions in the future. This is left as an issue to
address later.
While on it, add more regression tests for those functions as we never
really had coverage for them, and for aggregates of TIDs.
Reported-by: Jaime Casanova, via sqlsmith
Author: Michael Paquier
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/CAJGNTeO93u-5APMga6WH41eTZ3Uee9f3s8dCpA-GSSqNs1b=Ug@mail.gmail.com
Backpatch-through: 12
M src/backend/utils/adt/tid.c
A src/test/regress/expected/tid.out
M src/test/regress/parallel_schedule
M src/test/regress/serial_schedule
A src/test/regress/sql/tid.sql
Make install-tests target work with vpath builds
commit : af4ea507c3d9217579a8d75fc17f4796a9bab0bb
author : Andrew Dunstan <[email protected]>
date : Sun, 31 May 2020 18:33:00 -0400
committer: Andrew Dunstan <[email protected]>
date : Sun, 31 May 2020 18:33:00 -0400
Also add a top-level install-tests target.
Backpatch to all live branches.
Craig Ringer, tweaked by me.
M GNUmakefile.in
M src/test/regress/GNUmakefile
Use CP_SMALL_TLIST for hash aggregate
commit : 4cad2534da6d17067d98cf04be2dfc1bda8f2cd0
author : Tomas Vondra <[email protected]>
date : Sun, 31 May 2020 14:43:13 +0200
committer: Tomas Vondra <[email protected]>
date : Sun, 31 May 2020 14:43:13 +0200
Commit 1f39bce021 added disk-based hash aggregation, which may spill
incoming tuples to disk. It however did not request projection to make
the tuples as narrow as possible, which may mean having to spill much
more data than necessary (increasing I/O, pushing other stuff from page
cache, etc.).
This adds CP_SMALL_TLIST in places that may use hash aggregation - we do
that only for AGG_HASHED. It's unnecessary for AGG_SORTED, because that
either uses explicit Sort (which already does projection) or pre-sorted
input (which does not need spilling to disk).
Author: Tomas Vondra
Reviewed-by: Jeff Davis
Discussion: https://postgr.es/m/20200519151202.u2p2gpiawoaznsv2%40development
M contrib/postgres_fdw/expected/postgres_fdw.out
M src/backend/optimizer/plan/createplan.c
Doc: Mention about caveats of --concurrently on reindexdb page
commit : 9b60c4b979bce060495e2b05ba01d1cc6bffdd2d
author : Michael Paquier <[email protected]>
date : Sun, 31 May 2020 10:48:21 +0900
committer: Michael Paquier <[email protected]>
date : Sun, 31 May 2020 10:48:21 +0900
The documentation of REINDEX includes a complete description of
CONCURRENTLY and its advantages as well as its disadvantages, but
reindexdb was not really clear about all that.
From discussion with Tom Lane, based on a report from Andrey Klychkov.
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 12
M doc/src/sgml/ref/reindexdb.sgml
doc: Update the layout of "Viewing Statistics" section.
commit : 92f9468657f0916ce8589e13d5ebda60c7973c31
author : Fujii Masao <[email protected]>
date : Fri, 29 May 2020 17:14:33 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 29 May 2020 17:14:33 +0900
This commit updates the "Viewing Statistics" section more like
the existing catalogs chapter.
- Change its layout so that an introductory paragrap is put above
the table for each statistics view. Previously the explanations
were below the tables.
- Separate each view to different section and add index terms for them.
Author: Fujii Masao
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/config.sgml
M doc/src/sgml/high-availability.sgml
M doc/src/sgml/logical-replication.sgml
M doc/src/sgml/logicaldecoding.sgml
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/ref/initdb.sgml
M doc/src/sgml/ref/pg_basebackup.sgml
M doc/src/sgml/sslinfo.sgml
llvmjit: Fix building against LLVM 11 by removing unnecessary include.
commit : 6a4a335b841520739b7b2f0e608acdf3b814daad
author : Andres Freund <[email protected]>
date : Thu, 28 May 2020 15:08:12 -0700
committer: Andres Freund <[email protected]>
date : Thu, 28 May 2020 15:08:12 -0700
LLVM has removed this header, in the branch that will become llvm
11. But as it turns out we didn't actually need it, so just remove it.
Author: Jesse Zhang <[email protected]>
Discussion: https://postgr.es/m/CAGf+fX7bvtP0YXMu7pOsu_NwhxW6dArTkxb=jt7M2-UJkyJ_3g@mail.gmail.com
Backpatch: 11, where JIT support using llvm was introduced.
M src/backend/jit/llvm/llvmjit_inline.cpp
Initialize dblink remoteConn struct in all cases
commit : 9003b76e169e8524f8d7c7547aded4749b9c39a1
author : Joe Conway <[email protected]>
date : Thu, 28 May 2020 13:44:54 -0400
committer: Joe Conway <[email protected]>
date : Thu, 28 May 2020 13:44:54 -0400
Two of the members of rconn were left uninitialized. When
dblink_open() is called without an outer transaction it
handles the initialization for us, but with an outer
transaction it does not. Arrange for initialization
in all cases. Backpatch to all supported versions.
Reported-by: Alexander Lakhin
Discussion: https://www.postgresql.org/message-id/flat/9bd0744f-5f04-c778-c5b3-809efe9c30c7%40joeconway.com#c545909a41664991aca60c4d70a10ce7
M contrib/dblink/dblink.c
Add CHECK_FOR_INTERRUPTS() to the repeat() function
commit : 887cdff4dcbdfbfdbf9a29dfad0edc09c6ec3398
author : Joe Conway <[email protected]>
date : Thu, 28 May 2020 13:16:47 -0400
committer: Joe Conway <[email protected]>
date : Thu, 28 May 2020 13:16:47 -0400
The repeat() function loops for potentially a long time without
ever checking for interrupts. This prevents, for example, a query
cancel from interrupting until the work is all done. Fix by
inserting a CHECK_FOR_INTERRUPTS() into the loop.
Backpatch to all supported versions.
Discussion: https://www.postgresql.org/message-id/flat/8692553c-7fe8-17d9-cbc1-7cddb758f4c6%40joeconway.com
M src/backend/utils/adt/oracle_compat.c
Add missing error code to "cannot attach index ..." error.
commit : 5b1c61e8b8f98f4a1c42856819b6dea600669f47
author : Heikki Linnakangas <[email protected]>
date : Thu, 28 May 2020 12:37:00 +0300
committer: Heikki Linnakangas <[email protected]>
date : Thu, 28 May 2020 12:37:00 +0300
ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE was used in an ereport with the
same message but different errdetail a few lines earlier, so use that
here as well.
Backpatch-through: 11
M src/backend/commands/tablecmds.c
Fix typo in test comment.
commit : 0099db4ce1a19038d0d837bf82a35c989332cc58
author : Heikki Linnakangas <[email protected]>
date : Thu, 28 May 2020 12:35:18 +0300
committer: Heikki Linnakangas <[email protected]>
date : Thu, 28 May 2020 12:35:18 +0300
The same comment was copied to a few different places, with the same typo.
Backpatch down to v11, where this typo was introduced.
M src/test/regress/expected/alter_table.out
M src/test/regress/expected/hash_part.out
M src/test/regress/expected/insert.out
M src/test/regress/expected/partition_prune.out
M src/test/regress/sql/alter_table.sql
M src/test/regress/sql/hash_part.sql
M src/test/regress/sql/insert.sql
M src/test/regress/sql/partition_prune.sql
Fix some comments in xlogreader.h
commit : f93bb0ce64005c84e1d1d431eed31e0da4835078
author : Michael Paquier <[email protected]>
date : Thu, 28 May 2020 16:40:07 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 28 May 2020 16:40:07 +0900
segment_open and segment_close were mentioned with incorrect names.
Discussion: https://postgr.es/m/[email protected]
M src/include/access/xlogreader.h
Fix some mentions to memory units in postgresql.conf.sample
commit : 55ca50deb8ffaec3b81d83c9f54c94f7e519f3a6
author : Michael Paquier <[email protected]>
date : Thu, 28 May 2020 15:39:05 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 28 May 2020 15:39:05 +0900
The default unit for max_slot_wal_keep_size is megabytes. While on it,
also change temp_file_limit to use a more consistent wording.
Reported-by: Jeff Janes, Fujii Masao
Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/CAMkU=1wWZhhjpwRFKJ9waQGxxROeC0P6UqPvb90fAaGz7dhoHA@mail.gmail.com
M src/backend/utils/misc/postgresql.conf.sample
Remove some tabs in SQL code in C string literals
commit : 0a737be03cf7708e8e27f9596be3406275ec3d49
author : Peter Eisentraut <[email protected]>
date : Wed, 27 May 2020 16:07:55 +0200
committer: Peter Eisentraut <[email protected]>
date : Wed, 27 May 2020 16:07:55 +0200
This is not handled uniformly throughout the code, but at least nearby
code can be consistent.
M src/bin/initdb/initdb.c
M src/bin/pg_dump/pg_dump.c
Avoid fragmentation of logical tapes when writing concurrently.
commit : 896ddf9b3cd7dcf70e43f733ae8fec5dfe6e31af
author : Jeff Davis <[email protected]>
date : Tue, 26 May 2020 16:06:30 -0700
committer: Jeff Davis <[email protected]>
date : Tue, 26 May 2020 16:06:30 -0700
Disk-based HashAgg relies on writing to multiple tapes
concurrently. Avoid fragmentation of the tapes' blocks by
preallocating many blocks for a tape at once. No file operations are
performed during preallocation; only the block numbers are reserved.
Reviewed-by: Tomas Vondra
Discussion: https://postgr.es/m/20200519151202.u2p2gpiawoaznsv2%40development
M src/backend/utils/sort/logtape.c
Message wording tweaks
commit : 49223e106b0a43452d64b4e52719532012c81e25
author : Peter Eisentraut <[email protected]>
date : Tue, 26 May 2020 15:58:39 +0200
committer: Peter Eisentraut <[email protected]>
date : Tue, 26 May 2020 15:58:39 +0200
Make the wording of new libpq messages more similar to existing
messages in the backend.
M src/interfaces/libpq/fe-secure-openssl.c
Add lcov exclusion markers to jsonpath scanner
commit : add4211600bfece1efb3d62befbc55b521790d76
author : Peter Eisentraut <[email protected]>
date : Tue, 26 May 2020 14:09:36 +0200
committer: Peter Eisentraut <[email protected]>
date : Tue, 26 May 2020 14:09:36 +0200
This was done for all scanners in
421167362242ce1fb46d6d720798787e7cd65aad but not added to the new one.
M src/backend/utils/adt/jsonpath_scan.l
doc: PG 13 relnotes: update bool_plperl item
commit : d9101e9806e446a413bcef16d3ab65602ed028ad
author : Bruce Momjian <[email protected]>
date : Mon, 25 May 2020 21:53:53 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 25 May 2020 21:53:53 -0400
Reported-by: Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: master
M doc/src/sgml/release-13.sgml
gss: add missing references to hostgssenc and hostnogssenc
commit : ac5852fb3042a4562e8a8bab26aaa00fa8183068
author : Bruce Momjian <[email protected]>
date : Mon, 25 May 2020 20:19:28 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 25 May 2020 20:19:28 -0400
These were missed when these were added to pg_hba.conf in PG 12;
updates docs and pg_hba.conf.sample.
Reported-by: Arthur Nascimento
Bug: 16380
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 12
M doc/src/sgml/client-auth.sgml
M src/backend/libpq/pg_hba.conf.sample
Reconcile nodes/*funcs.c.
commit : 587322de36921557fcfcfdd40291669c8ee46968
author : Noah Misch <[email protected]>
date : Mon, 25 May 2020 16:23:48 -0700
committer: Noah Misch <[email protected]>
date : Mon, 25 May 2020 16:23:48 -0700
The stmt_len changes do not affect behavior. LimitPath has no other
support functions, so that part changes only debugging output.
M src/backend/nodes/copyfuncs.c
M src/backend/nodes/equalfuncs.c
M src/backend/nodes/outfuncs.c
M src/backend/nodes/readfuncs.c
Add a temp-install prerequisite to top-level "check-tests".
commit : 650eac8d7b6df7147ff4bb29b354510fe1929671
author : Noah Misch <[email protected]>
date : Mon, 25 May 2020 16:21:04 -0700
committer: Noah Misch <[email protected]>
date : Mon, 25 May 2020 16:21:04 -0700
The target failed, tested $PATH binaries, or tested a stale temporary
installation. Commit c66b438db62748000700c9b90b585e756dd54141 missed
this. Back-patch to 9.5 (all supported versions).
M GNUmakefile.in
Doc: Fix order of pg_shmem_allocations in system view list
commit : 5832396432b1ce8349a0028b52295a9874014416
author : Michael Paquier <[email protected]>
date : Mon, 25 May 2020 15:18:11 +0900
committer: Michael Paquier <[email protected]>
date : Mon, 25 May 2020 15:18:11 +0900
pg_shmem_allocations was in the wrong position with pg_stats.
Author: Ian Barwick
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
Add missing invocations to object access hooks
commit : a995b371ae29de2d38c4b7881cf414b1560e9746
author : Michael Paquier <[email protected]>
date : Sat, 23 May 2020 14:03:04 +0900
committer: Michael Paquier <[email protected]>
date : Sat, 23 May 2020 14:03:04 +0900
The following commands have been missing calls to object access hooks
InvokeObjectPost{Create|Alter}Hook normally applied to all commands:
- ALTER RULE RENAME TO
- ALTER USER MAPPING
- CREATE ACCESS METHOD
- CREATE STATISTICS
Thanks also to Robert Haas for the discussion.
Author: Mark Dilger
Reviewed-by: Álvaro Herrera, Michael Paquier
Discussion: https://postgr.es/m/[email protected]
M src/backend/commands/amcmds.c
M src/backend/commands/foreigncmds.c
M src/backend/commands/statscmds.c
M src/backend/rewrite/rewriteDefine.c
Fix two typos in a comment
commit : c99cec96b8b1e067744b8a70961a3447a2293de0
author : Alvaro Herrera <[email protected]>
date : Fri, 22 May 2020 17:39:16 -0400
committer: Alvaro Herrera <[email protected]>
date : Fri, 22 May 2020 17:39:16 -0400
They were introduced in 898e5e3290a7; backpatch to 12.
M src/backend/partitioning/partdesc.c
doc: Add note about I/O timing information in EXPLAIN and pg_stat_database.
commit : eaae947e2b99a84c8f321fe084d87daff0f77d02
author : Fujii Masao <[email protected]>
date : Fri, 22 May 2020 23:33:58 +0900
committer: Fujii Masao <[email protected]>
date : Fri, 22 May 2020 23:33:58 +0900
Explain that the followings are tracked only when track_io_timing GUC
is enabled.
- blk_read_time and blk_write_time in pg_stat_database
- time spent reading and writing data file blocks in EXPLAIN output
with BUFFERS option
Whther track_io_timing is enabled affects also blk_read_time and
blk_write_time in pg_stat_statements, but which was already documented.
Author: Atsushi Torikoshi
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/CACZ0uYHo_NwbxpLH76OGF-O=13tkR0ZM0zeyGEhZ+JEXZVRyCA@mail.gmail.com
M doc/src/sgml/monitoring.sgml
M doc/src/sgml/ref/explain.sgml
Remove unnecessary cast
commit : 574925bfd0a8175f6e161936ea11d9695677ba09
author : Peter Eisentraut <[email protected]>
date : Fri, 22 May 2020 10:36:49 +0200
committer: Peter Eisentraut <[email protected]>
date : Fri, 22 May 2020 10:36:49 +0200
Probably copied from nearby calls where it is necessary. But this one
also casts away constness, so it was doubly annoying.
M src/backend/replication/backup_manifest.c
Adjust indentation in src/backend/optimizer/README.
commit : bb2ae6fa47e5d84b6c5a9e3845021e7df031ec32
author : Etsuro Fujita <[email protected]>
date : Fri, 22 May 2020 15:45:00 +0900
committer: Etsuro Fujita <[email protected]>
date : Fri, 22 May 2020 15:45:00 +0900
The previous indentation of optimizer functions was unclear; adjust the
indentation dashes so that a deeper level of indentation indicates that
the outer optimizer function calls the inner one.
Author: Richard Guo, with additional change by me
Reviewed-by: Kyotaro Horiguchi
Discussion: https://postgr.es/m/CAMbWs4-U-ogzpchGsP2BBMufCss1hktm%2B%2BeTJK_dUC196pw0cQ%40mail.gmail.com
M src/backend/optimizer/README
doc: PG 13 relnotes: Improve FETCH link
commit : 10e1521f5c29da2dbe331462feb5408d5ef16915
author : Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 22:07:17 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 22:07:17 -0400
Reported-by: Erwin Brandstetter
Discussion: https://postgr.es/m/CAGHENJ4X626ZfYhondXSP4sQgC5zDtsp_LNg1QaD+U7vfgYXQQ@mail.gmail.com
Backpatch-through: head
M doc/src/sgml/release-13.sgml
doc: PG 13 relnotes: fix FETCH FIRST ... WITH TIES xreflabel
commit : 6ed02e6ac3aac86e8f527e111064012e7911cf43
author : Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 20:34:37 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 20:34:37 -0400
Reported-by: Erwin Brandstetter
Discussion: https://postgr.es/m/CAGHENJ4X626ZfYhondXSP4sQgC5zDtsp_LNg1QaD+U7vfgYXQQ@mail.gmail.com
Backpatch-through: head
M doc/src/sgml/release-13.sgml
doc: suggest 1.1 as a random_page_cost value for SSDs
commit : 1c2ff3ef07d25ca4d291d35f8a31fe513fde58ab
author : Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 20:28:38 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 20:28:38 -0400
Reported-by: yigong hu
Discussion: https://postgr.es/m/CAOxFffcourucFqSk+tZA13ErS3XRYkDy6EeaPff4AvHGiEEuug@mail.gmail.com
Backpatch-through: 9.5
M doc/src/sgml/config.sgml
doc: Simplify mention of unique indexes for NULL control
commit : c20fd088f1c5fb5e492f40d427c45b8de38c879c
author : Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 19:49:30 -0400
committer: Bruce Momjian <[email protected]>
date : Thu, 21 May 2020 19:49:30 -0400
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/indices.sgml
Doc: Describe CREATE INDEX deduplication strategy.
commit : 449e14a5618432f01066c33055229b96666bd925
author : Peter Geoghegan <[email protected]>
date : Thu, 21 May 2020 13:36:45 -0700
committer: Peter Geoghegan <[email protected]>
date : Thu, 21 May 2020 13:36:45 -0700
The B-Tree index deduplication strategy used during CREATE INDEX and
REINDEX differs from the lazy strategy used by retail inserts. Make
that clear by adding a new paragraph to the B-Tree implementation
section of the documentation.
In passing, do some copy-editing of nearby deduplication documentation.
M doc/src/sgml/btree.sgml
Clear some style deviations.
commit : 3350fb5d1f9d73de15428e9bfa83dce96421fc14
author : Noah Misch <[email protected]>
date : Thu, 21 May 2020 08:31:16 -0700
committer: Noah Misch <[email protected]>
date : Thu, 21 May 2020 08:31:16 -0700
M contrib/pgcrypto/pgp-mpi-internal.c
M src/backend/postmaster/autovacuum.c
M src/backend/storage/buffer/freelist.c
M src/backend/storage/smgr/md.c
M src/backend/utils/misc/queryenvironment.c
M src/interfaces/libpq/fe-misc.c
M src/pl/plpython/plpy_cursorobject.c
M src/pl/plpython/plpy_planobject.c
M src/pl/plpython/plpy_resultobject.c
M src/pl/plpython/plpy_subxactobject.c
M src/port/random.c
Use explicit_bzero() when clearing sslpassword in libpq
commit : e4db972ed5f12c09403ff0be24e12e5d4032aaaa
author : Michael Paquier <[email protected]>
date : Thu, 21 May 2020 15:49:20 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 21 May 2020 15:49:20 +0900
Since 74a308c, any security-sensitive information gets cleared from
memory this way. This was forgotten in 4dc6355.
Author: Daniel Gustafsson
Reviewed-by: Peter Eisentraut, Michael Paquier
Discussion: https://postgr.es/m/[email protected]
M src/interfaces/libpq/fe-connect.c
Fix MSVC installations with multiple "configure" files detected
commit : d2a9959907a03682f4fe182086f9936aca6b2a4f
author : Michael Paquier <[email protected]>
date : Thu, 21 May 2020 14:41:15 +0900
committer: Michael Paquier <[email protected]>
date : Thu, 21 May 2020 14:41:15 +0900
When installing binaries and libraries using the MSVC installation
routines, the operation gets done after moving to the root folder, whose
location is detected by checking if "configure" exists two times in a
row. So, calling the installation script from src/tools/msvc/ with an
extra "configure" file four levels up the root path of the code tree
causes the execution to go further up, leading to a failure in finding
the builds. This commit fixes the issue by moving to the root folder of
the code tree only once, when necessary.
Author: Arnold Müller
Reviewed-by: Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M src/tools/msvc/Install.pm
doc: Adding a partition does not require Access Exclusive lock
commit : e1218f59ea4c0605e72298fa121d5aef4c66def2
author : Alvaro Herrera <[email protected]>
date : Wed, 20 May 2020 14:35:39 -0400
committer: Alvaro Herrera <[email protected]>
date : Wed, 20 May 2020 14:35:39 -0400
This doc update was missed in 898e5e3290a7. Backpatch to 12.
Pointed out by Pavel Luzanov
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/ddl.sgml
Doc: Fix description of pg_class.relreplident
commit : 39cb2ee09cf900454c1bf14f56048b40c840a490
author : Michael Paquier <[email protected]>
date : Wed, 20 May 2020 14:20:50 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 20 May 2020 14:20:50 +0900
The description missed a comma and lacked an explanation of what happens
with REPLICA IDENTITY USING INDEX when the dependent index is dropped.
Author: Marina Polyakova
Reviewed-by: Daniel Gustafsson, Michael Paquier
Discussion: https://postgr.es/m/[email protected]
Backpatch-through: 9.5
M doc/src/sgml/catalogs.sgml
Doc: Replace reference to pg_stat_wal_receiver.received_lsn by flushed_lsn
commit : a56e7046d6f2a2ad23ffb9083eba9bc822f18881
author : Michael Paquier <[email protected]>
date : Wed, 20 May 2020 09:12:52 +0900
committer: Michael Paquier <[email protected]>
date : Wed, 20 May 2020 09:12:52 +0900
Oversight in 2c8dd05d, where the view's column has been renamed.
Reported-by: Fujii Masao
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/high-availability.sgml
part_strategy does not need its very own keyword classification.
commit : c7d65a252cdb7219deb48899fa643c5fd2cc3877
author : Tom Lane <[email protected]>
date : Tue, 19 May 2020 20:09:59 -0400
committer: Tom Lane <[email protected]>
date : Tue, 19 May 2020 20:09:59 -0400
This should be plain old ColId. Making it so makes the grammar less
complicated, and makes the compiled tables a kilobyte or so smaller
(likely because they don't have to deal with a keyword classification
that's not used anyplace else).
M src/backend/parser/gram.y
Reconsider nbtree page deletion assertion.
commit : 67b0b2dbf947c2308050e49b4591a4bb0e9650fd
author : Peter Geoghegan <[email protected]>
date : Tue, 19 May 2020 15:04:34 -0700
committer: Peter Geoghegan <[email protected]>
date : Tue, 19 May 2020 15:04:34 -0700
Commit 624686abcf8 added an assertion that verified that _bt_search
successfully relocated the leaf page undergoing deletion. Page deletion
cannot deal with the case where the descent stack is to the right of the
page, so this seemed critical (deletion can only handle the case where
the descent stack is to the left of the leaf/target page). However, the
assertion went a bit too far.
Since only a buffer pin is held on the leaf page throughout the call to
_bt_search, nothing guarantees that it can't have split during this
small window. And if does actually split, _bt_search may end up
"relocating" a page to the right of the original target leaf page. This
scenario seems extremely unlikely, but it must still be considered.
Remove the assertion, and document how we cope in this scenario.
M src/backend/access/nbtree/nbtpage.c
WITH TIES: number of rows is optional and defaults to one
commit : c301c2e739c642199f9e4c62d867dc7bd5ef0fd1
author : Alvaro Herrera <[email protected]>
date : Mon, 18 May 2020 19:28:46 -0400
committer: Alvaro Herrera <[email protected]>
date : Mon, 18 May 2020 19:28:46 -0400
FETCH FIRST .. ONLY implements this correctly, but we missed to include
it for FETCH FIRST .. WITH TIES in commit 357889eb17bb.
Author: Vik Fearing
Discussion: https://postgr.es/m/[email protected]
M src/backend/parser/gram.y
M src/test/regress/expected/limit.out
M src/test/regress/sql/limit.sql
Stamp 13beta1.
commit : 7966b7980138ebcee7ae986ebcc393aea38a35c0
author : Tom Lane <[email protected]>
date : Mon, 18 May 2020 16:09:19 -0400
committer: Tom Lane <[email protected]>
date : Mon, 18 May 2020 16:09:19 -0400
M configure
M configure.in
Remove unused variables.
commit : fe0062c900efa5618197a8e3c88b027e93248db4
author : Tom Lane <[email protected]>
date : Mon, 18 May 2020 13:21:36 -0400
committer: Tom Lane <[email protected]>
date : Mon, 18 May 2020 13:21:36 -0400
g_comment_start and g_comment_end have been unused since commit
30ab5bd43d8f2082659191de8ae19be98c960ad7.
Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M src/bin/pg_dump/pg_dump.c
M src/bin/pg_dump/pg_dump.h
doc: PG 13 relnotes: fix typos
commit : b31d6efe3d06ca5983bbe63084322b5494b7c3ef
author : Bruce Momjian <[email protected]>
date : Mon, 18 May 2020 10:20:09 -0400
committer: Bruce Momjian <[email protected]>
date : Mon, 18 May 2020 10:20:09 -0400
Reported-by: Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/release-13.sgml
Translation updates
commit : ac449d88016080663dbc1cd48004b5a481c034ce
author : Peter Eisentraut <[email protected]>
date : Mon, 18 May 2020 12:49:30 +0200
committer: Peter Eisentraut <[email protected]>
date : Mon, 18 May 2020 12:49:30 +0200
Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 031ca65d7825c3e539a3e62ea9d6630af12e6b6b
M src/backend/po/es.po
M src/bin/initdb/po/es.po
M src/bin/pg_archivecleanup/po/es.po
M src/bin/pg_basebackup/po/de.po
M src/bin/pg_basebackup/po/es.po
M src/bin/pg_checksums/po/es.po
M src/bin/pg_config/po/es.po
M src/bin/pg_controldata/po/es.po
M src/bin/pg_ctl/po/es.po
M src/bin/pg_dump/po/es.po
M src/bin/pg_resetwal/po/es.po
M src/bin/pg_rewind/po/es.po
M src/bin/pg_test_fsync/po/es.po
M src/bin/pg_test_timing/po/es.po
M src/bin/pg_upgrade/po/es.po
M src/bin/pg_waldump/po/es.po
M src/bin/psql/po/es.po
M src/bin/psql/po/ja.po
M src/bin/scripts/po/es.po
M src/interfaces/ecpg/ecpglib/po/es.po
M src/interfaces/ecpg/preproc/po/de.po
M src/interfaces/ecpg/preproc/po/es.po
M src/interfaces/libpq/po/de.po
M src/interfaces/libpq/po/es.po
M src/pl/plperl/po/es.po
M src/pl/plpgsql/src/po/es.po
M src/pl/plpython/po/es.po
M src/pl/tcl/po/es.po
Fix typos in README
commit : a01debe3db3d7f09797460500f217530b502c2de
author : Magnus Hagander <[email protected]>
date : Mon, 18 May 2020 11:55:11 +0200
committer: Magnus Hagander <[email protected]>
date : Mon, 18 May 2020 11:55:11 +0200
Author: Daniel Gustafsson
M src/backend/optimizer/README
Fix comment in slot.c.
commit : 7e041b0c1d13b243b595d0b00145cb1116e4c327
author : Amit Kapila <[email protected]>
date : Mon, 18 May 2020 07:53:26 +0530
committer: Amit Kapila <[email protected]>
date : Mon, 18 May 2020 07:53:26 +0530
Reported-by: Sawada Masahiko
Author: Sawada Masahiko
Reviewed-by: Amit Kapila
Backpatch-through: 9.5
Discussion: https://postgr.es/m/CA+fd4k4Ws7M7YQ8PqSym5WB1y75dZeBTd1sZJUQdfe0KJQ-iSA@mail.gmail.com
M src/backend/replication/slot.c
Cosmetic improvement for psql opfamily-related information
commit : 18b9d22cef988c4a67d440f6cafc160d9c05871b
author : Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 13:02:16 +0300
committer: Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 13:02:16 +0300
* Rename column "Opfamily Name" to "Operator family" for uniformity.
* Rename column alias from "t1" to "t".
M src/bin/psql/describe.c
M src/test/regress/expected/psql.out
Fix translate_columns[] arrays in opfamily-related psql functions
commit : 29b6ddd38d0914340c3c4bb4bb4bd5c4a3c02dca
author : Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 12:53:34 +0300
committer: Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 12:53:34 +0300
Make number of translate_columns elements match the number of output columns.
The only "true" value, which was previously specified, seems to be intended
for opfamily operator "purpose" column. But that column has already translated
values substituted. So, all elements in translate_columns[] should be "false".
M src/bin/psql/describe.c
Improve ordering for \dAo and \dAp psql commands
commit : b1953e67e4c481f8d3844dcdd8fdd4054d7e7604
author : Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 12:41:19 +0300
committer: Alexander Korotkov <[email protected]>
date : Sun, 17 May 2020 12:41:19 +0300
This commit changes ORDER BY clause for \dAo and \dAp psql commands in
the following way.
* Operators for the same types are grouped together.
* Same-class operators and procedures are listed before cross-class operators
and procedures.
Modification of ORDER BY clause for \dAp required removing DISTINCT clause,
which doesn't seem to affect anything.
Discussion: https://postgr.es/m/20200511210856.GA18368%40alvherre.pgsql
Author: Alvaro Herrera revised by me
Reviewed-by: Alexander Korotkov, Nikita Glukhov
M src/bin/psql/describe.c
M src/test/regress/expected/psql.out
M src/test/regress/sql/psql.sql
Fix more typos and grammar problems in the glossary
commit : eeba6c7e4366057a09c53efe11f144db55e68c5e
author : Alvaro Herrera <[email protected]>
date : Sat, 16 May 2020 22:19:02 -0400
committer: Alvaro Herrera <[email protected]>
date : Sat, 16 May 2020 22:19:02 -0400
Author: Erik Rijkers <[email protected]>
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/glossary.sgml
Mop-up for wait event naming issues.
commit : 3048898e73c75f54bb259323382e0e7f6368cb6f
author : Tom Lane <[email protected]>
date : Sat, 16 May 2020 21:00:05 -0400
committer: Tom Lane <[email protected]>
date : Sat, 16 May 2020 21:00:05 -0400
Synchronize the event names for parallel hash join waits with other
event names, by getting rid of the slashes and dropping "-ing"
suffixes. Rename ClogGroupUpdate to XactGroupUpdate, to match the
new SLRU name. Move the ProcSignalBarrier event to the IPC category;
it doesn't belong under IO.
Also a bit more wordsmithing in the wait event documentation tables.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/monitoring.sgml
M src/backend/access/transam/clog.c
M src/backend/executor/nodeHash.c
M src/backend/executor/nodeHashjoin.c
M src/backend/postmaster/pgstat.c
M src/include/pgstat.h
Make pg_stat_wal_receiver consistent with the WAL receiver's shmem info
commit : 2c8dd05d6cbc86b7ad21cfd7010e041bb4c3950b
author : Michael Paquier <[email protected]>
date : Sun, 17 May 2020 09:22:07 +0900
committer: Michael Paquier <[email protected]>
date : Sun, 17 May 2020 09:22:07 +0900
d140f2f3 has renamed receivedUpto to flushedUpto, and has added
writtenUpto to the WAL receiver's shared memory information, but
pg_stat_wal_receiver was not consistent with that. This commit renames
received_lsn to flushed_lsn, and adds a new column called written_lsn.
Bump catalog version.
Author: Michael Paquier
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/monitoring.sgml
M src/backend/catalog/system_views.sql
M src/backend/replication/walreceiver.c
M src/include/catalog/catversion.h
M src/include/catalog/pg_proc.dat
M src/test/regress/expected/rules.out
Fix bugs in OpenSSL hook renaming.
commit : e78b93094518b1e262cba8115470f252dde6f446
author : Tom Lane <[email protected]>
date : Sat, 16 May 2020 19:44:49 -0400
committer: Tom Lane <[email protected]>
date : Sat, 16 May 2020 19:44:49 -0400
libpq's exports.txt was overlooked in commit 36d108761, which the
buildfarm is quite unhappy about.
Also, I'd gathered that the plan included renaming PQgetSSLKeyPassHook
to PQgetSSLKeyPassHook_OpenSSL, but that didn't happen in the patch
as committed. I'm taking it on my own authority to do so now, since
the window before beta1 is closing fast.
M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/exports.txt
M src/interfaces/libpq/fe-secure-openssl.c
M src/interfaces/libpq/libpq-fe.h
Rename PQsetSSLKeyPassHook and friends
commit : 36d1087611bf96b0cd716666fc8c4a2d168fa501
author : Andrew Dunstan <[email protected]>
date : Sat, 16 May 2020 16:20:43 -0400
committer: Andrew Dunstan <[email protected]>
date : Sat, 16 May 2020 16:20:43 -0400
4dc6355210 provided a way for libraries and clients to modify how libpq
handles client certificate passphrases, by installing a hook. However,
these routines are quite specific to how OpenSSL works, so it's
misleading and not future-proof to have these names not refer to OpenSSL.
Change all the names to add "_OpenSSL" after "Hook", and fix the docs
accordingly.
Author: Daniel Gustafsson
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/libpq.sgml
M src/interfaces/libpq/fe-secure-openssl.c
M src/interfaces/libpq/fe-secure.c
M src/interfaces/libpq/libpq-fe.h
Fix typo in glossary
commit : 1cbc143f06113cbd1b94790c0781aa4b410cffc2
author : Alvaro Herrera <[email protected]>
date : Sat, 16 May 2020 15:10:36 -0400
committer: Alvaro Herrera <[email protected]>
date : Sat, 16 May 2020 15:10:36 -0400
Reported privately by Justin Pryzby
M doc/src/sgml/glossary.sgml
Run pgindent with new pg_bsd_indent version 2.1.1.
commit : fa27dd40d5c5f56a1ee837a75c97549e992e32a4
author : Tom Lane <[email protected]>
date : Sat, 16 May 2020 11:54:51 -0400
committer: Tom Lane <[email protected]>
date : Sat, 16 May 2020 11:54:51 -0400
Thomas Munro fixed a longstanding annoyance in pg_bsd_indent, that
it would misformat lines containing IsA() macros on the assumption
that the IsA() call should be treated like a cast. This improves
some other cases involving field/variable names that match typedefs,
too. The only places that get worse are a couple of uses of the
OpenSSL macro STACK_OF(); we'll gladly take that trade-off.
Discussion: https://postgr.es/m/[email protected]
M src/backend/commands/explain.c
M src/backend/commands/tablecmds.c
M src/backend/commands/typecmds.c
M src/backend/executor/nodeAgg.c
M src/backend/executor/nodeProjectSet.c
M src/backend/libpq/be-secure-openssl.c
M src/backend/nodes/outfuncs.c
M src/backend/optimizer/path/costsize.c
M src/backend/optimizer/plan/setrefs.c
M src/backend/optimizer/util/pathnode.c
M src/backend/parser/analyze.c
M src/backend/parser/parse_agg.c
M src/backend/parser/parse_clause.c
M src/backend/parser/parse_expr.c
M src/backend/statistics/extended_stats.c
M src/backend/utils/adt/datetime.c
M src/backend/utils/adt/formatting.c
M src/backend/utils/adt/numeric.c
M src/backend/utils/adt/ruleutils.c
M src/backend/utils/adt/timestamp.c
M src/backend/utils/adt/varbit.c
M src/backend/utils/adt/varchar.c
M src/bin/pg_dump/pg_backup_directory.c
M src/bin/psql/tab-complete.c
M src/common/jsonapi.c
M src/interfaces/ecpg/ecpglib/execute.c
M src/interfaces/ecpg/ecpglib/prepare.c
M src/interfaces/libpq/fe-secure-openssl.c
M src/pl/plpgsql/src/pl_exec.c
M src/timezone/localtime.c
M src/timezone/strftime.c
M src/timezone/zic.c
M src/tools/pgindent/pgindent
Final pgindent run with pg_bsd_indent version 2.1.
commit : e02ad575d8ab6b44500d2a3fd8c3212345e3aa2b
author : Tom Lane <[email protected]>
date : Sat, 16 May 2020 11:49:14 -0400
committer: Tom Lane <[email protected]>
date : Sat, 16 May 2020 11:49:14 -0400
This is just to provide a clean basis for comparison of the results
of the new version. I did fix a typo that crept into 242dfcbaf.
Discussion: https://postgr.es/m/[email protected]
M src/backend/access/nbtree/nbtutils.c
M src/tools/pgindent/typedefs.list
Fix assertion with relation using REPLICA IDENTITY FULL in subscriber
commit : 7ccb2f54d9f3f3c5b4ac092d62c846b02a47f8d5
author : Michael Paquier <[email protected]>
date : Sat, 16 May 2020 18:15:18 +0900
committer: Michael Paquier <[email protected]>
date : Sat, 16 May 2020 18:15:18 +0900
In a logical replication subscriber, a table using REPLICA IDENTITY FULL
which has a primary key would try to use the primary key's index
available to scan for a tuple, but an assertion only assumed as correct
the case of an index associated to REPLICA IDENTITY USING INDEX. This
commit corrects the assertion so as the use of a primary key index is a
valid case.
Reported-by: Dilip Kumar
Analyzed-by: Dilip Kumar
Author: Euler Taveira
Reviewed-by: Michael Paquier, Masahiko Sawada
Discussion: https://postgr.es/m/CAFiTN-u64S5bUiPL1q5kwpHNd0hRnf1OE-bzxNiOs5zo84i51w@mail.gmail.com
Backpatch-through: 10
M src/backend/executor/execReplication.c
M src/test/subscription/t/001_rep_changes.pl
Change locktype "speculative token" to "spectoken".
commit : 474e7da6485687425d216eda1685d7e530b24fd6
author : Tom Lane <[email protected]>
date : Fri, 15 May 2020 21:47:21 -0400
committer: Tom Lane <[email protected]>
date : Fri, 15 May 2020 21:47:21 -0400
It's just weird that this name wasn't chosen to look like an
identifier. The suspicion that it wasn't thought about too
hard is reinforced by the fact that it wasn't documented in
the pg_locks view (until I did so, a day or two back).
Update, and add a comment reminding future adjusters of this
array to fix the docs too.
Do some desultory wordsmithing on various entries in the wait
events tables.
Discussion: https://postgr.es/m/[email protected]
M doc/src/sgml/catalogs.sgml
M doc/src/sgml/monitoring.sgml
M src/backend/utils/adt/lockfuncs.c
M src/test/isolation/expected/insert-conflict-specconflict.out
M src/test/isolation/specs/insert-conflict-specconflict.spec
Fix walsender error cleanup code
commit : 1d3743023ef8fa665902e791b0d52e9a1ab419cb