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

9.5.1

2016-02-11

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

9.5.1 HistoricalSupport ends 2021-02-11

Security records mentioned in this release 2 CVEs
CVEs mentioned in these notes, including possible follow-up fixes for earlier vulnerabilities
CVE / issueSeverityFixed version
CVE-2016-0773

Fix infinite loops and buffer-overrun problems in regular expressions

6.59.5.1
CVE-2016-0766

Prevent certain PL/Java parameters from being set by non-superusers

PostgreSQL 9.5.1

Migration and compatibility

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

SecurityFix infinite loops and buffer-overrun problems in regular expressions

Changes

Fix infinite loops and buffer-overrun problems in regular expressions (Tom Lane)

Very large character ranges in bracket expressions could cause infinite loops in some cases, and memory overwrites in other cases. (CVE-2016-0773)

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 an oversight that caused hash joins to miss joining to some tuples of the inner relation in rare cases

Changes

Fix an oversight that caused hash joins to miss joining to some tuples of the inner relation in rare cases (Tomas Vondra, Tom Lane)

ImprovementsAvoid pushdown of HAVING clauses when grouping sets are used

Changes

Avoid pushdown of HAVING clauses when grouping sets are used (Andrew Gierth)

Bug fixesFix deparsing of ON CONFLICT arbiter WHERE clauses

Changes

Fix deparsing of ON CONFLICT arbiter WHERE clauses (Peter Geoghegan)

ImprovementsMake %h and %r escapes in log_line_prefix work for messages emitted due to log_connections

Changes

Make %h and %r escapes in log_line_prefix work for messages emitted due to log_connections (Tom Lane)

Previously, %h/%r started to work just after a new session had emitted the "connection received" log message; now they work for that message too.

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 leaking a token handle during SSPI authentication

Changes

Avoid leaking a token handle during SSPI authentication (Christian Ullrich)

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 psql's \det command to interpret its pattern argument the same way as other \d commands with potentially schema-qualified patterns do

Changes

Fix psql's \det command to interpret its pattern argument the same way as other \d commands with potentially schema-qualified patterns do (Reece Hart)

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 pg_ctl on Windows, check service status to decide where to send output, rather than checking if standard output is a terminal

Changes

In pg_ctl on Windows, check service status to decide where to send output, rather than checking if standard output is a terminal (Michael Paquier)

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 assorted corner-case bugs in pg_dump's processing of extension member objects

Changes

Fix assorted corner-case bugs in pg_dump's processing of extension member objects (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.

Bug fixesFix improper quoting of domain constraint names in pg_dump

Changes

Fix improper quoting of domain constraint names in pg_dump (Elvis Pranskevichus)

ImprovementsMake pg_dump mark a view's triggers as needing to be processed after its rule, to prevent possible failure during parallel pg_restore

Changes

Make pg_dump mark a view's triggers as needing to be processed after its rule, to prevent possible failure during parallel pg_restore (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.

ImprovementsInstall guards in pgbench against corner-case overflow conditions during evaluation of script-specified division or modulo operators

Changes

Install guards in pgbench against corner-case overflow conditions during evaluation of script-specified division or modulo operators (Fabien Coelho, Michael Paquier)

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.

ImprovementsSuppress useless warning message when pg_receivexlog connects to a pre-9.4 server

Changes

Suppress useless warning message when pg_receivexlog connects to a pre-9.4 server (Marco Nenciarini)

ImprovementsAvoid dump/reload problems when using both plpython2 and plpython3

Changes

Avoid dump/reload problems when using both plpython2 and plpython3 (Tom Lane)

In principle, both versions of PL/Python can be used in the same database, though not in the same session (because the two versions of libpython cannot safely be used concurrently). However, pg_restore and pg_upgrade both do things that can fall foul of the same-session restriction. Work around that by changing the timing of the check.

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 PL/Python regression tests to pass with Python 3.5

Changes

Fix PL/Python regression tests to pass with Python 3.5 (Peter Eisentraut)

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.

SecurityPrevent certain PL/Java parameters from being set by non-superusers

Changes

Prevent certain PL/Java parameters from being set by non-superusers (Noah Misch)

This change mitigates a PL/Java security bug (CVE-2016-0766), which was fixed in PL/Java by marking these parameters as superuser-only. To fix the security hazard for sites that update PostgreSQL more frequently than PL/Java, make the core code aware of them also.

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 ecpg-supplied header files to not contain comments continued from a preprocessor directive line onto the next line

Changes

Fix ecpg-supplied header files to not contain comments continued from a preprocessor directive line onto the next line (Michael Meskes)

Such a comment is rejected by ecpg. It's not yet clear whether ecpg itself should be 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.

Bug fixesFix hstore_to_json_loose()'s test for whether an hstore value can be converted to a JSON number

Changes

Fix hstore_to_json_loose()'s test for whether an hstore value can be converted to a JSON number (Tom Lane)

Previously this function could be fooled by non-alphanumeric trailing characters, leading to emitting syntactically-invalid JSON.

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 fixesIn contrib/postgres_fdw, fix bugs triggered by use of tableoid in data-modifying commands

Changes

In contrib/postgres_fdw, fix bugs triggered by use of tableoid in data-modifying commands (Etsuro Fujita, Robert Haas)

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 ill-advised restriction of NAMEDATALEN to be less than 256

Changes

Fix ill-advised restriction of NAMEDATALEN to be less than 256 (Robert Haas, Tom Lane)

Bug fixesImprove reproducibility of build output by ensuring filenames are given to the linker in a fixed order

Changes

Improve reproducibility of build output by ensuring filenames are given to the linker in a fixed order (Christoph Berg)

This avoids possible bitwise differences in the produced executable files from one build to the next.

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.

ImprovementsEnsure that dynloader.h is included in the installed header files in MSVC builds

Changes

Ensure that dynloader.h is included in the installed header files in MSVC builds (Bruce Momjian, Michael Paquier)

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 2016a for DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.

Changes

Update time zone data files to tzdata release 2016a for DST law changes in Cayman Islands, Metlakatla, and Trans-Baikal Territory (Zabaykalsky Krai), plus historical corrections for Pakistan.

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.