* Fix Windows shared-memory allocation code
* 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
* Prevent synchronize_seqscans from changing the results of
scrollable and WITH HOLD cursors
* 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
* Fix LIKE for case where pattern contains %_
* Properly round datetime input like 00:12:57.9999999999999999999999999999
* Fix memory leaks in XML operations
* Fix poor choice of page split point in GiST R-tree operator classes
* Ensure that a "fast shutdown" request will forcibly terminate open
sessions, even if a "smart shutdown" was already in progress
* Avoid performance degradation in bulk inserts into GIN indexes when
the input values are (nearly) in sorted order
* Correctly enforce NOT NULL domain constraints in some contexts in
PL/pgSQL
* Fix portability issues in plperl initialization
* Fix pg_ctl to not go into an infinite loop if "postgresql.conf" is
empty
* Improve pg_dump's efficiency when there are many large objects
* Use SIGUSR1, not SIGQUIT, as the failover signal for pg_standby
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 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.
* Make "DISCARD ALL" release advisory locks, in addition to
everything it already did
This was decided to be the most appropriate behavior. This could
affect existing applications, however.
* Fix whole-index GiST scans to work correctly
This error could cause rows to be lost if a table is clustered on a
GiST index.
* Fix crash of xmlconcat(NULL)
* Fix possible crash in ispell dictionary if high-bit-set characters
are used as flags
This is known to be done by one widely available Norwegian
dictionary, and the same condition may exist in others.
* Fix misordering of pg_dump output for composite types
The most likely problem was for user-defined operator classes to be
dumped after indexes or views that needed them.
* 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 sometimes kept "ALTER TABLE ENABLE/DISABLE RULE"
from being recognized by active sessions
* Fix a problem that made UPDATE RETURNING tableoid return zero
instead of the correct OID
* Allow functions declared as taking ANYARRAY to work on the
pg_statistic columns of that type
This used to work, but was unintentionally broken in 8.3.
* 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.
* Prevent synchronous scan during GIN index build
Because GIN is optimized for inserting tuples in increasing TID
order, choosing to use a synchronous scan could slow the build by a
factor of three or more.
* 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 encoding conversion problems in XML functions when the database
encoding isn't UTF-8
* Fix "contrib/dblink"'s dblink_get_result(text,bool) function
* Fix possible garbage output from "contrib/sslinfo" functions
* Fix incorrect behavior of "contrib/tsearch2" compatibility trigger
when it's fired more than once in a command
* Fix possible mis-signaling in autovacuum
* Support running as a service on Windows 7 beta
* Fix ecpg's handling of varchar structs
* 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 in bytea-to-XML mapping.
* Fix possible crash when deeply nested functions are invoked from a
trigger.
* Improve optimization of "expression" IN ("expression-list") queries.
* 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 Assert failure during rescan of an IS NULL search of a GiST
index.
* 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.
* Force a checkpoint before "CREATE DATABASE" starts to copy files.
* Prevent possible collision of relfilenode numbers when moving a
table to another tablespace with "ALTER SET TABLESPACE".
* Fix incorrect text search 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.
* Make ILIKE compare characters case-insensitively even when they're
escaped.
* Ensure "DISCARD" is handled properly by statement logging.
* Fix incorrect logging of last-completed-transaction time during
PITR recovery.
* Ensure SPI_getvalue and SPI_getbinval behave correctly when the
passed tuple and tuple descriptor have different numbers of columns.
* Mark SessionReplicationRole as PGDLLIMPORT so it can be used by
Slony on Windows.
* Fix small memory leak when using libpq's gsslib parameter.
* Ensure libgssapi is linked into libpq if needed.
* Fix ecpg's parsing of "CREATE ROLE".
* Fix recent breakage of pg_ctl restart.
* Ensure "pg_control" is opened in binary mode.
* 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 corner-case bugs in "VACUUM FULL"
* Fix misbehavior of foreign key checks involving character or bit
columns
* Avoid needless deadlock failures in no-op foreign-key checks
* Fix possible core dump when re-planning a prepared query
* Fix possible failure when re-planning a query that calls an
SPI-using function
* Fix failure in row-wise comparisons involving columns of different
datatypes
* 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 incorrect comparison of tsquery values
* Fix incorrect behavior of LIKE with non-ASCII characters in
single-byte encodings
* Disable xmlvalidate
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++