↑↓ 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 14.4 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

14.4

2022-06-16

Export JSON
19changesFeatures, fixes, improvements
1releaseGrouped by release
0CVEsVulnerability IDs mentioned in these notes

14.4 SupportedSupport ends 2026-11-12

PostgreSQL 14.4

Migration and compatibility

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

However, if you have any indexes that were created using the CONCURRENTLY option under 14.X, you should re-index them after updating. See the first changelog entry below.

Also, if you are upgrading from a version earlier than 14.3, see Section E.22.

Bug fixesPrevent possible corruption of indexes created or rebuilt with the CONCURRENTLY option

Changes

Prevent possible corruption of indexes created or rebuilt with the CONCURRENTLY option (Álvaro Herrera) §

An optimization added in v14 caused CREATE INDEX ... CONCURRENTLY and REINDEX ... CONCURRENTLY to sometimes miss indexing rows that were updated during the index build. Revert that optimization. It is recommended that any indexes made with the CONCURRENTLY option be rebuilt after installing this update. (Alternatively, rebuild them without CONCURRENTLY.)

ImprovementsHarden Memoize plan node against non-deterministic equality functions

Changes

Harden Memoize plan node against non-deterministic equality functions (David Rowley) §

Memoize could crash if a data type's equality or hash functions gave inconsistent results across different calls. Throw a runtime error instead.

Bug fixesFix incorrect cost estimates for Memoize plans

Changes

Fix incorrect cost estimates for Memoize plans (David Rowley) §

This mistake could lead to Memoize being used when it isn't really the best plan, or to very long executor startup times due to initializing an overly-large hash table for a Memoize node.

Bug fixesFix queries in which a “whole-row variable” references the result of a function that returns a domain over composite type

Changes

Fix queries in which a “whole-row variable” references the result of a function that returns a domain over composite type (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 “variable not found in subplan target list” planner error when pulling up a sub-SELECT that's referenced in a GROUPING function

Changes

Fix “variable not found in subplan target list” planner error when pulling up a sub-SELECT that's referenced in a GROUPING function (Richard Guo) §

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 pg_stat_get_subscription() from possibly returning an extra row containing garbage values

Changes

Prevent pg_stat_get_subscription() from possibly returning an extra row containing garbage values (Kuntal Ghosh) §

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 COPY FROM's error checking in the case where the database encoding is SQL_ASCII while the client's encoding is a multi-byte encoding

Changes

Fix COPY FROM's error checking in the case where the database encoding is SQL_ASCII while the client's encoding is a multi-byte encoding (Heikki Linnakangas) §

This mistake could lead to false complaints of invalidly-encoded input data.

Bug fixesAvoid crashing if too many column aliases are attached to an XMLTABLE or JSON_TABLE construct

Changes

Avoid crashing if too many column aliases are attached to an XMLTABLE or JSON_TABLE construct (Álvaro Herrera) § §

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 decompiling a view or rule, show a SELECT output column's AS "?column?" alias clause if it could be referenced elsewhere

Changes

When decompiling a view or rule, show a SELECT output column's AS "?column?" alias clause if it could be referenced elsewhere (Tom Lane) §

Previously, this auto-generated alias was always hidden; but there are corner cases where doing so results in a non-restorable view or rule definition.

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.

ImprovementsReport implicitly-created operator families to event triggers

Changes

Report implicitly-created operator families to event triggers (Masahiko Sawada) §

If CREATE OPERATOR CLASS results in the implicit creation of an operator family, that object was not reported to event triggers that should capture such events.

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 control file updates made when a restartpoint is running during promotion of a standby server

Changes

Fix control file updates made when a restartpoint is running during promotion of a standby server (Kyotaro Horiguchi) §

Previously, when the restartpoint completed it could incorrectly update the last-checkpoint fields of the control file, potentially leading to PANIC and failure to restart if the server crashes before the next normal checkpoint completes.

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 triggering of standby's wal_receiver_timeout during logical replication of large transactions

Changes

Prevent triggering of standby's wal_receiver_timeout during logical replication of large transactions (Wang Wei, Amit Kapila) §

If a large transaction on the primary server sends no data to the standby (perhaps because no table it changes is published), it was possible for the standby to timeout. Fix that by ensuring we send keepalive messages periodically in such situations.

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 fixesPrevent open-file leak when reading an invalid timezone abbreviation file

Changes

Prevent open-file leak when reading an invalid timezone abbreviation file (Kyotaro Horiguchi) §

Such cases could result in harmless warning messages.

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.

ImprovementsAllow custom server parameters to have short descriptions that are NULL

Changes

Allow custom server parameters to have short descriptions that are NULL (Steve Chavez) §

Previously, although extensions could choose to create such settings, some code paths would crash while processing them.

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.

ImprovementsRemove misguided SSL key file ownership check in libpq

Changes

Remove misguided SSL key file ownership check in libpq (Tom Lane) §

In the previous minor releases, we copied the server's permission checking rules for SSL private key files into libpq. But we should not have also copied the server's file-ownership check. While that works in normal use-cases, it can result in an unexpected failure for clients running as root, and perhaps in other cases.

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 ecpg reports server connection loss sanely

Changes

Ensure ecpg reports server connection loss sanely (Tom Lane) §

Misprocessing of a libpq-generated error result, such as a report of lost connection, would lead to printing “(null)” instead of a useful error message; or in older releases it would lead to a crash.

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 fixesPrevent crash after server connection loss in pg_amcheck

Changes

Prevent crash after server connection loss in pg_amcheck (Tom Lane) §

Misprocessing of a libpq-generated error result, such as a report of lost connection, would lead to a crash.

ImprovementsAdjust PL/Perl test case so it will work under Perl 5.36

Changes

Adjust PL/Perl test case so it will work under Perl 5.36 (Dagfinn Ilmari Mannsåker) §

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 incorrectly using an out-of-date libldap_r library when multiple OpenLDAP installations are present while building PostgreSQL

Changes

Avoid incorrectly using an out-of-date libldap_r library when multiple OpenLDAP installations are present while building PostgreSQL (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.

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.