Release date: 2010-10-04
This release contains a variety of fixes from 7.4.29. For information about new features in the 7.4 major release, see Section E.311.
This is expected to be the last PostgreSQL release in the 7.4.X series. Users are encouraged to update to a newer release branch soon.
A dump/restore is not required for those running 7.4.X. However, if you are upgrading from a version earlier than 7.4.26, see Section E.285.
Use a separate interpreter for each calling SQL userid in PL/Perl and PL/Tcl (Tom Lane)
This change prevents security problems that can be
caused by subverting Perl or Tcl code that will be
executed later in the same session under another SQL user
identity (for example, within a
SECURITY DEFINER function). Most
scripting languages offer numerous ways that that might
be done, such as redefining standard functions or
operators called by the target function. Without this
change, any SQL user with Perl or Tcl language usage
rights can do essentially anything with the SQL
privileges of the target function's owner.
The cost of this change is that intentional communication among Perl and Tcl functions becomes more difficult. To provide an escape hatch, PL/PerlU and PL/TclU functions continue to use only one interpreter per session. This is not considered a security issue since all such functions execute at the trust level of a database superuser already.
It is likely that third-party procedural languages that claim to offer trusted execution have similar security issues. We advise contacting the authors of any PL you are depending on for security-critical purposes.
Our thanks to Tim Bunce for pointing out this issue (CVE-2010-3433).
Prevent possible crashes in
pg_get_expr() by disallowing it from
being called with an argument that is not one of the
system catalog columns it's intended to be used with
(Heikki Linnakangas, Tom Lane)
Fix “cannot handle unplanned sub-select” error (Tom Lane)
This occurred when a sub-select contains a join alias reference that expands into an expression containing another sub-select.
Take care to fsync the contents of lockfiles (both
postmaster.pid and the
socket lockfile) while writing them (Tom Lane)
This omission could result in corrupted lockfile contents if the machine crashes shortly after postmaster start. That could in turn prevent subsequent attempts to start the postmaster from succeeding, until the lockfile is manually removed.
handling of tables containing dropped columns (Tom
Fix connection leak after “duplicate connection
name” errors in
contrib/dblink (Itagaki Takahiro)
Update build infrastructure and documentation to reflect the source code repository's move from CVS to Git (Magnus Hagander and others)
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.