Plug holes in SP-GiST quad tree getQuadrant()
commit : 84572589029e53a5391f7047cf97969cd5b2b77d
author : John Naylor <john.naylor@postgresql.org>
date : Wed, 14 Oct 2026 18:19:39 +0700
committer: John Naylor <john.naylor@postgresql.org>
date : Wed, 14 Oct 2026 18:19:39 +0700
Click here for diff
getQuadrant() places a point on each axis with the fuzzy comparisons
FPlt(), FPgt() and FPeq(), which do not cover every case. FPeq()
compares the rounded difference against EPSILON, while FPlt() and FPgt()
round the sum of one operand and EPSILON. When the centroid plus
EPSILON rounds up, a point equal to that rounded sum is more than
EPSILON above the centroid, so FPeq() is false. FPgt() compares it with
the same rounded sum, so it is false too, and FPlt() is false because
the point is above the centroid. The same gap exists below the
centroid, when the centroid minus EPSILON rounds down. No quadrant
matches, and index builds, inserts and searches fail with
"getQuadrant: impossible case".
To fix, fall back to deciding each axis separately: Use fuzzy tests
first and then tiebreak with exact comparisons. That gives every finite
value a quadrant (NaN coordinates are still an error). Points that
matched a fuzzy test before are routed as before, so existing indexes
remain valid.
Bug: #19597
Reported-by: Michael Malis <malis@pgrust.com>
Author: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Reviewed-by: Andrey Rachitskiy <pl0h0yp1@gmail.com>
Reviewed-by: Pierre Forstmann <pierre.forstmann@gmail.com>
Discussion: https://postgr.es/m/19597-39c532e61d78dff6@postgresql.org
Backpatch-through: 14
M src/backend/access/spgist/spgquadtreeproc.c
M src/test/regress/expected/spgist.out
M src/test/regress/sql/spgist.sql
Plug holes in SP-GiST quad tree getQuadrant()
commit : eab68b1be6aa05e42330d5d7a00006e7dac8f997
author : John Naylor <john.naylor@postgresql.org>
date : Wed, 14 Oct 2026 18:19:39 +0700
committer: John Naylor <john.naylor@postgresql.org>
date : Wed, 14 Oct 2026 18:19:39 +0700
Click here for diff
getQuadrant() places a point on each axis with the fuzzy comparisons
FPlt(), FPgt() and FPeq(), which do not cover every case. FPeq()
compares the rounded difference against EPSILON, while FPlt() and FPgt()
round the sum of one operand and EPSILON. When the centroid plus
EPSILON rounds up, a point equal to that rounded sum is more than
EPSILON above the centroid, so FPeq() is false. FPgt() compares it with
the same rounded sum, so it is false too, and FPlt() is false because
the point is above the centroid. The same gap exists below the
centroid, when the centroid minus EPSILON rounds down. No quadrant
matches, and index builds, inserts and searches fail with
"getQuadrant: impossible case".
To fix, fall back to deciding each axis separately: Use fuzzy tests
first and then tiebreak with exact comparisons. That gives every finite
value a quadrant (NaN coordinates are still an error). Points that
matched a fuzzy test before are routed as before, so existing indexes
remain valid.
Bug: #19597
Reported-by: Michael Malis <malis@pgrust.com>
Author: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
Reviewed-by: Andrey Rachitskiy <pl0h0yp1@gmail.com>
Reviewed-by: Pierre Forstmann <pierre.forstmann@gmail.com>
Discussion: https://postgr.es/m/19597-39c532e61d78dff6@postgresql.org
Backpatch-through: 14
M src/backend/access/spgist/spgquadtreeproc.c
M src/test/regress/expected/spgist.out
M src/test/regress/sql/spgist.sql
v2.59.3: Weak Encryption Subkey Bug
commit : 46cdca625a73403cad4774d97354a1fac1e91e51
author : David Steele <david@pgbackrest.org>
date : Sun, 4 Oct 2026 09:29:49 +0200
committer: David Steele <david@pgbackrest.org>
date : Sun, 4 Oct 2026 09:29:49 +0200
Click here for diff
IMPORTANT NOTE: In prior versions it was possible for weak encryption subkeys and salts to be generated if there was an error accessing system random data.
Bug Fixes:
* Fix possible checksum error loading encrypted info and manifest files. (Fixed by j0uinim. Reviewed by David Steele.)
* Fix possible weak encryption subkeys/salts. (Fixed by j0uinim. Reviewed by David Steele, Stefan Fercot, Douglas J Hunley.)
M CONTRIBUTING.md
M README.md
M doc/RELEASE.md
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.3.xml
M meson.build
M src/version.h
v2.59.2: PostgreSQL 19beta4 Support
commit : d5138e2e3b92fe806505bc8b9c69f36bd70cea18
author : David Steele <david@pgbackrest.org>
date : Sun, 27 Sep 2026 14:15:45 +0300
committer: David Steele <david@pgbackrest.org>
date : Sun, 27 Sep 2026 14:15:45 +0300
Click here for diff
Bug Fixes:
* Fix empty block map when file is truncated to zero during backup. (Reviewed by Douglas J Hunley. Reported by JPCOSTA78.)
* Disable read retry when filters are passed to the driver. (Reviewed by Douglas J Hunley. Reported by megamaced.)
* Fix pagination of S3 version listing. (Reviewed by Douglas J Hunley, guruguruguru. Reported by guruguruguru.)
* Set the Azure version header for SAS authentication. (Reviewed by Douglas J Hunley. Reported by Florian Helmberger.)
* Fix async archive-push stalling on a zero-size backup history file. (Fixed by Andrew Kroh. Reviewed by David Steele, Douglas J Hunley.)
* Fix annotate command on a remote encrypted repository. (Fixed by Douglas J Hunley. Reviewed by David Steele.)
Features:
* PostgreSQL 19beta4 support.
M CONTRIBUTING.md
M README.md
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.2.xml
M meson.build
M src/version.h
v2.59.1: PostgreSQL 19beta3 Support
commit : 8c8f3ee63e310f0b3ea10b55ed3b96b4cc9296da
author : David Steele <david@pgbackrest.org>
date : Mon, 17 Aug 2026 16:08:40 +0700
committer: David Steele <david@pgbackrest.org>
date : Mon, 17 Aug 2026 16:08:40 +0700
Click here for diff
Bug Fixes:
* Fix hang when the chunk buffer is smaller than the input buffer. (Reviewed by Andrew Pogrebnoi, Douglas J Hunley. Reported by crajac66.)
* Compare a new backup label only against its own full backup set. (Reviewed by Douglas J Hunley. Reported by Anton Glushakov.)
* Fix source archives generated by GitHub missing files required to build. (Reported by aardvarkzed.)
Features:
* PostgreSQL 19beta3 support. (Contributed by Lardière Sébastien. Reviewed by David Steele.)
Documentation Improvements:
* Document exception for dots in S3 bucket names when repo-s3-uri-style=path.
* Remove explicit hot_standby configuration from user guide.
M CONTRIBUTING.md
M README.md
M doc/resource/exe.cache
M doc/resource/git-history.cache
M doc/xml/auto/metric-coverage-report.auto.xml
M doc/xml/index.xml
M doc/xml/news.xml
M doc/xml/release/2020s/2026/2.59.1.xml
M doc/xml/release/contributor.xml
M meson.build
M src/version.h
Stamp 18.6.
commit : 724edf9bde9d356724ad384a2e196edc3c9f80f7
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:38:31 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:38:31 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Release notes for 18.6.
commit : 841d0cb0f9b8b1b25e7b299ac0eb134074b45a08
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:37:01 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Tue, 11 Aug 2026 14:37:01 -0400
Click here for diff
Stamp 14.24.
commit : 6b3806732b7c5df06bdd0ed150e8a07b4ad62315
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:59:18 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:59:18 -0400
Click here for diff
M configure
M configure.ac
Update .abi-compliance-history for security fixes.
commit : 18ec528b8c3804f4c101e3a8d091ada7c5a40bb4
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:49 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:49 -0400
Click here for diff
Stamp 15.19.
commit : 2ff1375b5dd8bf09d8cb0e795974528180fd75ca
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:57:41 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:57:41 -0400
Click here for diff
M configure
M configure.ac
Update .abi-compliance-history for security fixes.
commit : 492b517f362a4325bbcd6c1aa6f1204b7696d7ed
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff
Stamp 16.15.
commit : 7d3e000c5961a544302072058a1184e9a588837b
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:56:00 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:56:00 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Update .abi-compliance-history for security fixes.
commit : a5c8e521cf9e2d2334cf3c94ed64edb397b00e01
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff
Stamp 17.11.
commit : 083ac033419f690758508e08c1736089384bbee8
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:54:09 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 16:54:09 -0400
Click here for diff
M configure
M configure.ac
M meson.build
Update .abi-compliance-history for security fixes.
commit : 83bb18b714e7b98c243083d2480828331601de23
author : Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
committer: Tom Lane <tgl@sss.pgh.pa.us>
date : Mon, 10 Aug 2026 12:35:48 -0400
Click here for diff