postgresql-9.0 (9.0.6-1) unstable; urgency=low
* New upstream bug fix release.
- Fix bugs in information_schema.referential_constraints view.
This view was being insufficiently careful about matching the
foreign-key constraint to the depended-on primary or unique key
constraint. That could result in failure to show a foreign key
constraint at all, or showing it multiple times, or claiming that
it depends on a different constraint than the one it really does.
Since the view definition is installed by initdb, merely upgrading
will not fix the problem. If you need to fix this in an existing
installation, you can (as a superuser) drop the information_schema
schema then re-create it by sourcing
"SHAREDIR/information_schema.sql". (Run pg_config --sharedir if
you're uncertain where "SHAREDIR" is.) This must be repeated in
each database to be fixed.
- Fix possible crash during "UPDATE" or "DELETE" that joins to the
output of a scalar-returning function. A crash could only occur if the
target row had been concurrently updated, so this problem surfaced only
intermittently.
- Fix incorrect replay of WAL records for GIN index updates.
This could result in transiently failing to find index entries
after a crash, or on a hot-standby server. The problem would be
repaired by the next "VACUUM" of the index, however.
- Fix TOAST-related data corruption during CREATE TABLE dest AS
SELECT - FROM src or INSERT INTO dest SELECT * FROM src.
If a table has been modified by "ALTER TABLE ADD COLUMN", attempts
to copy its data verbatim to another table could produce corrupt
results in certain corner cases. The problem can only manifest in
this precise form in 8.4 and later, but we patched earlier versions
as well in case there are other code paths that could trigger the
same bug.
- Fix possible failures during hot standby startup.
- Start hot standby faster when initial snapshot is incomplete.
- Fix race condition during toast table access from stale syscache
entries. The typical symptom was transient errors like "missing chunk
number 0 for toast value NNNNN in pg_toast_2619", where the cited toast
table would always belong to a system catalog.
- Track dependencies of functions on items used in parameter default
expressions. Previously, a referenced object could be dropped without
having dropped or modified the function, leading to misbehavior when the
function was used. Note that merely installing this update will not fix
the missing dependency entries; to do that, you'd need to "CREATE OR
REPLACE" each such function afterwards. If you have functions whose
defaults depend on non-built-in objects, doing so is recommended.
- Allow inlining of set-returning SQL functions with multiple OUT
parameters.
- Don't trust deferred-unique indexes for join removal. A deferred
uniqueness constraint might not hold intra-transaction, so assuming that
it does could give incorrect query results.
- Make DatumGetInetP() unpack inet datums that have a 1-byte header,
and add a new macro, DatumGetInetPP(), that does not.
This change affects no core code, but might prevent crashes in
add-on code that expects DatumGetInetP() to produce an unpacked
datum as per usual convention.
- Improve locale support in money type's input and output. Aside from not
supporting all standard lc_monetary formatting options, the input and
output functions were inconsistent, meaning there were locales in which
dumped money values could not be re-read.
- Don't let transform_null_equals affect CASE foo WHEN NULL ...
constructs.
- Change foreign-key trigger creation order to better support
self-referential foreign keys.
For a cascading foreign key that references its own table, a row
update will fire both the ON UPDATE trigger and the CHECK trigger
as one event. The ON UPDATE trigger must execute first, else the
CHECK will check a non-final state of the row and possibly throw an
inappropriate error. However, the firing order of these triggers is
determined by their names, which generally sort in creation order
since the triggers have auto-generated names following the
convention "RI_ConstraintTrigger_NNNN". A proper fix would require
modifying that convention, which we will do in 9.2, but it seems
risky to change it in existing releases. So this patch just changes
the creation order of the triggers. Users encountering this type of
error should drop and re-create the foreign key constraint to get
its triggers into the right order.
- Avoid floating-point underflow while tracking buffer allocation
rate.
- Fix incorrect field alignment in ecpg's SQLDA area.
- Preserve blank lines within commands in psql's command history.
The former behavior could cause problems if an empty line was
removed from within a string literal, for example.
- Fix pg_dump to dump user-defined casts between auto-generated
types, such as table rowtypes.
- Assorted fixes for pg_upgrade. Handle exclusion constraints correctly,
don't complain about mismatched toast table names in 8.4 databases.
- Use the preferred version of xsubpp to build PL/Perl, not
necessarily the operating system's main copy.
- Fix incorrect coding in "contrib/dict_int" and "contrib/dict_xsyn".
- Fix assorted errors in "contrib/unaccent"'s configuration file
parsing.
- Honor query cancel interrupts promptly in pgstatindex().
- Ensure VPATH builds properly install all server header files.
- Shorten file names reported in verbose error messages.
Regular builds have always reported just the name of the C file
containing the
|