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

2011-09-26

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

9.0.5 HistoricalSupport ends 2015-10-08

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-2011-2483

Apply upstream fix for blowfish signed-character bug (CVE-2011-2483)

PostgreSQL 9.0.5

Migration and compatibility

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

However, if you are upgrading from a version earlier than 9.0.4, see Section E.20.

Bug fixesFix catalog cache invalidation after a VACUUM FULL or CLUSTER on a system catalog

Changes

Fix catalog cache invalidation after a VACUUM FULL or CLUSTER on a system catalog (Tom Lane)

In some cases the relocation of a system catalog row to another place would not be recognized by concurrent server processes, allowing catalog corruption to occur if they then tried to update that row. The worst-case outcome could be as bad as complete loss of a table.

Bug fixesFix incorrect order of operations during sinval reset processing, and ensure that TOAST OIDs are preserved in system catalogs

Changes

Fix incorrect order of operations during sinval reset processing, and ensure that TOAST OIDs are preserved in system catalogs (Tom Lane)

These mistakes could lead to transient failures after a VACUUM FULL or CLUSTER on a system catalog.

Bug fixesFix bugs in indexing of in-doubt HOT-updated tuples

Changes

Fix bugs in indexing of in-doubt HOT-updated tuples (Tom Lane)

These bugs could result in index corruption after reindexing a system catalog. They are not believed to affect user indexes.

Bug fixesFix multiple bugs in GiST index page split processing

Changes

Fix multiple bugs in GiST index page split processing (Heikki Linnakangas)

The probability of occurrence was low, but these could lead to index corruption.

Bug fixesFix possible buffer overrun in tsvector_concat()

Changes

Fix possible buffer overrun in tsvector_concat() (Tom Lane)

The function could underestimate the amount of memory needed for its result, leading to server crashes.

Bug fixesFix crash in xml_recv when processing a "standalone" parameter

Changes

Fix crash in xml_recv when processing a "standalone" parameter (Tom Lane)

ImprovementsMake pg_options_to_table return NULL for an option with no value

Changes

Make pg_options_to_table return NULL for an option with no value (Tom Lane)

Previously such cases would result in a server crash.

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 possibly accessing off the end of memory in ANALYZE and in SJIS-2004 encoding conversion

Changes

Avoid possibly accessing off the end of memory in ANALYZE and in SJIS-2004 encoding conversion (Noah Misch)

This fixes some very-low-probability server crash scenarios.

ImprovementsProtect pg_stat_reset_shared() against NULL input

Changes

Protect pg_stat_reset_shared() against NULL input (Magnus Hagander)

Bug fixesFix possible failure when a recovery conflict deadlock is detected within a sub-transaction

Changes

Fix possible failure when a recovery conflict deadlock is detected within a sub-transaction (Tom Lane)

ImprovementsAvoid spurious conflicts while recycling btree index pages during hot standby

Changes

Avoid spurious conflicts while recycling btree index pages during hot standby (Noah Misch, Simon Riggs)

ImprovementsShut down WAL receiver if it's still running at end of recovery

Changes

Shut down WAL receiver if it's still running at end of recovery (Heikki Linnakangas)

The postmaster formerly panicked in this situation, but it's actually a legitimate case.

Bug fixesFix race condition in relcache init file invalidation

Changes

Fix race condition in relcache init file invalidation (Tom Lane)

There was a window wherein a new backend process could read a stale init file but miss the inval messages that would tell it the data is stale. The result would be bizarre failures in catalog accesses, typically "could not read block 0 in file ..." later during startup.

Bug fixesFix memory leak at end of a GiST index scan

Changes

Fix memory leak at end of a GiST index scan (Tom Lane)

Commands that perform many separate GiST index scans, such as verification of a new GiST-based exclusion constraint on a table already containing many rows, could transiently require large amounts of memory due to this leak.

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 memory leak when encoding conversion has to be done on incoming command strings and LISTEN is active

Changes

Fix memory leak when encoding conversion has to be done on incoming command strings and LISTEN is active (Tom Lane)

Bug fixesFix incorrect memory accounting (leading to possible memory bloat) in tuplestores supporting holdable cursors and plpgsql's RETURN NEXT command

Changes

Fix incorrect memory accounting (leading to possible memory bloat) in tuplestores supporting holdable cursors and plpgsql's RETURN NEXT command (Tom Lane)

Bug fixesFix trigger WHEN conditions when both BEFORE and AFTER triggers exist

Changes

Fix trigger WHEN conditions when both BEFORE and AFTER triggers exist (Tom Lane)

Evaluation of WHEN conditions for AFTER ROW UPDATE triggers could crash if there had been a BEFORE ROW trigger fired for the same update.

Bug fixesFix performance problem when constructing a large, lossy bitmap

Changes

Fix performance problem when constructing a large, lossy bitmap (Tom Lane)

Bug fixesFix join selectivity estimation for unique columns

Changes

Fix join selectivity estimation for unique columns (Tom Lane)

This fixes an erroneous planner heuristic that could lead to poor estimates of the result size of a join.

Bug fixesFix nested PlaceHolderVar expressions that appear only in sub-select target lists

Changes

Fix nested PlaceHolderVar expressions that appear only in sub-select target lists (Tom Lane)

This mistake could result in outputs of an outer join incorrectly appearing as NULL.

ImprovementsAllow the planner to assume that empty parent tables really are empty

Changes

Allow the planner to assume that empty parent tables really are empty (Tom Lane)

Normally an empty table is assumed to have a certain minimum size for planning purposes; but this heuristic seems to do more harm than good for the parent table of an inheritance hierarchy, which often is permanently empty.

ImprovementsAllow nested EXISTS queries to be optimized properly

Changes

Allow nested EXISTS queries to be optimized properly (Tom Lane)

Bug fixesFix array- and path-creating functions to ensure padding bytes are zeroes

Changes

Fix array- and path-creating functions to ensure padding bytes are zeroes (Tom Lane)

This avoids some situations where the planner will think that semantically-equal constants are not equal, resulting in poor optimization.

Bug fixesFix EXPLAIN to handle gating Result nodes within inner-indexscan subplans

Changes

Fix EXPLAIN to handle gating Result nodes within inner-indexscan subplans (Tom Lane)

The usual symptom of this oversight was "bogus varno" errors.

Bug fixesFix btree preprocessing of indexedcol IS NULL conditions

Changes

Fix btree preprocessing of indexedcol IS NULL conditions (Dean Rasheed)

Such a condition is unsatisfiable if combined with any other type of btree-indexable condition on the same index column. The case was handled incorrectly in 9.0.0 and later, leading to query output where there should be none.

ImprovementsWork around gcc 4.6.0 bug that breaks WAL replay

Changes

Work around gcc 4.6.0 bug that breaks WAL replay (Tom Lane)

This could lead to loss of committed transactions after a server crash.

Bug fixesFix dump bug for VALUES in a view

Changes

Fix dump bug for VALUES in a view (Tom Lane)

ImprovementsDisallow SELECT FOR UPDATE/SHARE on sequences

Changes

Disallow SELECT FOR UPDATE/SHARE on sequences (Tom Lane)

This operation doesn't work as expected and can lead to failures.

Bug fixesFix VACUUM so that it always updates pg_class.reltuples/relpages

Changes

Fix VACUUM so that it always updates pg_class.reltuples/relpages (Tom Lane)

This fixes some scenarios where autovacuum could make increasingly poor decisions about when to vacuum tables.

ImprovementsDefend against integer overflow when computing size of a hash table

Changes

Defend against integer overflow when computing size of a hash table (Tom Lane)

Bug fixesFix cases where CLUSTER might attempt to access already-removed TOAST data

Changes

Fix cases where CLUSTER might attempt to access already-removed TOAST data (Tom Lane)

Bug fixesFix premature timeout failures during initial authentication transaction

Changes

Fix premature timeout failures during initial authentication transaction (Tom Lane)

Bug fixesFix portability bugs in use of credentials control messages for "peer" authentication

Changes

Fix portability bugs in use of credentials control messages for "peer" authentication (Tom Lane)

Bug fixesFix SSPI login when multiple roundtrips are required

Changes

Fix SSPI login when multiple roundtrips are required (Ahmed Shinwari, Magnus Hagander)

The typical symptom of this problem was "The function requested is not supported" errors during SSPI login.

Bug fixesFix failure when adding a new variable of a custom variable class to postgresql.conf

Changes

Fix failure when adding a new variable of a custom variable class to postgresql.conf (Tom Lane)

ImprovementsThrow an error if pg_hba.conf contains hostssl but SSL is disabled

Changes

Throw an error if pg_hba.conf contains hostssl but SSL is disabled (Tom Lane)

This was concluded to be more user-friendly than the previous behavior of silently ignoring such lines.

Bug fixesFix failure when DROP OWNED BY attempts to remove default privileges on sequences

Changes

Fix failure when DROP OWNED BY attempts to remove default privileges on sequences (Shigeru Hanada)

Bug fixesFix typo in pg_srand48 seed initialization

Changes

Fix typo in pg_srand48 seed initialization (Andres Freund)

This led to failure to use all bits of the provided seed. This function is not used on most platforms (only those without srandom), and the potential security exposure from a less-random-than-expected seed seems minimal in any case.

Bug fixesAvoid integer overflow when the sum of LIMIT and OFFSET values exceeds 2^63

Changes

Avoid integer overflow when the sum of LIMIT and OFFSET values exceeds 2^63 (Heikki Linnakangas)

ImprovementsAdd overflow checks to int4 and int8 versions of generate_series()

Changes

Add overflow checks to int4 and int8 versions of generate_series() (Robert Haas)

Bug fixesFix trailing-zero removal in to_char()

Changes

Fix trailing-zero removal in to_char() (Marti Raudsepp)

In a format with FM and no digit positions after the decimal point, zeroes to the left of the decimal point could be removed incorrectly.

Bug fixesFix pg_size_pretty() to avoid overflow for inputs close to 2^63

Changes

Fix pg_size_pretty() to avoid overflow for inputs close to 2^63 (Tom Lane)

ImprovementsWeaken plpgsql's check for typmod matching in record values

Changes

Weaken plpgsql's check for typmod matching in record values (Tom Lane)

An overly enthusiastic check could lead to discarding length modifiers that should have been kept.

ImprovementsCorrectly handle quotes in locale names during initdb

Changes

Correctly handle quotes in locale names during initdb (Heikki Linnakangas)

The case can arise with some Windows locales, such as "People's Republic of China".

ImprovementsIn pg_upgrade, avoid dumping orphaned temporary tables

Changes

In pg_upgrade, avoid dumping orphaned temporary tables (Bruce Momjian)

This prevents situations wherein table OID assignments could get out of sync between old and new installations.

Bug fixesFix pg_upgrade to preserve toast tables' relfrozenxids during an upgrade from 8.3

Changes

Fix pg_upgrade to preserve toast tables' relfrozenxids during an upgrade from 8.3 (Bruce Momjian)

Failure to do this could lead to pg_clog files being removed too soon after the upgrade.

Bug fixesIn pg_upgrade, fix the -l (log) option to work on Windows

Changes

In pg_upgrade, fix the -l (log) option to work on Windows (Bruce Momjian)

ImprovementsIn pg_ctl, support silent mode for service registrations on Windows

Changes

In pg_ctl, support silent mode for service registrations on Windows (MauMau)

Bug fixesFix psql's counting of script file line numbers during COPY from a different file

Changes

Fix psql's counting of script file line numbers during COPY from a different file (Tom Lane)

Bug fixesFix pg_restore's direct-to-database mode for standard_conforming_strings

Changes

Fix pg_restore's direct-to-database mode for standard_conforming_strings (Tom Lane)

pg_restore could emit incorrect commands when restoring directly to a database server from an archive file that had been made with standard_conforming_strings set to on.

ImprovementsBe more user-friendly about unsupported cases for parallel pg_restore

Changes

Be more user-friendly about unsupported cases for parallel pg_restore (Tom Lane)

This change ensures that such cases are detected and reported before any restore actions have been taken.

Bug fixesFix write-past-buffer-end and memory leak in libpq's LDAP service lookup code

Changes

Fix write-past-buffer-end and memory leak in libpq's LDAP service lookup code (Albe Laurenz)

ImprovementsIn libpq, avoid failures when using nonblocking I/O and an SSL connection

Changes

In libpq, avoid failures when using nonblocking I/O and an SSL connection (Martin Pihlak, Tom Lane)

ImprovementsImprove libpq's handling of failures during connection startup

Changes

Improve libpq's handling of failures during connection startup (Tom Lane)

In particular, the response to a server report of fork() failure during SSL connection startup is now saner.

ImprovementsImprove libpq's error reporting for SSL failures

Changes

Improve libpq's error reporting for SSL failures (Tom Lane)

Bug fixesFix PQsetvalue() to avoid possible crash when adding a new tuple to a PGresult originally obtained from a server query

Changes

Fix PQsetvalue() to avoid possible crash when adding a new tuple to a PGresult originally obtained from a server query (Andrew Chernow)

ImprovementsMake ecpglib write double values with 15 digits precision

Changes

Make ecpglib write double values with 15 digits precision (Akira Kurosawa)

ImprovementsIn ecpglib, be sure LC_NUMERIC setting is restored after an error

Changes

In ecpglib, be sure LC_NUMERIC setting is restored after an error (Michael Meskes)

SecurityApply upstream fix for blowfish signed-character bug (CVE-2011-2483)

Changes

Apply upstream fix for blowfish signed-character bug (CVE-2011-2483) (Tom Lane)

contrib/pg_crypto's blowfish encryption code could give wrong results on platforms where char is signed (which is most), leading to encrypted passwords being weaker than they should be.

Bug fixesFix memory leak in contrib/seg

Changes

Fix memory leak in contrib/seg (Heikki Linnakangas)

Bug fixesFix pgstatindex() to give consistent results for empty indexes

Changes

Fix pgstatindex() to give consistent results for empty indexes (Tom Lane)

ImprovementsAllow building with perl 5.14

Changes

Allow building with perl 5.14 (Alex Hunsaker)

Bug fixesFix assorted issues with build and install file paths containing spaces

Changes

Fix assorted issues with build and install file paths containing spaces (Tom Lane)

ImprovementsUpdate time zone data files to tzdata release 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.

Changes

Update time zone data files to tzdata release 2011i for DST law changes in Canada, Egypt, Russia, Samoa, and South Sudan.

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.