* 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.
* Use a separate interpreter for each calling SQL userid in PL/Perl and PL/Tcl
* Prevent possible crashes in pg_get_expr() by disallowing it from being called
with an argument that is not one of the system catalog columns it's intended
to be used with
* Treat exit code 128 (ERROR_WAIT_NO_CHILDREN) as non-fatal on Windows
* Fix incorrect placement of placeholder evaluation
* Fix possible duplicate scans of UNION ALL member relations
* Fix "cannot handle unplanned sub-select" error
* Fix mishandling of whole-row Vars that reference a view or sub-select and
appear within a nested sub-select
* Fix mishandling of cross-type IN comparisons
* Fix computation of "ANALYZE" statistics for tsvector columns
* Improve planner's estimate of memory used by array_agg(), string_agg(), and
similar aggregate functions
* Fix failure to mark cached plans as transient
* Reduce PANIC to ERROR in some occasionally-reported btree failure cases, and
provide additional detail in the resulting error messages
* Fix incorrect search logic for partial-match queries with GIN indexes
* Prevent show_session_authorization() from crashing within autovacuum
processes
* Defend against functions returning setof record where not all the returned
rows are actually of the same rowtype
* Fix possible corruption of pending trigger event lists during subtransaction
rollback
* Fix possible failure when hashing a pass-by-reference function result
* Improve merge join's handling of NULLs in the join columns
* Take care to fsync the contents of lockfiles (both "postmaster.pid" and the
socket lockfile) while writing them
* Avoid recursion while assigning XIDs to heavily-nested subtransactions
* Avoid holding open old WAL segments in the walwriter process
* Fix log_line_prefix's %i escape, which could produce junk early in backend
startup
* Prevent misinterpretation of partially-specified relation options
for TOAST tables
* Fix inheritance count tracking in "ALTER TABLE ... ADD CONSTRAINT"
* Fix possible data corruption in "ALTER TABLE ... SET TABLESPACE" when
archiving is enabled
* Allow "CREATE DATABASE" and "ALTER DATABASE ... SET TABLESPACE" to be
interrupted by query-cancel
* Improve "CREATE INDEX"'s checking of whether proposed index
expressions are immutable
* Fix "REASSIGN OWNED" to handle operator classes and families
* Fix possible core dump when comparing two empty tsquery values
* Fix LIKE's handling of patterns containing % followed by _
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
* 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.
* 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.
* 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.