PostgreSQL 9.2.2, 9.1.7, 9.0.11 and 8.4.15 released

Posted on 2012-12-06 by PostgreSQL Global Development Group

The PostgreSQL Global Development Group has released an update to all current versions of the PostgreSQL database system, including versions 9.2.2, 9.1.7, 9.0.11, 8.4.15, and 8.3.22. Users of PostgreSQL Hot Standby replication should update at the next possible opportunity. Other users should update at their next maintenance window.

This release fixes a significant page ordering issue with Hot Standby which could cause index corruption on the standby under some circumstances. In addition, this update patches timing issues with checkpoint and transaction ID wraparound which could cause data corruption in some cases. Today's update also fixes multiple issues with CREATE INDEX CONCURRENTLY and DROP INDEX CONCURRENTLY, which can cause those commands to fail or produce corrupt indexes. Users who use this feature may want to REINDEX or recreate affected indexes (see below).

This update release also contains fixes for many minor issues discovered and patched by the PostgreSQL community in the last month, including several fixes which are specific to version 9.2. These include:

  • Prevent psql crash due to incorrectly encoded input data
  • Fix pg_regress gmake build issues
  • Make sure correct directory is created for extensions
  • Fix some issues with buffer locks and VACUUM
  • Multiple fixes and improvements for pg_upgrade
  • Fix bugs with end-of-recovery when failing over to a standby
  • Avoid bogus "out-of-sequence timeline ID" errors in standby-mode
  • Don't launch new child processes during shutdown
  • Improve the ability of JOINs to use partial indexes
  • Fix assorted integer overflow errors
  • Eliminate memory leaks in record_out() and record_send()
  • Skip searching for subtransaction logs at COMMIT
  • Fix WaitLatch() timing issues
  • Fix handling of inherited check constraints in ALTER COLUMN TYPE
  • Make ALTER EXTENSION SET SCHEMA behave as documented
  • Have SEQUENCE SET statements in the "data" section of sectional dumps
  • Prevent parser from believing that VIEWs have system columns
  • Fix --clean mode for pg_dump
  • Prevent hash table corruption on out-of-memory
  • Various query planner and executor fixes and improvements
  • Multiple documentation updates
  • DST updates for seven timezones

PostgreSQL 8.3 will be End-Of-Life (EOL) in February 2013. As such, this update is likely to be the next-to-last update for that version. We urge users of version 8.3 to begin planning a full upgrade to a more current version of PostgreSQL now. For more information, see our Versioning Policy.

As with other minor releases, users are not required to dump and reload their database or use pg_upgrade in order to apply this update release; you may simply shut down PostgreSQL and update its binaries. Users who have skipped multiple update releases may need to perform additional, post-update steps; see the Release Notes for details.

Users who have used CREATE INDEX CONCURRENTLY extensively may want to REINDEX, or drop and re-create, indexes which were created using CREATE INDEX CONCURRENTLY after applying the update in order to be sure of their integrity. Unfortunately, indexes created concurrently are indistinguishable from indexes created non-concurrently, so users will need to rely on DBA knowledge. Once the update is applied, users can create the new index concurrently and then drop the old index concurrently to avoid downtime.