Release date: 2013-02-07
This release contains a variety of fixes from 9.1.7. For information about new features in the 9.1 major release, see Section E.134.
A dump/restore is not required for those running 9.1.X.
However, if you are upgrading from a version earlier than 9.1.6, see Section E.128.
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)
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)
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.
Fix recycling of WAL segments after changing recovery target timeline (Heikki Linnakangas)
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.
Prevent recovery pause feature from pausing before users can connect (Tom Lane)
Fix SQL grammar to allow subscripting or field selection from a sub-SELECT result (Tom Lane)
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.
Protect against race conditions when scanning
Frost, Tom Lane)
CREATE DATABASE and
DROP DATABASE could
misbehave if there were concurrent updates of
DROP OWNED from
trying to drop whole databases or tablespaces (Álvaro
For safety, ownership of these objects must be reassigned, not dropped.
Fix error in
vacuum_freeze_table_age implementation (Andres
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
Prevent misbehavior when a
XmlExpr is parse-analyzed twice (Andres
Freund, Tom Lane)
This mistake could be user-visible in contexts such as
CREATE TABLE LIKE INCLUDING
Improve defenses against integer overflow in hashtable sizing calculations (Jeff Davis)
Fix failure to ignore leftover temporary tables after a server crash (Tom Lane)
Reject out-of-range dates in
to_date() (Hitoshi Harada)
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.
Fix PL/Python's handling of functions used as triggers on multiple tables (Andres Freund)
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.
Fix possible crash in psql's
\? command when not connected to a
database (Meng Qingzhong)
Fix possible error if a relation file is removed while pg_basebackup is running (Heikki Linnakangas)
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
Fix pg_upgrade to deal with invalid indexes safely (Bruce Momjian)
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.
Make ecpglib use translated messages properly (Chen Huajun)
Properly install ecpg_compat and pgtypes libraries on MSVC (Jiang Guiqing)
Include our version of
isinf() in libecpg if it's not provided by the
system (Jiang Guiqing)
Rearrange configure's tests for supplied functions so it is not fooled by bogus exports from libedit/libreadline (Christoph Berg)
Ensure Windows build number increases over time (Magnus Hagander)
Make pgxs build
executables with the right
.exe suffix when cross-compiling for
Windows (Zoltan Boszormenyi)
Add new timezone abbreviation
FET (Tom Lane)
This is now used in some eastern-European time zones.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.