* Improve handling of getaddrinfo() on AIX
This fixes a problem with starting the statistics collector, among
other things.
* Fix "failed to re-find parent key" errors in "VACUUM"
* Fix race condition for truncation of a large relation across a
gigabyte boundary by "VACUUM"
* Fix bugs affecting multi-gigabyte hash indexes
* Fix possible deadlock in Windows signal handling
* Fix error when constructing an ARRAY[] made up of multiple empty
elements
* Fix ecpg memory leak during connection
* to_number() and to_char(numeric) are now STABLE, not IMMUTABLE, for
new initdb installs
This is because lc_numeric can potentially change the output of
these functions.
* Improve index usage of regular expressions that use parentheses
This improves psql \d performance also.
* Update timezone database
This affects Australian and Canadian daylight-savings rules in
particular.
previous 8.0.x release, no dump-and-restore is necessary. Changes
from version 8.0.3 include:
postgresql80-client:
- Clarify comment for pgsql-hier-query option to note that it is
considered buggy by PostgreSQL developers.
* Make psql -f filename return a nonzero exit code when opening the
file fails
* Change pg_dump to handle inherited check constraints more reliably
postgresql80-server:
* Fix error that allowed "VACUUM" to remove ctid chains too soon, and
add more checking in code that follows ctid links
This fixes a long-standing problem that could cause crashes in very
rare circumstances.
* Fix CHAR() to properly pad spaces to the specified length when
using a multiple-byte character set (Yoshiyuki Asaba)
In prior releases, the padding of CHAR() was incorrect because it
only padded to the specified number of bytes without considering
how many characters were stored.
* Force a checkpoint before committing "CREATE DATABASE"
This should fix recent reports of "index is not a btree" failures
when a crash occurs shortly after "CREATE DATABASE".
* Fix the sense of the test for read-only transaction in "COPY"
The code formerly prohibited "COPY TO", where it should prohibit
"COPY FROM".
* Handle consecutive embedded newlines in "COPY" CSV-mode input
* Fix date_trunc(week) for dates near year end
* Fix planning problem with outer-join ON clauses that reference only
the inner-side relation
* Further fixes for x FULL JOIN y ON true corner cases
* Fix overenthusiastic optimization of x IN (SELECT DISTINCT ...) and
related cases
* Fix mis-planning of queries with small LIMIT values due to poorly
thought out "fuzzy" cost comparison
* Make array_in and array_recv more paranoid about validating their
OID parameter
* Fix missing rows in queries like UPDATE a=... WHERE a... with GiST
index on column a
* Improve robustness of datetime parsing
* Improve checking for partially-written WAL pages
* Improve robustness of signal handling when SSL is enabled
* Improve MIPS and M68K spinlock code
* Don't try to open more than max_files_per_process files during
postmaster startup
* Various memory leakage fixes
* Various portability improvements
* Update timezone data files
* Fix PL/PgSQL to handle var := var correctly when the variable is of
pass-by-reference type
postgresql80-plperl:
* Fix PL/Perl %_SHARED so it's actually shared
* Become maintainer for the postgresql80-* packages (ok'd by recht)
* Libtoolize postgresql80 build so that the shared libraries and
loadable shared modules are built using libtool. This should make
PostgreSQL 8.0.x in pkgsrc build correctly on more pkgsrc-supported
platforms. This is accomplished with the Makefile.libtool file
which replaces the Makefile.shlib file in the PostgreSQL distribution.
* Add libltdl modifications from the postgresql74-* packages so that
this can work on Interix (untested).
* Fix some mismatches between static function declarations and their
subsesquent definitions in the src/timezone module. Fixes provided
by Georg Schwarz.
* Convert PGSQL_USE_HIER into the PKG_OPTION "pgsql-hier-query", and
teach both postgresql80-client and postgresql80-server to use it.
* Use BUILDLINK_TRANSFORM's "rm" action to remove unwanted compiler
flags.
* Remove zlib/buildlink3.mk from postgresql80-client/buildlink3.mk
as zlib is only used by the pg_dump client.
* Convert some files in files/* into patches that can be fed back
to the PostgreSQL team.
* Install data and documentation files into share/postgresql instead
of share/postgresql80 -- it's only possible to install one PostgreSQL
version at a time in pkgsrc, and the new paths more closely match
the rest of the installation paths.
* Add more mirrors to the MASTER_SITES list, and add a new variable
POSTGRESQL_MIRRORS_SORT that has the same syntax as MASTER_SORT that
can help people pick a nearby mirror.
* Nuke references to libpgtcl which is no longer distributed as part
of a standard PostgreSQL installation as of version 8.0.
* Provide better documentation for Makefile.custom.
* Avoid linking in the pthread library in the correct way on NetBSD
by setting DLOPEN_REQUIRE_PTHREADS=no. Also, provide better
documentation on why we can't enable thread-safety in the PostgreSQL
libraries on NetBSD (at least for now).
* Preliminary support for installing postgresql80-* into a separate
subdirectory under ${LOCALBASE} so possibly allow for multiple
installations of PostgreSQL on the same machine. Note that THIS
DOES NOT WORK YET.
* Update the hierarchical-queries patch to "8.0.3-0.5.5" which fixes
a bug which was crashing the backend when PRIOR was used in the
target list. The _level_ column is no longer automatically added
to target list. This makes it possible to use hierarchical queries
as IN subqueries. To get _level_ back you just have to explicitly
mention it in target list.
Bump the following PKGREVISIONs:
postgresql80-client -> 2
postgresql80-server -> 2
postgresql80 -> 1
And always is defined as share/examples/rc.d
which was the default before.
This rc.d scripts are not automatically added to PLISTs now also.
So add to each corresponding PLIST as required.
This was discussed on tech-pkg in late January and late April.
Todo: remove the RCD_SCRIPTS_EXAMPLEDIR uses in MESSAGES and elsewhere
and remove the RCD_SCRIPTS_EXAMPLEDIR itself.
While at it do some structual changes to packages and merge
the lib and docs package has been merged into the client package.
Also enable Rendezvous support on Darwin.
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)
for those wishing to migrate data from any previous release.
Major changes relative to 7.4.x:
* Savepoints
* Point-in-Time recovery
* Tablespaces
* Improved buffer management
* ALTER TABLE column management improvements
Full list of changes is available at:
http://www.postgresql.org/docs/8.0/static/release.html#RELEASE-8-0
Also note that PostgreSQL server listens also on localhost (127.0.0.1)
by default now.