Release 8.0.2

Release date: 2005-04-07

This release contains a variety of fixes from 8.0.1. For information about new features in the 8.0 major release, see Section E.267 .

E.265.1. Migration to Version 8.0.2

A dump/restore is not required for those running 8.0.*. This release updates the major version number of the PostgreSQL libraries, so it might be necessary to re-link some user applications if they cannot find the properly-numbered shared library.

E.265.2. Changes

  • Increment the major version number of all interface libraries (Bruce)

    This should have been done in 8.0.0. It is required so 7.4.X versions of PostgreSQL client applications, like psql , can be used on the same machine as 8.0.X applications. This might require re-linking user applications that use these libraries.

  • Add Windows-only wal_sync_method setting of fsync_writethrough (Magnus, Bruce)

    This setting causes PostgreSQL to write through any disk-drive write cache when writing to WAL. This behavior was formerly called fsync , but was renamed because it acts quite differently from fsync on other platforms.

  • Enable the wal_sync_method setting of open_datasync on Windows, and make it the default for that platform (Magnus, Bruce)

    Because the default is no longer fsync_writethrough , data loss is possible during a power failure if the disk drive has write caching enabled. To turn off the write cache on Windows, from the Device Manager , choose the drive properties, then Policies .

  • New cache management algorithm 2Q replaces ARC (Tom)

    This was done to avoid a pending US patent on ARC . The 2Q code might be a few percentage points slower than ARC for some work loads. A better cache management algorithm will appear in 8.1.

  • Planner adjustments to improve behavior on freshly-created tables (Tom)

  • Allow plpgsql to assign to an element of an array that is initially NULL (Tom)

    Formerly the array would remain NULL , but now it becomes a single-element array. The main SQL engine was changed to handle UPDATE of a null array value this way in 8.0, but the similar case in plpgsql was overlooked.

  • Convert \r\n and \r to \n in plpython function bodies (Michael Fuhr)

    This prevents syntax errors when plpython code is written on a Windows or Mac client.

  • Allow SPI cursors to handle utility commands that return rows, such as EXPLAIN (Tom)

  • Fix CLUSTER failure after ALTER TABLE SET WITHOUT OIDS (Tom)

  • Reduce memory usage of ALTER TABLE ADD COLUMN (Neil)

  • Fix ALTER LANGUAGE RENAME (Tom)

  • Document the Windows-only register and unregister options of pg_ctl (Magnus)

  • Ensure operations done during backend shutdown are counted by statistics collector

    This is expected to resolve reports of pg_autovacuum not vacuuming the system catalogs often enough - it was not being told about catalog deletions caused by temporary table removal during backend exit.

  • Change the Windows default for configuration parameter log_destination to eventlog (Magnus)

    By default, a server running on Windows will now send log output to the Windows event logger rather than standard error.

  • Make Kerberos authentication work on Windows (Magnus)

  • Allow ALTER DATABASE RENAME by superusers who aren't flagged as having CREATEDB privilege (Tom)

  • Modify WAL log entries for CREATE and DROP DATABASE to not specify absolute paths (Tom)

    This allows point-in-time recovery on a different machine with possibly different database location. Note that CREATE TABLESPACE still poses a hazard in such situations.

  • Fix crash from a backend exiting with an open transaction that created a table and opened a cursor on it (Tom)

  • Fix array_map() so it can call PL functions (Tom)

  • Several contrib/tsearch2 and contrib/btree_gist fixes (Teodor)

  • Fix crash of some contrib/pgcrypto functions on some platforms (Marko Kreen)

  • Fix contrib/intagg for 64-bit platforms (Tom)

  • Fix ecpg bugs in parsing of CREATE statement (Michael)

  • Work around gcc bug on powerpc and amd64 causing problems in ecpg (Christof Petig)

  • Do not use locale-aware versions of upper() , lower() , and initcap() when the locale is C (Bruce)

    This allows these functions to work on platforms that generate errors for non-7-bit data when the locale is C .

  • Fix quote_ident() to quote names that match keywords (Tom)

  • Fix to_date() to behave reasonably when CC and YY fields are both used (Karel)

  • Prevent to_char(interval) from failing when given a zero-month interval (Tom)

  • Fix wrong week returned by date_trunc('week') (Bruce)

    date_trunc('week') returned the wrong year for the first few days of January in some years.

  • Use the correct default mask length for class D addresses in INET data types (Tom)