The PostgreSQL Global Development Group has released an update to all supported version of the database system, including versions 9.3.5, 9.2.9, 9.1.14, 9.0.18, and 8.4.22. This minor release fixes a number of issues discovered and reported by users over the last four months, including some data corruption issues, and is the last update of version 8.4. Users of version 9.3 will want to update at the earliest opportunity; users of version 8.4 will want to schedule an upgrade to a supported PostgreSQL version.
Among the notable issues fixed in this release are:
PostgreSQL 9.3 and pg_upgrade: Users who upgraded to version 9.3 using pg_upgrade may have an issue with transaction information which causes VACUUM to eventually fail. These users should run the script provided in the release notes to determine if their installation is affected, and then take the remedy steps outlined there.
PostgreSQL 9.3 crash recovery: Three issues which could compromise data integrity during crash recovery on master or standby servers in PostgreSQL 9.3 have been fixed.
GIN and GiST indexes: Three issues with GIN and GiST indexes, used for PostGIS and full text indexing, can cause corruption or incorrect query responses. Any indexes on bit or bit varying columns should be rebuilt following the instructions in the release notes.
Security during make check: The insecure socket permissions during "make check", reported in a previous security announcement, have now been fixed.
With this release, version 8.4 is now End-of-Life (EOL), per our Versioning Policy. This means that no additional updates will be released for version 8.4, and users should plan to upgrade to a later version very soon.
In addition the above, this update release includes the following fixes which affect multiple PostgreSQL versions:
- Fix race condition with concurrent tuple updating
- Prevent "could not find pathkey item to sort" planner error
- Properly optimize subqueries with set-returning functions
- Repair planner regression in optimizing AND/OR NULL
- Fix planner handling of VARIADIC functions
- Make json_populate_recordset handle nested JSON properly
- Prevent corruption of TOAST values when creating complex types
- Prevent "record type has not been registered" query error
- Fix a possible crash condition with functions and rewinding cursors
- Patch three memory leaks
- Fix row checks for rows deleted by subtransactions
- Change how pg_stat_activity displays sessions during PREPARE TRANSACTION
- Prevent multixact ID corruption during VACUUM FULL
- Fix indentation when displaying complex view definitions
- Fix client hostname lookup in pg_hba.conf
- Fix libpython linking on OSX
- Avoid buffer bloat in libpq
- Fix an issue with dumping materialized views
- Fix pg_upgrade's handling of multixact IDs
- Make sure that pgcrypto clears sensitive information from memory
- Time zone updates for Crimea, Egypt, and Morocco
Four Windows-specific fixes are included in this release:
- Prevent tablespace creation recovery errors
- Fix detection of socket failures
- Allow users to change parameters after startup
- Properly quote executable names so they don't fail
A few of the issues above require post-update steps to be carried out by affected users. Please see the release notes for details.
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.
- Download PostgreSQL
- View Press Release
- Visit PostgreSQL