E.133. Release 9.0.3
Release date: 2011-01-31
This release contains a variety of fixes from 9.0.2. For information about new features in the 9.0 major release, see Section E.136 .
E.133.1. Migration to Version 9.0.3
A dump/restore is not required for those running 9.0.X.
E.133.2. Changes
-
Before exiting walreceiver , ensure all the received WAL is fsync'd to disk (Heikki Linnakangas)
Otherwise the standby server could replay some un-synced WAL, conceivably leading to data corruption if the system crashes just at that point.
-
Avoid excess fsync activity in walreceiver (Heikki Linnakangas)
-
Make
ALTER TABLErevalidate uniqueness and exclusion constraints when needed (Noah Misch)This was broken in 9.0 by a change that was intended to suppress revalidation during
VACUUM FULLandCLUSTER, but unintentionally affectedALTER TABLEas well. -
Fix EvalPlanQual for
UPDATEof an inheritance tree in which the tables are not all alike (Tom Lane)Any variation in the table row types (including dropped columns present in only some child tables) would confuse the EvalPlanQual code, leading to misbehavior or even crashes. Since EvalPlanQual is only executed during concurrent updates to the same row, the problem was only seen intermittently.
-
Avoid failures when
EXPLAINtries to display a simple-formCASEexpression (Tom Lane)If the
CASE's test expression was a constant, the planner could simplify theCASEinto a form that confused the expression-display code, resulting in " unexpected CASE WHEN clause " errors. -
Fix assignment to an array slice that is before the existing range of subscripts (Tom Lane)
If there was a gap between the newly added subscripts and the first pre-existing subscript, the code miscalculated how many entries needed to be copied from the old array's null bitmap, potentially leading to data corruption or crash.
-
Avoid unexpected conversion overflow in planner for very distant date values (Tom Lane)
The
datetype supports a wider range of dates than can be represented by thetimestamptypes, but the planner assumed it could always convert a date to timestamp with impunity. -
Fix PL/Python crash when an array contains null entries (Alex Hunsaker)
-
Remove ecpg 's fixed length limit for constants defining an array dimension (Michael Meskes)
-
Fix erroneous parsing of
tsqueryvalues containing... & !(subexpression) | ...(Tom Lane)Queries containing this combination of operators were not executed correctly. The same error existed in
contrib/intarray'squery_inttype andcontrib/ltree'sltxtquerytype. -
Fix buffer overrun in
contrib/intarray's input function for thequery_inttype (Apple)This bug is a security risk since the function's return address could be overwritten. Thanks to Apple Inc's security team for reporting this issue and supplying the fix. (CVE-2010-4015)
-
Fix bug in
contrib/seg's GiST picksplit algorithm (Alexander Korotkov)This could result in considerable inefficiency, though not actually incorrect answers, in a GiST index on a
segcolumn. If you have such an index, considerREINDEXing it after installing this update. (This is identical to the bug that was fixed incontrib/cubein the previous update.)