Changes:
* Fix incorrect password transformation in contrib/pgcrypto's DES crypt() function (Solar Designer)
* If a password string contained the byte value 0x80, the remainder of the password was ignored, causing the password to be much weaker than it appeared. With this fix, the rest of the string is properly included in the DES hash. Any stored password values that are affected by this bug will thus no longer match, so the stored values may need to be updated. (CVE-2012-2143)
* Ignore SECURITY DEFINER and SET attributes for a procedural language's call handler (Tom Lane)
* Applying such attributes to a call handler could crash the server. (CVE-2012-2655)
* Allow numeric timezone offsets in timestamp input to be up to 16 hours away from UTC (Tom Lane)
* Some historical time zones have offsets larger than 15 hours, the previous limit. This could result in dumped data values being rejected during reload.
* Fix timestamp conversion to cope when the given time is exactly the last DST transition time for the current timezone (Tom Lane)
* This oversight has been there a long time, but was not noticed previously because most DST-using zones are presumed to have an indefinite sequence of future DST transitions.
* 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 slow session startup when pg_attribute is very large (Tom Lane)
* If pg_attribute exceeds one-fourth of shared_buffers, cache rebuilding code that is sometimes needed during session start would trigger the synchronized-scan logic, causing it to take many times longer than normal. The problem was particularly acute if many new sessions were starting at once.
* Ensure sequential scans check for query cancel reasonably often (Merlin Moncure)
* A scan encountering many consecutive pages that contain no live tuples would not respond to interrupts meanwhile.
* Ensure the Windows implementation of PGSemaphoreLock() clears ImmediateInterruptOK before returning (Tom Lane)
* This oversight meant that a query-cancel interrupt received later in the same query could be accepted at an unsafe time, with unpredictable but not good consequences.
* Show whole-row variables safely when printing views or rules (Abbas Butt, Tom Lane)
* Corner cases involving ambiguous names (that is, the name could be either a table or column name of the query) were printed in an ambiguous way, risking that the view or rule would be interpreted differently after dump and reload. Avoid the ambiguous case by attaching a no-op cast.
* Ensure autovacuum worker processes perform stack depth checking properly (Heikki Linnakangas)
* Previously, infinite recursion in a function invoked by auto-ANALYZE could crash worker processes.
* Fix logging collector to not lose log coherency under high load (Andrew Dunstan)
* The collector previously could fail to reassemble large messages if it got too busy.
* Fix logging collector to ensure it will restart file rotation after receiving SIGHUP (Tom Lane)
* Fix PL/pgSQL's GET DIAGNOSTICS command when the target is the function's first variable (Tom Lane)
* Fix several performance problems in pg_dump when the database contains many objects (Jeff Janes, Tom Lane)
* pg_dump could get very slow if the database contained many schemas, or if many objects are in dependency loops, or if there are many owned sequences.
* Fix contrib/dblink's dblink_exec() to not leak temporary database connections upon error (Tom Lane)
* 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.
* 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
* 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 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 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
* 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 assorted crashes in xml processing caused by sloppy memory
management
* Fix bug with trying to update a field of an element of a
composite-type array column
* 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
* Fix some more cases of temporary-file leakage
This corrects a problem introduced in the previous minor release.
One case that failed is when a plpgsql function returning set is
called within another function's exception handler.
* Improve constraint exclusion processing of boolean-variable cases,
in particular make it possible to exclude a partition that has a
"bool_column = false" constraint
* 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
* Make ecpg report the proper SQLSTATE if the connection disappears
* Fix psql's numericlocale option to not format strings it shouldn't
in latex and troff output formats
* 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 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 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.
* Update time zone data files to tzdata release 2010e for DST law
changes in Bangladesh, Chile, Fiji, Mexico, Paraguay, Samoa.
* Prevent error recursion crashes when encoding conversion fails.
* Disallow "CREATE CONVERSION" with the wrong encodings for the
specified conversion function.
* Fix xpath() to not modify the path expression unless necessary, and
to make a saner attempt at it when necessary.
* Fix core dump when to_char() is given format codes that are
inappropriate for the type of the data argument.
* Fix possible failure in text search when C locale is used with a
multi-byte encoding.
* Fix extreme inefficiency in text search parser's handling of an
email-like string containing multiple @ characters.
* Fix planner problem with sub-"SELECT" in the output list of a
larger subquery.
* Fix decompilation of CASE WHEN with an implicit coercion.
* Fix possible misassignment of the owner of a TOAST table's rowtype.
* Change "UNLISTEN" to exit quickly if the current session has never
executed any "LISTEN" command.
* Fix PL/pgSQL to not treat INTO after "INSERT" as an INTO-variables
clause anywhere in the string, not only at the start; in
particular, don't fail for "INSERT INTO" within "CREATE RULE".
* Clean up PL/pgSQL error status variables fully at block exit.
* Retry failed calls to CallNamedPipe() on Windows.
* Add MUST (Mauritius Island Summer Time) to the default list of
known timezone abbreviations.
With significant new functionality and performance enhancements, this
release represents a major leap forward for PostgreSQL. This was made
possible by a growing community that has dramatically accelerated the
pace of development. This release adds the following major features:
* Full text search is integrated into the core database system
* Support for the SQL/XML standard, including new operators and an
XML data type
* Enumerated data types (ENUM)
* Arrays of composite types
* Universally Unique Identifier (UUID) data type
* Add control over whether NULLs sort first or last
* Updatable cursors
* Server configuration parameters can now be set on a per-function
basis
* User-defined types can now have type modifiers
* Automatically re-plan cached queries when table definitions change
or statistics are updated
* Numerous improvements in logging and statistics collection
* Support Security Service Provider Interface (SSPI) for
authentication on Windows
* Support multiple concurrent autovacuum processes, and other
autovacuum improvements
* Allow the whole PostgreSQL distribution to be compiled with
Microsoft Visual C++