* Force WAL segment switch during pg_start_backup()
* Disallow "RESET ROLE" and "RESET SESSION AUTHORIZATION" inside
security-definer functions
* Make "LOAD" of an already-loaded loadable module into a no-op
* Disallow empty passwords during LDAP authentication
* Fix handling of sub-SELECTs appearing in the arguments of an
outer-level aggregate function
* Fix bugs associated with fetching a whole-row value from the output
of a Sort or Materialize plan node
* Revert planner change that disabled partial-index and constraint
exclusion optimizations when there were more than 100 clauses in an
AND or OR list
* Fix hash calculation for data type interval
* Treat to_char(..., 'TH') as an uppercase ordinal suffix with 'HH'/'HH12'
* Fix overflow for INTERVAL 'x ms' when "x" is more than 2 million
and integer datetimes are in use
* Fix calculation of distance between a point and a line segment
* Fix money data type to work in locales where currency amounts have
no fractional digits, e.g. Japan
* Properly round datetime input like 00:12:57.9999999999999999999999999999
* Fix poor choice of page split point in GiST R-tree operator classes
* Avoid performance degradation in bulk inserts into GIN indexes when
the input values are (nearly) in sorted order
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
* Prevent error recursion crashes when encoding conversion fails.
* Disallow "CREATE CONVERSION" with the wrong encodings for the
specified conversion function.
* Fix core dump when to_char() is given format codes that are
inappropriate for the type of the data argument.
* Fix possible failure in "contrib/tsearch2" when C locale is used
with a multi-byte encoding.
* Fix extreme inefficiency in "contrib/tsearch2" parser's handling of
an email-like string containing multiple @ characters.
* Fix decompilation of CASE WHEN with an implicit coercion.
* Fix possible misassignment of the owner of a TOAST table's rowtype.
* 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.
* Improve handling of URLs in headline() function
* Improve handling of overlength headlines in headline() function
* Prevent possible Assert failure or misconversion if an encoding
conversion is created with the wrong conversion function for the
specified pair of encodings
* Fix possible Assert failure if a statement executed in PL/pgSQL is
rewritten into another kind of statement, for example if an
"INSERT" is rewritten into an "UPDATE"
* Ensure that a snapshot is available to datatype input functions
* Make it safer for SPI-using functions to be used within datatype
I/O; in particular, to be used in domain check constraints
* Avoid unnecessary locking of small tables in "VACUUM"
* Fix a problem that made UPDATE RETURNING tableoid return zero
instead of the correct OID
* Fix planner misestimation of selectivity when transitive equality
is applied to an outer-join clause
This could result in bad plans for queries like ... from a left
join b on a.a1 = b.b1 where a.a1 = 42 ...
* Improve optimizer's handling of long IN lists
This change avoids wasting large amounts of time on such lists when
constraint exclusion is enabled.
* Ensure that the contents of a holdable cursor don't depend on the
contents of TOAST tables
* Fix memory leak when a set-returning function is terminated without
reading its whole result
* Fix "contrib/dblink"'s dblink_get_result(text,bool) function
* Fix possible garbage output from "contrib/sslinfo" functions
* Fix configure script to properly report failure when unable to
obtain linkage information for PL/Perl
* Make all documentation reference pgsql-bugs and/or pgsql-hackers as
appropriate, instead of the now-decommissioned pgsql-ports and
pgsql-patches mailing lists
* Update time zone data files to tzdata release 2009a (for Kathmandu
and historical DST corrections in Switzerland, Cuba)
* Fix GiST index corruption due to marking the wrong index entry
"dead" after a deletion.
This would result in index searches failing to find rows they
should have found.
* Fix backend crash when the client encoding cannot represent a
localized error message.
We have addressed similar issues before, but it would still fail if
the "character has no equivalent" message itself couldn't be
converted. The fix is to disable localization and send the plain
ASCII error message when we detect such a situation.
* Fix possible crash when deeply nested functions are invoked from a
trigger.
* Improve optimization of "expression" IN ("expression-list") queries.
Cases in which there are query variables on the right-hand side had
been handled less efficiently in 8.2.x and 8.3.x than in prior
versions. The fix restores 8.1 behavior for such cases.
* Fix mis-expansion of rule queries when a sub-SELECT appears in a
function call in FROM, a multi-row VALUES list, or a RETURNING list.
* Fix memory leak during rescan of a hashed aggregation plan.
* Ensure an error is reported when a newly-defined PL/pgSQL trigger
function is invoked as a normal function.
* Prevent possible collision of relfilenode numbers when moving a
table to another tablespace with "ALTER SET TABLESPACE".
The command tried to re-use the existing filename, instead of
picking one that is known unused in the destination directory.
* Fix incorrect tsearch2 headline generation when single query item
matches first word of text.
* Fix improper display of fractional seconds in interval values when
using a non-ISO datestyle in an "--enable-integer-datetimes" build.
* Ensure SPI_getvalue and SPI_getbinval behave correctly when the
passed tuple and tuple descriptor have different numbers of columns.
* Fix ecpg's parsing of "CREATE ROLE".
* Fix recent breakage of pg_ctl restart.
* Ensure "pg_control" is opened in binary mode.
pg_controldata and pg_resetxlog did this incorrectly, and so could
fail on Windows.
* Update time zone data files to tzdata release 2008i (for DST law
changes in Argentina, Brazil, Mauritius, Syria)
* Make pg_get_ruledef() parenthesize negative constants (Tom)
Before this fix, a negative constant in a view or rule might be
dumped as, say, -42::integer, which is subtly incorrect: it should
be (-42)::integer due to operator precedence rules. Usually this
would make little difference, but it could interact with another
recent patch to cause PostgreSQL to reject what had been a valid
"SELECT DISTINCT" view query. Since this could result in pg_dump
output failing to reload, it is being treated as a high-priority
fix. The only released versions in which dump output is actually
incorrect are 8.3.1 and 8.2.7.
* Make "ALTER AGGREGATE ... OWNER TO" update pg_shdepend (Tom)
This oversight could lead to problems if the aggregate was later
involved in a "DROP OWNED" or "REASSIGN OWNED" operation.
* Fix character string comparison for Windows locales that consider
different character combinations as equal
* Repair potential deadlock between concurrent "VACUUM FULL"
operations on different system catalogs
* Fix longstanding "LISTEN"/"NOTIFY" race condition
* Disallow "LISTEN" and "UNLISTEN" within a prepared transaction
* Disallow dropping a temporary table within a prepared transaction
* Fix rare crash when an error occurs during a query using a hash
index
* Fix memory leaks in certain usages of set-returning functions
* Fix input of datetime values for February 29 in years BC
* Fix "unrecognized node type" error in some variants of "ALTER
OWNER"
* Ensure pg_stat_activity.waiting flag is cleared when a lock wait is
aborted
* Fix handling of process permissions on Windows Vista
* More...
* Prevent index corruption when a transaction inserts rows and then
aborts close to the end of a concurrent "VACUUM" on the same table
* Fix ALTER DOMAIN ADD CONSTRAINT for cases involving domains over
domains
* Make "CREATE DOMAIN ... DEFAULT NULL" work properly
* Fix some planner problems with outer joins, notably poor size
estimation for t1 LEFT JOIN t2 WHERE t2.col IS NULL
* Allow the interval data type to accept input consisting only of
milliseconds or microseconds
* Allow timezone name to appear before the year in timestamp input
* Fixes for GIN indexes used by "/contrib/tsearch2"
* Speed up rtree index insertion
* Fix excessive logging of SSL error messages
* Fix logging so that log messages are never interleaved when using
the syslogger process
* Fix crash when log_min_error_statement logging runs out of memory
* Fix incorrect handling of some foreign-key corner cases
* Fix stddev_pop(numeric) and var_pop(numeric)
* Prevent "REINDEX" and "CLUSTER" from failing due to attempting to
process temporary tables of other sessions
* Update the time zone database rules, particularly New Zealand's
upcoming changes
* Windows socket and semaphore improvements
* Make "pg_ctl -w" work properly in Windows service mode
* Fix memory allocation bug when using MIT Kerberos on Windows
* Suppress timezone name (%Z) in log timestamps on Windows because of
possible encoding mismatches
* Require non-superusers who use "/contrib/dblink" to use only
password authentication, as a security measure
* Restrict "/contrib/pgstattuple" functions to superusers, for
security reasons
* Do not let "/contrib/intarray" try to make its GIN opclass the
default (this caused problems at dump/restore)
* Support explicit placement of the temporary-table schema within
search_path, and disable searching it for functions and operators
* Fix shared_preload_libraries for Windows by forcing reload in each
backend
* Fix to_char() so it properly upper/lower cases localized day or
month names
* "/contrib/tsearch2" crash fixes
* Require "COMMIT PREPARED" to be executed in the same database as
the transaction was prepared in
* Allow "pg_dump" to do binary backups larger than two gigabytes on
Windows
* New traditional (Taiwan) Chinese FAQ
* Prevent the statistics collector from writing to disk too
frequently
* Fix potential-data-corruption bug in how "VACUUM FULL" handles
"UPDATE" chains
* Fix bug in domains that use array types
* Fix "pg_dump" so it can dump a serial column's sequence using "-t"
when not also dumping the owning table
* Planner fixes, including improving outer join and bitmap scan
selection logic
* Fix possible wrong answers or crash when a PL/pgSQL function tries
to RETURN from within an EXCEPTION block
* Fix PANIC during enlargement of a hash index
* Fix POSIX-style timezone specs to follow new USA DST rules
* Remove overly-restrictive check for type length in constraints and
functional indexes
* Fix optimization so MIN/MAX in subqueries can again use indexes
* Remove security vulnerabilities that allowed connected users to
read backend memory
* Fix not-so-rare-anymore bug wherein btree index page splits could
fail due to choosing an infeasible split point
* Fix Borland C compile scripts
* Properly handle to_char('CC') for years ending in 00
Year 2000 is in the twentieth century, not the twenty-first.
* "/contrib/tsearch2" localization improvements
* Fix incorrect permission check in information_schema.key_column_usage view
* Improve "VACUUM" performance for databases with many tables
* Fix for rare Assert() crash triggered by UNION
* Fix potentially incorrect results from index searches using ROW
inequality conditions
* Tighten security of multi-byte character processing for UTF8
sequences over three bytes long
* Fix bogus "permission denied" failures occurring on Windows due to
attempts to fsync already-deleted files
* Fix bug that could cause the statistics collector to hang on
Windows
* Fix possible crashes when an already-in-use PL/pgSQL function is
updated
* Improve PL/pgSQL handling of domain types
* Fix possible errors in processing PL/pgSQL exception blocks
* Fix crash with SELECT ... LIMIT ALL (also LIMIT NULL)
* "Several /contrib/tsearch2" fixes
* On Windows, make log messages coming from the operating system use
ASCII encoding
This fixes a conversion problem when there is a mismatch between
the encoding of the operating system and database server.
* Fix Windows linking of pg_dump using "win32.mak"
* Fix planner mistakes for outer join queries
* Fix several problems in queries involving sub-SELECTs
* Fix potential crash in SPI during subtransaction abort
This affects all PL functions since they all use SPI.
* Improve build speed of PDF documentation
* Re-add JST (Japan) timezone abbreviation
* Improve optimization decisions related to index scans
* Have psql print multi-byte combining characters as before, rather
than output as \u
* Improve index usage of regular expressions that use parentheses
This improves psql \d performance also.
* Make pg_dumpall assume that databases have public CONNECT
privilege, when dumping from a pre-8.2 server
This preserves the previous behavior that anyone can connect to a
database if allowed by "pg_hba.conf".
* Query language enhancements including "INSERT/UPDATE/DELETE
RETURNING", multirow VALUES lists, and optional target-table alias
in "UPDATE"/"DELETE"
* Index creation without blocking concurrent
"INSERT"/"UPDATE"/"DELETE" operations
* Many query optimization improvements, including support for
reordering outer joins
* Improved sorting performance with lower memory usage
* More efficient locking with better concurrency
* More efficient vacuuming
* Easier administration of warm standby servers
* New FILLFACTOR support for tables and indexes
* Monitoring, logging, and performance tuning additions
* More control over creating and dropping objects
* Table inheritance relationships can be defined for and removed from
pre-existing tables
* "COPY TO" can copy the output of an arbitrary "SELECT" statement
* Array improvements, including nulls in arrays
* Aggregate-function improvements, including multiple-input
aggregates and SQL:2003 statistical functions
* Many "contrib/" improvements