Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt()
function (Solar Designer)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call
handler (Tom Lane)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away
from UTC (Tom Lane)
* Fix timestamp conversion to cope when the given time is exactly the last DST
transition time for the the current timezone (Tom Lane)
* Fix text to name and char to name casts to perform string truncation
correctly in multibyte encodings (Karl Schnaitter)
* Fix memory copying bug in to_tsquery() (Heikki Linnakangas)
* Fix planner's handling of outer PlaceHolderVars within subqueries (Tom Lane)
* Fix slow session startup when pg_attribute is very large (Tom Lane)
* Ensure sequential scans check for query cancel reasonably often (Merlin
Moncure)
* Ensure the Windows implementation of PGSemaphoreLock() clears
ImmediateInterruptOK before returning (Tom Lane)
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom
Lane)
* Fix COPY FROM to properly handle null marker strings that correspond to
invalid encoding (Tom Lane)
* Ensure autovacuum worker processes perform stack depth checking properly
(Heikki Linnakangas)
* Fix logging collector to not lose log coherency under high load (Andrew
Dunstan)
* Fix logging collector to ensure it will restart file rotation after receiving
SIGHUP (Tom Lane)
* Fix WAL replay logic for GIN indexes to not fail if the index was
subsequently dropped (Tom Lane)
* Fix memory leak in PL/pgSQL's RETURN NEXT command (Joe Conway)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's
first variable (Tom Lane)
* Fix potential access off the end of memory in psql's expanded display (\x)
mode (Peter Eisentraut)
* Fix several performance problems in pg_dump when the database contains many
objects (Jeff Janes, Tom Lane)
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections
upon error (Tom Lane)
* Fix contrib/dblink to report the correct connection name in error messages
(Kyotaro Horiguchi)
* Update time zone data files to tzdata release 2012c for DST law changes in
Antarctica, Armenia, Chile, Cuba, Falkland Islands, Gaza, Haiti, Hebron,
Morocco, Syria, and Tokelau Islands; also historical corrections for Canada.
* fix build issues on HP-UX and Itanium
* update time zone files for recent time zone changes
* change SQLSTATE for Hot Standby warnings
* prevent bgwriter hang during recovery
* prevent recursive composite type creation
* disallow dropping tables whose triggers are still pending
* allow use of "replication" as a user name
* prevent a crash during GEQO planning
* improve join plans for tables with missing statistics
* fix error with SELECT FOR UPDATE in a subselect
* close PL/python array slice memory leak
* allow SSL connections for users with no home directory
* Avoid failures when "EXPLAIN" tries to display a simple-form CASE
expression.
* Fix assignment to an array slice that is before the existing range
of subscripts.
* Avoid unexpected conversion overflow in planner for very distant
date values.
* Fix pg_restore's text output for large objects (BLOBs) when
standard_conforming_strings is on.
* Fix erroneous parsing of tsquery values containing ... &
!(subexpression) | ...
* Fix buffer overrun in "contrib/intarray"'s input function for the
query_int type.
* Fix bug in "contrib/seg"'s GiST picksplit algorithm.
* Force the default wal_sync_method to be fdatasync on Linux
* Fix assorted bugs in WAL replay logic for GIN indexes
* Fix recovery from base backup when the starting checkpoint WAL
record is not in the same WAL segment as its redo point
* Fix persistent slowdown of autovacuum workers when multiple workers
remain active for a long time
* Add support for detecting register-stack overrun on IA64
* Add a check for stack overflow in copyObject()
* Fix detection of page splits in temporary GiST indexes
* Fix error checking during early connection processing
* Improve efficiency of window functions
* Avoid memory leakage while "ANALYZE"'ing complex index expressions
* Ensure an index that uses a whole-row Var still depends on its table
* Do not "inline" a SQL function with multiple OUT parameters
* Behave correctly if ORDER BY, LIMIT, FOR UPDATE, or WITH is
attached to the VALUES part of INSERT ... VALUES
* Fix constant-folding of COALESCE() expressions
* Fix postmaster crash when connection acceptance (accept() or one of
the calls made immediately after it) fails, and the postmaster was
compiled with GSSAPI support
* Fix missed unlink of temporary files when log_temp_files is active
* Add print functionality for InhRelation nodes
* Fix incorrect calculation of distance from a point to a horizontal
line segment
* Fix incorrect calculation of transaction status in ecpg
* Fix PL/pgSQL's handling of "simple" expressions to not fail in
recursion or error-recovery cases
* Fix PL/Python's handling of set-returning functions
* Fix bug in "contrib/cube"'s GiST picksplit algorithm
* Don't emit "identifier will be truncated" notices in
"contrib/dblink" except when creating new connections
* Fix potential coredump on missing public key in "contrib/pgcrypto"
* Fix memory leak in "contrib/xml2"'s XPath query functions
* Update time zone data files to tzdata release 2010o for DST law
changes in Fiji and Samoa; also historical corrections for Hong
Kong.
* Add new configuration parameter ssl_renegotiation_limit to control
how often we do session key renegotiation for an SSL connection
* Fix possible deadlock during backend startup
* Fix possible crashes due to not handling errors during relcache
reload cleanly
* Fix possible crash due to use of dangling pointer to a cached plan
* Fix possible crash due to overenthusiastic invalidation of cached
plan for "ROLLBACK"
* Fix possible crashes when trying to recover from a failure in
subtransaction start
* Fix server memory leak associated with use of savepoints and a
client encoding different from server's encoding
* Fix incorrect WAL data emitted during end-of-recovery cleanup of a
GIST index page split
* Fix bug in WAL redo cleanup method for GIN indexes
* Fix incorrect comparison of scan key in GIN index search
* Make substring() for bit types treat any negative length as meaning
"all the rest of the string"
The previous coding treated only -1 that way, and would produce an
invalid result value for other negative values, possibly leading to
a crash (CVE-2010-0442).
* Fix integer-to-bit-string conversions to handle the first
fractional byte correctly when the output bit width is wider than
the given integer by something other than a multiple of 8 bits
* Fix some cases of pathologically slow regular expression matching
* Fix bug occurring when trying to inline a SQL function that returns
a set of a composite type that contains dropped columns
* Fix bug with trying to update a field of an element of a
composite-type array column
* Avoid failure when "EXPLAIN" has to print a FieldStore or
assignment ArrayRef expression
These cases can arise now that "EXPLAIN VERBOSE" tries to print
plan node target lists.
* Avoid an unnecessary coercion failure in some cases where an
undecorated literal string appears in a subquery within
"UNION"/"INTERSECT"/"EXCEPT"
This fixes a regression for some cases that worked before 8.4.
* Avoid undesirable rowtype compatibility check failures in some
cases where a whole-row Var has a rowtype that contains dropped
columns
* Fix the STOP WAL LOCATION entry in backup history files to report
the next WAL segment's name when the end location is exactly at a
segment boundary
* Always pass the catalog ID to an option validator function
specified in "CREATE FOREIGN DATA WRAPPER"
* Fix some more cases of temporary-file leakage
* Add support for doing FULL JOIN ON FALSE
* Improve constraint exclusion processing of boolean-variable cases,
in particular make it possible to exclude a partition that has a
"bool_column = false" constraint
* Prevent treating an INOUT cast as representing binary compatibility
* Include column name in the message when warning about inability to
grant or revoke column-level privileges
This is more useful than before and helps to prevent confusion when
a "REVOKE" generates multiple messages, which formerly appeared to
be duplicates.
* When reading "pg_hba.conf" and related files, do not treat
@something as a file inclusion request if the @ appears inside
quote marks; also, never treat @ by itself as a file inclusion
request
* Prevent infinite loop on some platforms if a directory is named as
an inclusion target in "pg_hba.conf" and related files
* Fix possible infinite loop if SSL_read or SSL_write fails without
setting errno
This is reportedly possible with some Windows versions of openssl.
* Disallow GSSAPI authentication on local connections, since it
requires a hostname to function correctly
* Protect ecpg against applications freeing strings unexpectedly
* Make ecpg report the proper SQLSTATE if the connection disappears
* Fix translation of cell contents in psql \d output
* Fix psql's numericlocale option to not format strings it shouldn't
in latex and troff output formats
* Fix a small per-query memory leak in psql
* Make psql return the correct exit status (3) when ON_ERROR_STOP and
--single-transaction are both specified and an error occurs during
the implied "COMMIT"
* Fix pg_dump's output of permissions for foreign servers
* Fix possible crash in parallel pg_restore due to out-of-range
dependency IDs
* Fix plpgsql failure in one case where a composite column is set to NULL
* Fix possible failure when calling PL/Perl functions from PL/PerlU
or vice versa
* Add volatile markings in PL/Python to avoid possible
compiler-specific misbehavior
* Ensure PL/Tcl initializes the Tcl interpreter fully
The only known symptom of this oversight is that the Tcl clock
command misbehaves if using Tcl 8.5 or later.
* Prevent ExecutorEnd from being run on portals created within a
failed transaction or subtransaction
This is known to cause issues when using "contrib/auto_explain".
* Prevent crash in "contrib/dblink" when too many key columns are
specified to a dblink_build_sql_* function
* Allow zero-dimensional arrays in "contrib/ltree" operations
* Fix assorted crashes in "contrib/xml2" caused by sloppy memory
management
* Make building of "contrib/xml2" more robust on Windows
* Fix race condition in Windows signal handling
One known symptom of this bug is that rows in pg_listener could be
dropped under heavy load.
* Make the configure script report failure if the C compiler does not
provide a working 64-bit integer datatype
This case has been broken for some time, and no longer seems worth
supporting, so just reject it at configure time instead.
* Update time zone data files to tzdata release 2010e for DST law
changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
monitoring tools and commands. Each user has their own favorite features which
will make day-to-day work with PostgreSQL easier and more productive for them.
Among the most popular enhancements are:
* Parallel Database Restore, speeding up recovery from backup up to 8 times
* Per-Column Permissions, allowing more granular control of sensitive data
* Per-database Collation Support, making PostgreSQL more useful in
multi-lingual environments
* In-place Upgrades through pg_migrator (beta), enabling upgrades from 8.3 to
8.4 without extensive downtime
* New Query Monitoring Tools, giving administrators more insight into query
activity
* Greatly Reduced VACUUM Overhead through the Visibility Map
* New Monitoring Tools for current queries, query load and deadlocks
Version 8.4 also makes data analysis easier through the advanced ANSI SQL2003
features of windowing functions, common table expressions and recursive queries.
Enhancements to stored procedures, such as default parameters and variadic
parameters, make database server programming simpler and more compact.
Of course, there are also performance improvements included in this version.