PostgreSQLLa base de données la plus sophistiquée au monde.

E.66. Release 8.3.5

[Note]

Release Date

2008-11-03

This release contains a variety of fixes from 8.3.4. For information about new features in the 8.3 major release, see Section E.71, « Release 8.3 ».

E.66.1. Migration to Version 8.3.5

A dump/restore is not required for those running 8.3.X. However, if you are upgrading from a version earlier than 8.3.1, see Section E.70, « Release 8.3.1 ». Also, if you were running a previous 8.3.X release, it is recommended to REINDEX all GiST indexes after the upgrade.

E.66.2. Changes

  • Fix GiST index corruption due to marking the wrong index entry « dead » after a deletion (Teodor)

    This would result in index searches failing to find rows they should have found. Corrupted indexes can be fixed with REINDEX.

  • Fix backend crash when the client encoding cannot represent a localized error message (Tom)

    We have addressed similar issues before, but it would still fail if the « character has no equivalent » message itself couldn't be converted. The fix is to disable localization and send the plain ASCII error message when we detect such a situation.

  • Fix possible crash in bytea-to-XML mapping (Michael McMaster)

  • Fix possible crash when deeply nested functions are invoked from a trigger (Tom)

  • Improve optimization of expression IN (expression-list) queries (Tom, per an idea from Robert Haas)

    Cases in which there are query variables on the right-hand side had been handled less efficiently in 8.2.x and 8.3.x than in prior versions. The fix restores 8.1 behavior for such cases.

  • Fix mis-expansion of rule queries when a sub-SELECT appears in a function call in FROM, a multi-row VALUES list, or a RETURNING list (Tom)

    The usual symptom of this problem is an « unrecognized node type » error.

  • Fix Assert failure during rescan of an IS NULL search of a GiST index (Teodor)

  • Fix memory leak during rescan of a hashed aggregation plan (Neil)

  • Ensure an error is reported when a newly-defined PL/pgSQL trigger function is invoked as a normal function (Tom)

  • Force a checkpoint before CREATE DATABASE starts to copy files (Heikki)

    This prevents a possible failure if files had recently been deleted in the source database.

  • Prevent possible collision of relfilenode numbers when moving a table to another tablespace with ALTER SET TABLESPACE (Heikki)

    The command tried to re-use the existing filename, instead of picking one that is known unused in the destination directory.

  • Fix incorrect text search headline generation when single query item matches first word of text (Sushant Sinha)

  • Fix improper display of fractional seconds in interval values when using a non-ISO datestyle in an --enable-integer-datetimes build (Ron Mayer)

  • Make ILIKE compare characters case-insensitively even when they're escaped (Andrew)

  • Ensure DISCARD is handled properly by statement logging (Tom)

  • Fix incorrect logging of last-completed-transaction time during PITR recovery (Tom)

  • Ensure SPI_getvalue and SPI_getbinval behave correctly when the passed tuple and tuple descriptor have different numbers of columns (Tom)

    This situation is normal when a table has had columns added or removed, but these two functions didn't handle it properly. The only likely consequence is an incorrect error indication.

  • Mark SessionReplicationRole as PGDLLIMPORT so it can be used by Slony on Windows (Magnus)

  • Fix small memory leak when using libpq's gsslib parameter (Magnus)

    The space used by the parameter string was not freed at connection close.

  • Ensure libgssapi is linked into libpq if needed (Markus Schaaf)

  • Fix ecpg's parsing of CREATE ROLE (Michael)

  • Fix recent breakage of pg_ctl restart (Tom)

  • Ensure pg_control is opened in binary mode (Itagaki Takahiro)

    pg_controldata and pg_resetxlog did this incorrectly, and so could fail on Windows.

  • Update time zone data files to tzdata release 2008i (for DST law changes in Argentina, Brazil, Mauritius, Syria)