↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

DocumentationVersion comparison

POSTGRESQL · VERSION COMPARE

PostgreSQL 10.6 release changes

All features, fixes, and compatibility notes in this release, with related records from other versions.

All changes in this release
All changes in this release

Includes changes after the source version through the target. A major version name means its initial release.

From PostgreSQL 9.0 onward: 17 major branches and 352 release notes. Updated 2026-09-26.

Complete release changes

10.6

2018-11-08

Export JSON
71changesFeatures, fixes, improvements
1releaseGrouped by release
1CVEVulnerability IDs mentioned in these notes

10.6 HistoricalSupport ends 2022-11-10

Security records mentioned in this release 1 CVE
CVEs mentioned in these notes, including possible follow-up fixes for earlier vulnerabilities
CVE / issueSeverityFixed version
CVE-2018-16850

Ensure proper quoting of transition table names when pg_dump emits CREATE TRIGGER ... REFERENCING commands

8.810.6

PostgreSQL 10.6

Migration and compatibility

A dump/restore is not required for those running 10.X.

However, if you use the pg_stat_statements extension, see the changelog entry below about that.

Also, if you are upgrading from a version earlier than 10.4, see Section E.20.

SecurityEnsure proper quoting of transition table names when pg_dump emits CREATE TRIGGER ... REFERENCING commands

Changes

Ensure proper quoting of transition table names when pg_dump emits CREATE TRIGGER ... REFERENCING commands (Tom Lane)

This oversight could be exploited by an unprivileged user to gain superuser privileges during the next dump/reload or pg_upgrade run. (CVE-2018-16850)

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix corner-case failures in has_foo_privilege() family of functions

Changes

Fix corner-case failures in has_foo_privilege() family of functions (Tom Lane)

Return NULL rather than throwing an error when an invalid object OID is provided. Some of these functions got that right already, but not all. has_column_privilege() was additionally capable of crashing on some platforms.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix pg_get_partition_constraintdef() to return NULL rather than fail when passed an invalid relation OID

Changes

Fix pg_get_partition_constraintdef() to return NULL rather than fail when passed an invalid relation OID (Tom Lane)

ImprovementsAvoid O(N^2) slowdown in regular expression match/split functions on long strings

Changes

Avoid O(N^2) slowdown in regular expression match/split functions on long strings (Andrew Gierth)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix parsing of standard multi-character operators that are immediately followed by a comment or + or -

Changes

Fix parsing of standard multi-character operators that are immediately followed by a comment or + or - (Andrew Gierth)

This oversight could lead to parse errors, or to incorrect assignment of precedence.

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid O(N^3) slowdown in lexer for long strings of + or - characters

Changes

Avoid O(N^3) slowdown in lexer for long strings of + or - characters (Andrew Gierth)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix mis-execution of SubPlans when the outer query is being scanned backwards

Changes

Fix mis-execution of SubPlans when the outer query is being scanned backwards (Andrew Gierth)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix failure of UPDATE/DELETE ... WHERE CURRENT OF ... after rewinding the referenced cursor

Changes

Fix failure of UPDATE/DELETE ... WHERE CURRENT OF ... after rewinding the referenced cursor (Tom Lane)

A cursor that scans multiple relations (particularly an inheritance tree) could produce wrong behavior if rewound to an earlier relation.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix EvalPlanQual to handle conditionally-executed InitPlans properly

Changes

Fix EvalPlanQual to handle conditionally-executed InitPlans properly (Andrew Gierth, Tom Lane)

This resulted in hard-to-reproduce crashes or wrong answers in concurrent updates, if they contained code such as an uncorrelated sub-SELECT inside a CASE construct.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsPrevent creation of a partition in a trigger attached to its parent table

Changes

Prevent creation of a partition in a trigger attached to its parent table (Amit Langote)

Ideally we'd allow that, but for the moment it has to be blocked to avoid crashes.

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix problems with applying ON COMMIT DELETE ROWS to a partitioned temporary table

Changes

Fix problems with applying ON COMMIT DELETE ROWS to a partitioned temporary table (Amit Langote)

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix character-class checks to not fail on Windows for Unicode characters above U+FFFF

Changes

Fix character-class checks to not fail on Windows for Unicode characters above U+FFFF (Tom Lane, Kenji Uno)

This bug affected full-text-search operations, as well as contrib/ltree and contrib/pg_trgm.

Related records (5)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsDisallow pushing sub-SELECTs containing window functions, LIMIT, or OFFSET to parallel workers

Changes

Disallow pushing sub-SELECTs containing window functions, LIMIT, or OFFSET to parallel workers (Amit Kapila)

Such cases could result in inconsistent behavior due to different workers getting different answers, as a result of indeterminacy due to row-ordering variations.

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that sequences owned by a foreign table are processed by ALTER OWNER on the table

Changes

Ensure that sequences owned by a foreign table are processed by ALTER OWNER on the table (Peter Eisentraut)

The ownership change should propagate to such sequences as well, but this was missed for foreign tables.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that the server will process already-received NOTIFY and SIGTERM interrupts before waiting for client input

Changes

Ensure that the server will process already-received NOTIFY and SIGTERM interrupts before waiting for client input (Jeff Janes, Tom Lane)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix over-allocation of space for array_out()'s result string

Changes

Fix over-allocation of space for array_out()'s result string (Keiichi Hirobe)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesAvoid query-lifetime memory leak in XMLTABLE

Changes

Avoid query-lifetime memory leak in XMLTABLE (Andrew Gierth)

Bug fixesFix memory leak in repeated SP-GiST index scans

Changes

Fix memory leak in repeated SP-GiST index scans (Tom Lane)

This is only known to amount to anything significant in cases where an exclusion constraint using SP-GiST receives many new index entries in a single command.

Related records (5)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that ApplyLogicalMappingFile() closes the mapping file when done with it

Changes

Ensure that ApplyLogicalMappingFile() closes the mapping file when done with it (Tomas Vondra)

Previously, the file descriptor was leaked, eventually resulting in failures during logical decoding.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix logical decoding to handle cases where a mapped catalog table is repeatedly rewritten, e.g., by VACUUM FULL

Changes

Fix logical decoding to handle cases where a mapped catalog table is repeatedly rewritten, e.g., by VACUUM FULL (Andres Freund)

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsPrevent starting the server with wal_level set to too low a value to support an existing replication slot

Changes

Prevent starting the server with wal_level set to too low a value to support an existing replication slot (Andres Freund)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesAvoid crash if a utility command causes infinite recursion

Changes

Avoid crash if a utility command causes infinite recursion (Tom Lane)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsWhen initializing a hot standby, cope with duplicate XIDs caused by two-phase transactions on the master

Changes

When initializing a hot standby, cope with duplicate XIDs caused by two-phase transactions on the master (Michael Paquier, Konstantin Knizhnik)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix event triggers to handle nested ALTER TABLE commands

Changes

Fix event triggers to handle nested ALTER TABLE commands (Michael Paquier, Álvaro Herrera)

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsPropagate parent process's transaction and statement start timestamps to parallel workers

Changes

Propagate parent process's transaction and statement start timestamps to parallel workers (Konstantin Knizhnik)

This prevents misbehavior of functions such as transaction_timestamp() when executed in a worker.

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix transfer of expanded datums to parallel workers so that alignment is preserved, preventing crashes on alignment-picky platforms

Changes

Fix transfer of expanded datums to parallel workers so that alignment is preserved, preventing crashes on alignment-picky platforms (Tom Lane, Amit Kapila)

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix WAL file recycling logic to work correctly on standby servers

Changes

Fix WAL file recycling logic to work correctly on standby servers (Michael Paquier)

Depending on the setting of archive_mode, a standby might fail to remove some WAL files that could be removed.

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix handling of commit-timestamp tracking during recovery

Changes

Fix handling of commit-timestamp tracking during recovery (Masahiko Sawada, Michael Paquier)

If commit timestamp tracking has been turned on or off, recovery might fail due to trying to fetch the commit timestamp for a transaction that did not record it.

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsRandomize the random() seed in bootstrap and standalone backends, and in initdb

Changes

Randomize the random() seed in bootstrap and standalone backends, and in initdb (Noah Misch)

The main practical effect of this change is that it avoids a scenario where initdb might mistakenly conclude that POSIX shared memory is not available, due to name collisions caused by always using the same random seed.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix possible shared-memory corruption in DSA logic

Changes

Fix possible shared-memory corruption in DSA logic (Thomas Munro)

ImprovementsAllow DSM allocation to be interrupted

Changes

Allow DSM allocation to be interrupted (Chris Travers)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid failure in a parallel worker when loading an extension that tries to access system caches within its init function

Changes

Avoid failure in a parallel worker when loading an extension that tries to access system caches within its init function (Thomas Munro)

We don't consider that to be good extension coding practice, but it mostly worked before parallel query, so continue to support it for now.

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsProperly handle turning full_page_writes on dynamically

Changes

Properly handle turning full_page_writes on dynamically (Kyotaro Horiguchi)

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix possible crash due to double free() during SP-GiST rescan

Changes

Fix possible crash due to double free() during SP-GiST rescan (Andrew Gierth)

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsPrevent mis-linking of src/port and src/common functions on ELF-based BSD platforms, as well as HP-UX and Solaris

Changes

Prevent mis-linking of src/port and src/common functions on ELF-based BSD platforms, as well as HP-UX and Solaris (Andrew Gierth, Tom Lane)

Shared libraries loaded into a backend's address space could use the backend's versions of these functions, rather than their own copies as intended. Since the behavior of the two sets of functions isn't quite the same, this led to failures.

ImprovementsAvoid possible buffer overrun when replaying GIN page recompression from WAL

Changes

Avoid possible buffer overrun when replaying GIN page recompression from WAL (Alexander Korotkov, Sivasubramanian Ramasubramanian)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid overrun of a hash index's metapage when BLCKSZ is smaller than default

Changes

Avoid overrun of a hash index's metapage when BLCKSZ is smaller than default (Dilip Kumar)

Bug fixesFix missed page checksum updates in hash indexes

Changes

Fix missed page checksum updates in hash indexes (Amit Kapila)

Bug fixesFix missed fsync of a replication slot's directory

Changes

Fix missed fsync of a replication slot's directory (Konstantin Knizhnik, Michael Paquier)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix unexpected timeouts when using wal_sender_timeout on a slow server

Changes

Fix unexpected timeouts when using wal_sender_timeout on a slow server (Noah Misch)

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesEnsure that hot standby processes use the correct WAL consistency point

Changes

Ensure that hot standby processes use the correct WAL consistency point (Alexander Kukushkin, Michael Paquier)

This prevents possible misbehavior just after a standby server has reached a consistent database state during WAL replay.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure background workers are stopped properly when the postmaster receives a fast-shutdown request before completing database startup

Changes

Ensure background workers are stopped properly when the postmaster receives a fast-shutdown request before completing database startup (Alexander Kukushkin)

Related records (2)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsUpdate the free space map during WAL replay of page all-visible/frozen flag changes

Changes

Update the free space map during WAL replay of page all-visible/frozen flag changes (Álvaro Herrera)

Previously we were not careful about this, reasoning that the FSM is not critical data anyway. However, if it's sufficiently out of date, that can result in significant performance degradation after a standby has been promoted to primary. The FSM will eventually be healed by updates, but we'd like it to be good sooner, so work harder at maintaining it during WAL replay.

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid premature release of parallel-query resources when query end or tuple count limit is reached

Changes

Avoid premature release of parallel-query resources when query end or tuple count limit is reached (Amit Kapila)

It's only okay to shut down the executor at this point if the caller cannot demand backwards scan afterwards.

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsDon't run atexit callbacks when servicing SIGQUIT

Changes

Don't run atexit callbacks when servicing SIGQUIT (Heikki Linnakangas)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsDon't record foreign-server user mappings as members of extensions

Changes

Don't record foreign-server user mappings as members of extensions (Tom Lane)

If CREATE USER MAPPING is executed in an extension script, an extension dependency was created for the user mapping, which is unexpected. Roles can't be extension members, so user mappings shouldn't be either.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsMake syslogger more robust against failures in opening CSV log files

Changes

Make syslogger more robust against failures in opening CSV log files (Tom Lane)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsWhen libpq is given multiple target host names, do the DNS lookups one at a time, not all at once

Changes

When libpq is given multiple target host names, do the DNS lookups one at a time, not all at once (Tom Lane)

This prevents unnecessary failures or slow connections when a connection is successfully made to one of the earlier servers in the list.

Bug fixesFix libpq's handling of connection timeouts so that they are properly applied per host name or IP address

Changes

Fix libpq's handling of connection timeouts so that they are properly applied per host name or IP address (Tom Lane)

Previously, some code paths failed to restart the timer when switching to a new target host, possibly resulting in premature timeout.

Bug fixesFix psql, as well as documentation examples, to call PQconsumeInput() before each PQnotifies() call

Changes

Fix psql, as well as documentation examples, to call PQconsumeInput() before each PQnotifies() call (Tom Lane)

This fixes cases in which psql would not report receipt of a NOTIFY message until after the next command.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix pg_dump's --no-publications option to also ignore publication tables

Changes

Fix pg_dump's --no-publications option to also ignore publication tables (Gilles Darold)

ImprovementsIn pg_dump, exclude identity sequences when their parent table is excluded from the dump

Changes

In pg_dump, exclude identity sequences when their parent table is excluded from the dump (David Rowley)

Bug fixesFix possible inconsistency in pg_dump's sorting of dissimilar object names

Changes

Fix possible inconsistency in pg_dump's sorting of dissimilar object names (Jacob Champion)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnsure that pg_restore will schema-qualify the table name when emitting DISABLE/ENABLE TRIGGER commands

Changes

Ensure that pg_restore will schema-qualify the table name when emitting DISABLE/ENABLE TRIGGER commands (Tom Lane)

This avoids failures due to the new policy of running restores with restrictive search path.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix pg_upgrade to handle event triggers in extensions correctly

Changes

Fix pg_upgrade to handle event triggers in extensions correctly (Haribabu Kommi)

pg_upgrade failed to preserve an event trigger's extension-membership status.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix pg_upgrade's cluster state check to work correctly on a standby server

Changes

Fix pg_upgrade's cluster state check to work correctly on a standby server (Bruce Momjian)

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsEnforce type cube's dimension limit in all contrib/cube functions

Changes

Enforce type cube's dimension limit in all contrib/cube functions (Andrey Borodin)

Previously, some cube-related functions could construct values that would be rejected by cube_in(), leading to dump/reload failures.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsIn contrib/pg_stat_statements, disallow the pg_read_all_stats role from executing pg_stat_statements_reset()

Changes

In contrib/pg_stat_statements, disallow the pg_read_all_stats role from executing pg_stat_statements_reset() (Haribabu Kommi)

pg_read_all_stats is only meant to grant permission to read statistics, not to change them, so this grant was incorrect.

To cause this change to take effect, run ALTER EXTENSION pg_stat_statements UPDATE in each database where pg_stat_statements has been installed.

ImprovementsIn contrib/postgres_fdw, don't try to ship a variable-free ORDER BY clause to the remote server

Changes

In contrib/postgres_fdw, don't try to ship a variable-free ORDER BY clause to the remote server (Andrew Gierth)

Related records (1)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix contrib/unaccent's unaccent() function to use the unaccent text search dictionary that is in the same schema as the function

Changes

Fix contrib/unaccent's unaccent() function to use the unaccent text search dictionary that is in the same schema as the function (Tom Lane)

Previously it tried to look up the dictionary using the search path, which could fail if the search path has a restrictive value.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix build problems on macOS 10.14 (Mojave)

Changes

Fix build problems on macOS 10.14 (Mojave) (Tom Lane)

Adjust configure to add an -isysroot switch to CPPFLAGS; without this, PL/Perl and PL/Tcl fail to configure or build on macOS 10.14. The specific sysroot used can be overridden at configure time or build time by setting the PG_SYSROOT variable in the arguments of configure or make.

It is now recommended that Perl-related extensions write $(perl_includespec) rather than -I$(perl_archlibexp)/CORE in their compiler flags. The latter continues to work on most platforms, but not recent macOS.

Also, it should no longer be necessary to specify --with-tclconfig manually to get PL/Tcl to build on recent macOS releases.

Related records (5)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix MSVC build and regression-test scripts to work on recent Perl versions

Changes

Fix MSVC build and regression-test scripts to work on recent Perl versions (Andrew Dunstan)

Perl no longer includes the current directory in its search path by default; work around that.

Related records (5)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsOn Windows, allow the regression tests to be run by an Administrator account

Changes

On Windows, allow the regression tests to be run by an Administrator account (Andrew Dunstan)

To do this safely, pg_regress now gives up any such privileges at startup.

Related records (3)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAllow btree comparison functions to return INT_MIN

Changes

Allow btree comparison functions to return INT_MIN (Tom Lane)

Up to now, we've forbidden datatype-specific comparison functions from returning INT_MIN, which allows callers to invert the sort order just by negating the comparison result. However, this was never safe for comparison functions that directly return the result of memcmp(), strcmp(), etc, as POSIX doesn't place any such restriction on those functions. At least some recent versions of memcmp() can return INT_MIN, causing incorrect sort ordering. Hence, we've removed this restriction. Callers must now use the INVERT_COMPARE_RESULT() macro if they wish to invert the sort order.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix recursion hazard in shared-invalidation message processing

Changes

Fix recursion hazard in shared-invalidation message processing (Tom Lane)

This error could, for example, result in failure to access a system catalog or index that had just been processed by VACUUM FULL.

This change adds a new result code for LockAcquire, which might possibly affect external callers of that function, though only very unusual usage patterns would have an issue with it. The API of LockAcquireExtended is also changed.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsSave and restore SPI's global variables during SPI_connect() and SPI_finish()

Changes

Save and restore SPI's global variables during SPI_connect() and SPI_finish() (Chapman Flack, Tom Lane)

This prevents possible interference when one SPI-using function calls another.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsAvoid using potentially-under-aligned page buffers

Changes

Avoid using potentially-under-aligned page buffers (Tom Lane)

Invent new union types PGAlignedBlock and PGAlignedXLogBlock, and use these in place of plain char arrays, ensuring that the compiler can't place the buffer at a misaligned start address. This fixes potential core dumps on alignment-picky platforms, and may improve performance even on platforms that allow misalignment.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsMake src/port/snprintf.c follow the C99 standard's definition of snprintf()'s result value

Changes

Make src/port/snprintf.c follow the C99 standard's definition of snprintf()'s result value (Tom Lane)

On platforms where this code is used (mostly Windows), its pre-C99 behavior could lead to failure to detect buffer overrun, if the calling code assumed C99 semantics.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsWhen building on i386 with the clang compiler, require -msse2 to be used

Changes

When building on i386 with the clang compiler, require -msse2 to be used (Andres Freund)

This avoids problems with missed floating point overflow checks.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

Bug fixesFix configure's detection of the result type of strerror_r()

Changes

Fix configure's detection of the result type of strerror_r() (Tom Lane)

The previous coding got the wrong answer when building with icc on Linux (and perhaps in other cases), leading to libpq not returning useful error messages for system-reported errors.

Related records (4)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

ImprovementsUpdate time zone data files to tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.

Changes

Update time zone data files to tzdata release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea.

Related records (5)

“Same change” requires complete matching evidence. “Related commits” can cover independent changes, a partial backport, or a follow-up correction; each release keeps its own explanation.

How is this comparison generated?

The comparison follows PostgreSQL release notes from just after the source through the target version. For a major upgrade, maintenance releases from each older branch are included only up to the next major release date, and never after the target date. A major version such as 18 means its initial release, 18.0. Previews and development snapshots are labeled separately.

Entries come from the original English manuals. Release coverage and commit evidence are verified against upstream sources. Every entry retains its complete explanation and source link. Categories aid browsing; read the full notes for impact, conditions, and migration steps.

Fixes can be backported to several branches. Confirmed duplicates are merged conservatively, with every branch explanation retained. A note describing several independent fixes is excluded only when all are already present in the source. Major-release features remain distinct from related maintenance patches unless their complete original descriptions match. Uncertain matches are retained. This is a release-note history, not an exhaustive comparison of compiled binaries.

CVE results are calculated independently from the PostgreSQL security registry and vulnerability records. A CVE counts as gained protection only when the source is affected and the target is fixed or unaffected. Remaining vulnerabilities are listed separately. Security entries and distinct CVEs are counted separately.

Interaction inspired by pgversions.com and pgversionreport. Content comes from PostgreSQL release notes. See the release notes archive.