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.274.
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.
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)