Fix persistence marking of shared buffers during WAL replay
(Jeff Davis)
This mistake can result in buffers not being written out during
checkpoints, resulting in data corruption if the server later crashes
without ever having written those buffers. Corruption can occur on
any server following crash recovery, but it is significantly more
likely to occur on standby slave servers since those perform much
more WAL replay. There is a low probability of corruption of btree
and GIN indexes. There is a much higher probability of corruption of
table "visibility maps". Fortunately, visibility maps are
non-critical data in 9.1, so the worst consequence of such corruption
in 9.1 installations is transient inefficiency of vacuuming. Table
data proper cannot be corrupted by this bug.
While no index corruption due to this bug is known to have occurred
in the field, as a precautionary measure it is recommended that
production installations REINDEX all btree and GIN
indexes at a convenient time after upgrading to 9.1.6.
Also, if you intend to do an in-place upgrade to 9.2.X, before doing
so it is recommended to perform a VACUUM of all tables
while having vacuum_freeze_table_age
set to zero. This will ensure that any lingering wrong data in the
visibility maps is corrected before 9.2.X can depend on it. vacuum_cost_delay
can be adjusted to reduce the performance impact of vacuuming, while
causing it to take longer to finish.
Fix planner's assignment of executor parameters, and fix executor's
rescan logic for CTE plan nodes (Tom Lane)
These errors could result in wrong answers from queries that scan the
same WITH subquery multiple times.
Fix misbehavior when default_transaction_isolation
is set to serializable (Kevin Grittner, Tom Lane, Heikki
Linnakangas)
Symptoms include crashes at process start on Windows, and crashes in
hot standby operation.
Improve selectivity estimation for text search queries involving
prefixes, i.e. word:* patterns (Tom Lane)
Improve page-splitting decisions in GiST indexes (Alexander Korotkov,
Robert Haas, Tom Lane)
Multi-column GiST indexes might suffer unexpected bloat due to this
error.
Fix cascading privilege revoke to stop if privileges are still held
(Tom Lane)
If we revoke a grant option from some role X, but
X still holds that option via a grant from someone
else, we should not recursively revoke the corresponding privilege
from role(s) Y that X had granted it
to.
Disallow extensions from containing the schema they are assigned to
(Thom Brown)
This situation creates circular dependencies that confuse
pg_dump and probably other things. It's confusing
for humans too, so disallow it.
Improve error messages for Hot Standby misconfiguration errors
(Gurjeet Singh)
Make configure probe for mbstowcs_l
(Tom
Lane)
This fixes build failures on some versions of AIX.
Fix handling of SIGFPE when PL/Perl is in use (Andres Freund)
Perl resets the process's SIGFPE handler to
SIG_IGN, which could result in crashes later on. Restore
the normal Postgres signal handler after initializing PL/Perl.
Prevent PL/Perl from crashing if a recursive PL/Perl function is
redefined while being executed (Tom Lane)
Work around possible misoptimization in PL/Perl (Tom Lane)
Some Linux distributions contain an incorrect version of
pthread.h that results in incorrect compiled code in
PL/Perl, leading to crashes if a PL/Perl function calls another one
that throws an error.
Fix bugs in contrib/pg_trgm's LIKE pattern
analysis code (Fujii Masao)
LIKE queries using a trigram index could produce wrong
results if the pattern contained LIKE escape characters.
Fix pg_upgrade's handling of line endings on Windows
(Andrew Dunstan)
Previously, pg_upgrade might add or remove carriage
returns in places such as function bodies.
On Windows, make pg_upgrade use backslash path
separators in the scripts it emits (Andrew Dunstan)
Remove unnecessary dependency on pg_config from
pg_upgrade (Peter Eisentraut)
Update time zone data files to tzdata release 2012f
for DST law changes in Fiji