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

2013-02-07

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

9.2.3 HistoricalSupport ends 2017-11-09

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-2013-0255

Prevent execution of enum_recv from SQL

—9.2.3

PostgreSQL 9.2.3

Migration and compatibility

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

However, if you are upgrading from a version earlier than 9.2.2, see Section E.23.

SecurityPrevent execution of enum_recv from SQL

Changes

Prevent execution of enum_recv from SQL (Tom Lane)

The function was misdeclared, allowing a simple SQL command to crash the server. In principle an attacker might be able to use it to examine the contents of server memory. Our thanks to Sumit Soni (via Secunia SVCRP) for reporting this issue. (CVE-2013-0255)

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 multiple problems in detection of when a consistent database state has been reached during WAL replay

Changes

Fix multiple problems in detection of when a consistent database state has been reached during WAL replay (Fujii Masao, Heikki Linnakangas, Simon Riggs, 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.

Bug fixesFix detection of end-of-backup point when no actual redo work is required

Changes

Fix detection of end-of-backup point when no actual redo work is required (Heikki Linnakangas)

This mistake could result in incorrect "WAL ends before end of online backup" errors.

ImprovementsUpdate minimum recovery point when truncating a relation file

Changes

Update minimum recovery point when truncating a relation file (Heikki Linnakangas)

Once data has been discarded, it's no longer safe to stop recovery at an earlier point in the timeline.

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 recycling of WAL segments after changing recovery target timeline

Changes

Fix recycling of WAL segments after changing recovery target timeline (Heikki Linnakangas)

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 restore timeline history files from archive on cascading standby servers

Changes

Properly restore timeline history files from archive on cascading standby servers (Heikki Linnakangas)

Bug fixesFix lock conflict detection on hot-standby servers

Changes

Fix lock conflict detection on hot-standby servers (Andres Freund, Robert Haas)

Bug fixesFix missing cancellations in hot standby mode

Changes

Fix missing cancellations in hot standby mode (Noah Misch, Simon Riggs)

The need to cancel conflicting hot-standby queries would sometimes be missed, allowing those queries to see inconsistent data.

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 recovery pause feature from pausing before users can connect

Changes

Prevent recovery pause feature from pausing before users can connect (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.

Bug fixesFix SQL grammar to allow subscripting or field selection from a sub-SELECT result

Changes

Fix SQL grammar to allow subscripting or field selection from a sub-SELECT result (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.

Bug fixesFix performance problems with autovacuum truncation in busy workloads

Changes

Fix performance problems with autovacuum truncation in busy workloads (Jan Wieck)

Truncation of empty pages at the end of a table requires exclusive lock, but autovacuum was coded to fail (and release the table lock) when there are conflicting lock requests. Under load, it is easily possible that truncation would never occur, resulting in table bloat. Fix by performing a partial truncation, releasing the lock, then attempting to re-acquire the lock and continue. This fix also greatly reduces the average time before autovacuum releases the lock after a conflicting request arrives.

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.

PerformanceImprove performance of SPI_execute and related functions, thereby improving PL/pgSQL's EXECUTE

Changes

Improve performance of SPI_execute and related functions, thereby improving PL/pgSQL's EXECUTE (Heikki Linnakangas, Tom Lane)

Remove some data-copying overhead that was added in 9.2 as a consequence of revisions in the plan caching mechanism. This eliminates a performance regression compared to 9.1, and also saves memory, especially when the query string to be executed contains many SQL statements.

A side benefit is that multi-statement query strings are now processed fully serially, that is we complete execution of earlier statements before running parse analysis and planning on the following ones. This eliminates a long-standing issue, in that DDL that should affect the behavior of a later statement will now behave as expected.

ImprovementsRestore pre-9.2 cost estimates for index usage

Changes

Restore pre-9.2 cost estimates for index usage (Tom Lane)

An ill-considered change of a fudge factor led to undesirably high cost estimates for use of very large indexes.

Bug fixesFix intermittent crash in DROP INDEX CONCURRENTLY

Changes

Fix intermittent crash in DROP INDEX CONCURRENTLY (Tom Lane)

Bug fixesFix potential corruption of shared-memory lock table during CREATE/DROP INDEX CONCURRENTLY

Changes

Fix potential corruption of shared-memory lock table during CREATE/DROP INDEX CONCURRENTLY (Tom Lane)

Bug fixesFix COPY's multiple-tuple-insertion code for the case of a tuple larger than page size minus fillfactor

Changes

Fix COPY's multiple-tuple-insertion code for the case of a tuple larger than page size minus fillfactor (Heikki Linnakangas)

The previous coding could get into an infinite loop.

ImprovementsProtect against race conditions when scanning pg_tablespace

Changes

Protect against race conditions when scanning pg_tablespace (Stephen Frost, Tom Lane)

CREATE DATABASE and DROP DATABASE could misbehave if there were concurrent updates of pg_tablespace entries.

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 DROP OWNED from trying to drop whole databases or tablespaces

Changes

Prevent DROP OWNED from trying to drop whole databases or tablespaces (Álvaro Herrera)

For safety, ownership of these objects must be reassigned, not dropped.

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 error in vacuum_freeze_table_age implementation

Changes

Fix error in vacuum_freeze_table_age implementation (Andres Freund)

In installations that have existed for more than vacuum_freeze_min_age transactions, this mistake prevented autovacuum from using partial-table scans, so that a full-table scan would always happen instead.

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 misbehavior when a RowExpr or XmlExpr is parse-analyzed twice

Changes

Prevent misbehavior when a RowExpr or XmlExpr is parse-analyzed twice (Andres Freund, Tom Lane)

This mistake could be user-visible in contexts such as CREATE TABLE LIKE INCLUDING INDEXES.

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.

ImprovementsImprove defenses against integer overflow in hashtable sizing calculations

Changes

Improve defenses against integer overflow in hashtable sizing calculations (Jeff Davis)

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 some bugs associated with privileges on datatypes

Changes

Fix some bugs associated with privileges on datatypes (Tom Lane)

There were some issues with default privileges for types, and pg_dump failed to dump such privileges at all.

Bug fixesFix failure to ignore leftover temporary tables after a server crash

Changes

Fix failure to ignore leftover temporary tables after a server crash (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.

Bug fixesFix failure to rotate postmaster log files for size reasons on Windows

Changes

Fix failure to rotate postmaster log files for size reasons on Windows (Jeff Janes, Heikki Linnakangas)

ImprovementsReject out-of-range dates in to_date()

Changes

Reject out-of-range dates in to_date() (Hitoshi Harada)

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 pg_extension_config_dump() to handle extension-update cases properly

Changes

Fix pg_extension_config_dump() to handle extension-update cases properly (Tom Lane)

This function will now replace any existing entry for the target table, making it usable in extension update scripts.

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 PL/pgSQL's reporting of plan-time errors in possibly-simple expressions

Changes

Fix PL/pgSQL's reporting of plan-time errors in possibly-simple expressions (Tom Lane)

The previous coding resulted in sometimes omitting the first line in the CONTEXT traceback for the error.

Bug fixesFix PL/Python's handling of functions used as triggers on multiple tables

Changes

Fix PL/Python's handling of functions used as triggers on multiple tables (Andres Freund)

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 fixesEnsure that non-ASCII prompt strings are translated to the correct code page on Windows

Changes

Ensure that non-ASCII prompt strings are translated to the correct code page on Windows (Alexander Law, Noah Misch)

This bug affected psql and some other client programs.

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 in psql's \? command when not connected to a database

Changes

Fix possible crash in psql's \? command when not connected to a database (Meng Qingzhong)

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 error if a relation file is removed while pg_basebackup is running

Changes

Fix possible error if a relation file is removed while pg_basebackup is running (Heikki Linnakangas)

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.

ImprovementsTolerate timeline switches while pg_basebackup -X fetch is backing up a standby server

Changes

Tolerate timeline switches while pg_basebackup -X fetch is backing up a standby server (Heikki Linnakangas)

ImprovementsMake pg_dump exclude data of unlogged tables when running on a hot-standby server

Changes

Make pg_dump exclude data of unlogged tables when running on a hot-standby server (Magnus Hagander)

This would fail anyway because the data is not available on the standby server, so it seems most convenient to assume --no-unlogged-table-data automatically.

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 pg_upgrade to deal with invalid indexes safely

Changes

Fix pg_upgrade to deal with invalid indexes safely (Bruce Momjian)

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 pg_upgrade's -O/-o options

Changes

Fix pg_upgrade's -O/-o options (Marti Raudsepp)

Bug fixesFix one-byte buffer overrun in libpq's PQprintTuples

Changes

Fix one-byte buffer overrun in libpq's PQprintTuples (Xi Wang)

This ancient function is not used anywhere by PostgreSQL itself, but it might still be used by some client code.

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.

ImprovementsMake ecpglib use translated messages properly

Changes

Make ecpglib use translated messages properly (Chen Huajun)

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.

ImprovementsProperly install ecpg_compat and pgtypes libraries on MSVC

Changes

Properly install ecpg_compat and pgtypes libraries on MSVC (Jiang Guiqing)

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.

ImprovementsInclude our version of isinf() in libecpg if it's not provided by the system

Changes

Include our version of isinf() in libecpg if it's not provided by the system (Jiang Guiqing)

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.

ImprovementsRearrange configure's tests for supplied functions so it is not fooled by bogus exports from libedit/libreadline

Changes

Rearrange configure's tests for supplied functions so it is not fooled by bogus exports from libedit/libreadline (Christoph Berg)

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 Windows build number increases over time

Changes

Ensure Windows build number increases over time (Magnus Hagander)

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.

ImprovementsMake pgxs build executables with the right .exe suffix when cross-compiling for Windows

Changes

Make pgxs build executables with the right .exe suffix when cross-compiling for Windows (Zoltan Boszormenyi)

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.

ImprovementsAdd new timezone abbreviation FET

Changes

Add new timezone abbreviation FET (Tom Lane)

This is now used in some eastern-European time zones.

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.