* Fix bugs in indexing of in-doubt HOT-updated tuples
* Fix multiple bugs in GiST index page split processing
* Fix possible buffer overrun in tsvector_concat()
* Fix crash in xml_recv when processing a "standalone" parameter
* Make pg_options_to_table return NULL for an option with no value
* Avoid possibly accessing off the end of memory in "ANALYZE" and in
SJIS-2004 encoding conversion
* Prevent intermittent hang in interactions of startup process with
bgwriter process
* Fix race condition in relcache init file invalidation
* Fix memory leak at end of a GiST index scan
* Fix incorrect memory accounting (leading to possible memory bloat)
in tuplestores supporting holdable cursors and plpgsql's RETURN
NEXT command
* Fix performance problem when constructing a large, lossy bitmap
* Fix join selectivity estimation for unique columns
* Fix nested PlaceHolderVar expressions that appear only in
sub-select target lists
* Allow nested EXISTS queries to be optimized properly
* Fix array- and path-creating functions to ensure padding bytes are zeroes
* Fix "EXPLAIN" to handle gating Result nodes within inner-indexscan subplans
* Work around gcc 4.6.0 bug that breaks WAL replay
* Fix dump bug for VALUES in a view
* Disallow SELECT FOR UPDATE/SHARE on sequences
This operation doesn't work as expected and can lead to failures.
* Fix "VACUUM" so that it always updates pg_class.reltuples/relpages
* more...
* 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.
* Enforce restrictions in plperl using an opmask applied to the whole
interpreter, instead of using "Safe.pm"
* Prevent PL/Tcl from executing untrustworthy code from pltcl_modules
* Fix data corruption during WAL replay of ALTER ... SET TABLESPACE
* Fix possible crash if a cache reset message is received during
rebuild of a relcache entry
* Apply per-function GUC settings while running the language
validator for the function
* Do constraint exclusion for inherited "UPDATE" and "DELETE" target
tables when constraint_exclusion = partition
* Do not allow an unprivileged user to reset superuser-only parameter
settings
* Avoid possible crash during backend shutdown if shutdown occurs
when a CONTEXT addition would be made to log entries
* Fix erroneous handling of %r parameter in recovery_end_command
* Ensure the archiver process responds to changes in archive_command
as soon as possible
* Fix pl/pgsql's CASE statement to not fail when the case expression
is a query that returns no rows
* Update pl/perl's "ppport.h" for modern Perl versions
* Fix assorted memory leaks in pl/python
* Handle empty-string connect parameters properly in ecpg
* Prevent infinite recursion in psql when expanding a variable that
refers to itself
* Fix psql's \copy to not add spaces around a dot within \copy
(select ...)
* Avoid formatting failure in psql when running in a locale context
that doesn't match the client_encoding
* Fix unnecessary "GIN indexes do not support whole-index scans"
errors for unsatisfiable queries using "contrib/intarray" operators
* Ensure that "contrib/pgstattuple" functions respond to cancel
interrupts promptly
* Make server startup deal properly with the case that shmget()
returns EINVAL for an existing shared memory segment
* Avoid possible crashes in syslogger process on Windows
* Deal more robustly with incomplete time zone information in the
Windows registry
* Update the set of known Windows time zone names
* Update time zone data files to tzdata release 2010j for DST law
changes in Argentina, Australian Antarctic, Bangladesh, Mexico,
Morocco, Pakistan, Palestine, Russia, Syria, Tunisia; also
historical corrections for Taiwan.
Also, add PKST (Pakistan Summer Time) to the default set of
timezone abbreviations.
* Fix WAL page header initialization at the end of archive recovery
* Fix "cannot make new WAL entries during recovery" error
* Fix problem that could make expired rows visible after a crash
* Disallow "RESET ROLE" and "RESET SESSION AUTHORIZATION" inside
security-definer functions
* Make "LOAD" of an already-loaded loadable module into a no-op
* Make window function PARTITION BY and ORDER BY items always be
interpreted as simple expressions
* Fix several errors in planning of semi-joins
* Fix handling of whole-row references to subqueries that are within
an outer join
* Fix Windows shared-memory allocation code
* Fix locale handling with plperl
* Fix handling of reloptions to ensure setting one option doesn't
force default values for others
* Ensure that a "fast shutdown" request will forcibly terminate open
sessions, even if a "smart shutdown" was already in progress
* Avoid memory leak for array_agg() in GROUP BY queries
* Treat to_char(..., 'TH') as an uppercase ordinal suffix with 'HH'/'HH12'
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.