↑↓ 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.1.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

9.1.6

2012-09-24

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

9.1.6 HistoricalSupport ends 2016-10-27

PostgreSQL 9.1.6

Migration and compatibility

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

However, you may need to perform REINDEX operations to recover from the effects of the data corruption bug described in the first changelog item below.

Also, if you are upgrading from a version earlier than 9.1.4, see Section E.21.

Bug fixesFix persistence marking of shared buffers during WAL replay

Changes

Fix persistence marking of shared buffers during WAL replay (Jeff Davis)

This mistake can result in buffers not being written out during checkpoints, resulting in data corruption if the server later crashes without ever having written those buffers. Corruption can occur on any server following crash recovery, but it is significantly more likely to occur on standby slave servers since those perform much more WAL replay. There is a low probability of corruption of btree and GIN indexes. There is a much higher probability of corruption of table "visibility maps". Fortunately, visibility maps are non-critical data in 9.1, so the worst consequence of such corruption in 9.1 installations is transient inefficiency of vacuuming. Table data proper cannot be corrupted by this bug.

While no index corruption due to this bug is known to have occurred in the field, as a precautionary measure it is recommended that production installations REINDEX all btree and GIN indexes at a convenient time after upgrading to 9.1.6.

Also, if you intend to do an in-place upgrade to 9.2.X, before doing so it is recommended to perform a VACUUM of all tables while having vacuum_freeze_table_age set to zero. This will ensure that any lingering wrong data in the visibility maps is corrected before 9.2.X can depend on it. vacuum_cost_delay can be adjusted to reduce the performance impact of vacuuming, while causing it to take longer to finish.

Bug fixesFix planner's assignment of executor parameters, and fix executor's rescan logic for CTE plan nodes

Changes

Fix planner's assignment of executor parameters, and fix executor's rescan logic for CTE plan nodes (Tom Lane)

These errors could result in wrong answers from queries that scan the same WITH subquery multiple times.

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 misbehavior when default_transaction_isolation is set to serializable

Changes

Fix misbehavior when default_transaction_isolation is set to serializable (Kevin Grittner, Tom Lane, Heikki Linnakangas)

Symptoms include crashes at process start on Windows, and crashes in hot standby operation.

ImprovementsImprove selectivity estimation for text search queries involving prefixes, i.e. word:* patterns

Changes

Improve selectivity estimation for text search queries involving prefixes, i.e. word:* patterns (Tom Lane)

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.

ImprovementsImprove page-splitting decisions in GiST indexes

Changes

Improve page-splitting decisions in GiST indexes (Alexander Korotkov, Robert Haas, Tom Lane)

Multi-column GiST indexes might suffer unexpected bloat due to this error.

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 cascading privilege revoke to stop if privileges are still held

Changes

Fix cascading privilege revoke to stop if privileges are still held (Tom Lane)

If we revoke a grant option from some role X, but X still holds that option via a grant from someone else, we should not recursively revoke the corresponding privilege from role(s) Y that X had granted it to.

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.

ImprovementsDisallow extensions from containing the schema they are assigned to

Changes

Disallow extensions from containing the schema they are assigned to (Thom Brown)

This situation creates circular dependencies that confuse pg_dump and probably other things. It's confusing for humans too, so disallow it.

ImprovementsImprove error messages for Hot Standby misconfiguration errors

Changes

Improve error messages for Hot Standby misconfiguration errors (Gurjeet Singh)

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.

ImprovementsMake configure probe for mbstowcs_l

Changes

Make configure probe for mbstowcs_l (Tom Lane)

This fixes build failures on some versions of AIX.

Bug fixesFix handling of SIGFPE when PL/Perl is in use

Changes

Fix handling of SIGFPE when PL/Perl is in use (Andres Freund)

Perl resets the process's SIGFPE handler to SIG_IGN, which could result in crashes later on. Restore the normal Postgres signal handler after initializing PL/Perl.

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 fixesPrevent PL/Perl from crashing if a recursive PL/Perl function is redefined while being executed

Changes

Prevent PL/Perl from crashing if a recursive PL/Perl function is redefined while being executed (Tom Lane)

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.

ImprovementsWork around possible misoptimization in PL/Perl

Changes

Work around possible misoptimization in PL/Perl (Tom Lane)

Some Linux distributions contain an incorrect version of pthread.h that results in incorrect compiled code in PL/Perl, leading to crashes if a PL/Perl function calls another one that throws an error.

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 bugs in contrib/pg_trgm's LIKE pattern analysis code

Changes

Fix bugs in contrib/pg_trgm's LIKE pattern analysis code (Fujii Masao)

LIKE queries using a trigram index could produce wrong results if the pattern contained LIKE escape characters.

Bug fixesFix pg_upgrade's handling of line endings on Windows

Changes

Fix pg_upgrade's handling of line endings on Windows (Andrew Dunstan)

Previously, pg_upgrade might add or remove carriage returns in places such as function bodies.

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.

ImprovementsOn Windows, make pg_upgrade use backslash path separators in the scripts it emits

Changes

On Windows, make pg_upgrade use backslash path separators in the scripts it emits (Andrew Dunstan)

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.

ImprovementsRemove unnecessary dependency on pg_config from pg_upgrade

Changes

Remove unnecessary dependency on pg_config from pg_upgrade (Peter Eisentraut)

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.

ImprovementsUpdate time zone data files to tzdata release 2012f for DST law changes in Fiji

Changes

Update time zone data files to tzdata release 2012f for DST law changes in Fiji

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.

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.