* 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.
The fix for locales and plperl in 8.0.6 might make an REINDEX necessary.
Changes from 8.0.5 to 8.0.6:
- Fix Windows code so that postmaster will continue rather than exit if
there is no more room in ShmemBackendArray (Magnus)
- Fix bug introduced in 8.0 that could allow ReadBuffer to return an
already-used page as new, potentially causing loss of recently-committed
data (Tom)
- Fix for protocol-level Describe messages issued outside a transaction
or in a failed transaction (Tom)
- Fix character string comparison for locales that consider different
character combinations as equal, such as Hungarian (Tom)
- Set locale environment variables during postmaster startup to ensure
that plperl won't change the locale later
- Allow more flexible relocation of installation directories (Tom)
- Fix longstanding bug in strpos() and regular expression handling in
certain rarely used Asian multi-byte character sets (Tatsuo)
- Various fixes for functions returning RECORDs (Tom)
- Fix bug in /contrib/pgcrypto gen_salt, which caused it not to use all
available salt space for MD5 and XDES algorithms (Marko Kreen, Solar
Designer)
- Fix /contrib/dblink to throw an error, rather than crashing, when the
number of columns specified is different from what's actually returned
by the query (Joe)
Changes from 8.0.6 to 8.0.7:
- Fix potential crash in SET SESSION AUTHORIZATION (CVE-2006-0553)
- Fix bug with row visibility logic in self-inserted rows (Tom)
- Fix race condition that could lead to "file already exists" errors
during pg_clog and pg_subtrans file creation (Tom)
- Fix cases that could lead to crashes if a cache-invalidation message
arrives at just the wrong time (Tom)
- Properly check DOMAIN constraints for UNKNOWN parameters in prepared
statements (Neil)
- Ensure ALTER COLUMN TYPE will process FOREIGN KEY, UNIQUE, and PRIMARY
KEY constraints in the proper order (Nakano Yoshihisa)
- Fixes to allow restoring dumps that have cross-schema references to
custom operators or operator classes (Tom)
- Allow pg_restore to continue properly after a COPY failure; formerly
it tried to treat the remaining COPY data as SQL commands (Stephen
Frost)
- Fix pg_ctl unregister crash when the data directory is not specified
(Magnus)
- Fix ecpg crash on AMD64 and PPC (Neil)
- Recover properly if error occurs during argument passing in PL/python
(Neil)
- Fix PL/perl's handling of locales on Win32 to match the backend
(Andrew)
- Fix crash when log_min_messages is set to DEBUG3 or above in
postgresql.conf on Win32 (Bruce)
- Fix pgxs -L library path specification for Win32, Cygwin, OS X, AIX
(Bruce)
- Check that SID is enabled while checking for Win32 admin privileges
(Magnus)
- Properly reject out-of-range date inputs (Kris Jurka)
- Portability fix for testing presence of finite and isinf during
configure (Tom)
PL/Python allows you to write functions in the Python programming
language that may be used in SQL queries as if they were built into
Postgres. The PL/Python intepreter is a full Python interpreter.
PL/Python is currently only available as an "untrusted" language
(meaning it does not offer any way of restricting what users can do
in it). It has therefore been named "plpythonu". The trusted variant
plpython may become available again in future, if a new secure execution
mechanism is developed in Python.