E.200. Release 8.3.5
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.205 .
E.200.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.204
   
   .  Also, if you were running a previous
    8.3.X release, it is recommended to
   
    REINDEX
   
   all GiST
    indexes after the upgrade.
  
E.200.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
expressionIN(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-
SELECTappears in a function call inFROM, a multi-rowVALUESlist, or aRETURNINGlist (Tom)The usual symptom of this problem is an " unrecognized node type " error.
 - 
     
Fix Assert failure during rescan of an
IS NULLsearch 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 DATABASEstarts to copy files (Heikki)This prevents a possible failure if files had recently been deleted in the source database.
 - 
     
Prevent possible collision of
relfilenodenumbers when moving a table to another tablespace withALTER 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-datetimesbuild (Ron Mayer) - 
     
Make
ILIKEcompare characters case-insensitively even when they're escaped (Andrew) - 
     
Ensure
DISCARDis handled properly by statement logging (Tom) - 
     
Fix incorrect logging of last-completed-transaction time during PITR recovery (Tom)
 - 
     
Ensure
SPI_getvalueandSPI_getbinvalbehave 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
SessionReplicationRoleasPGDLLIMPORTso it can be used by Slony on Windows (Magnus) - 
     
Fix small memory leak when using libpq 's
gsslibparameter (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_controlis 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)