Age | Commit message (Collapse) | Author | Files | Lines |
|
* Fix crash in autovacuum
The crash occurs only after vacuuming a whole database for
anti-transaction-wraparound purposes, which means that it occurs
infrequently and is hard to track down.
* 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
* Avoid unnecessary locking of small tables in "VACUUM"
* Ensure that the contents of a holdable cursor don't depend on the
contents of TOAST tables
* Fix uninitialized variables in "contrib/tsearch2"'s get_covers()
function
* 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.
* 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
* 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.
* Update time zone data files to tzdata release 2008i (for DST law
changes in Argentina, Brazil, Mauritius, Syria)
|
|
Bug-fix release, see HISTORY for details.
|
|
* 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.
|
|
on packages that are affected by the switch from the openssl 0.9.7
branch to the 0.9.8 branch. ok jlam@
|
|
This release contains a variety of fixes from 8.1.10, including fixes
for significant security issues.
This is the last 8.1.X release for which the PostgreSQL community will
produce binary packages for Windows. Windows users are encouraged to
move to 8.2.X or later, since there are Windows-specific fixes in 8.2.X
that are impractical to back-port. 8.1.X will continue to be supported
on other platforms.
|
|
* Prevent index corruption when a transaction inserts rows and then
aborts close to the end of a concurrent "VACUUM" on the same table
* Make "CREATE DOMAIN ... DEFAULT NULL" work properly
* Allow the interval data type to accept input consisting only of
milliseconds or microseconds
* 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
* 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 improvements
* 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
|
|
the owner of all installed files is a non-root user. This change
affects most packages that require special users or groups by making
them use the specified unprivileged user and group instead.
(1) Add two new variables PKG_GROUPS_VARS and PKG_USERS_VARS to
unprivileged.mk. These two variables are lists of other bmake
variables that define package-specific users and groups. Packages
that have user-settable variables for users and groups, e.g. apache
and APACHE_{USER,GROUP}, courier-mta and COURIER_{USER,GROUP},
etc., should list these variables in PKG_USERS_VARS and PKG_GROUPS_VARS
so that unprivileged.mk can know to set them to ${UNPRIVILEGED_USER}
and ${UNPRIVILEGED_GROUP}.
(2) Modify packages to use PKG_GROUPS_VARS and PKG_USERS_VARS.
|
|
* Support explicit placement of the temporary-table schema within
search_path, and disable searching it for functions and operators
* "/contrib/tsearch2" crash fixes
* Require "COMMIT PREPARED" to be executed in the same database as
the transaction was prepared in
* Fix potential-data-corruption bug in how "VACUUM FULL" handles
"UPDATE" chains
* Planner fixes, including improving outer join and bitmap scan
selection logic
* Fix PANIC during enlargement of a hash index (bug introduced in
8.1.6)
* Fix POSIX-style timezone specs to follow new USA DST rules
|
|
* Improve handling of getaddrinfo() on AIX
This fixes a problem with starting the statistics collector, among
other things.
* Fix pg_restore to handle a tar-format backup that contains large
objects (blobs) with comments
* Fix "failed to re-find parent key" errors in "VACUUM"
* Clean out "pg_internal.init" cache files during server restart
This avoids a hazard that the cache files might contain stale data
after PITR recovery.
* Fix race condition for truncation of a large relation across a
gigabyte boundary by "VACUUM"
* Fix bug causing needless deadlock errors on row-level locks
* Fix bugs affecting multi-gigabyte hash indexes
* Fix possible deadlock in Windows signal handling
* Fix error when constructing an ARRAY[] made up of multiple empty
elements
* Fix ecpg memory leak during connection
* Fix for Darwin (OS X) compilation
* to_number() and to_char(numeric) are now STABLE, not IMMUTABLE, for
new initdb installs
This is because lc_numeric can potentially change the output of
these functions.
* Improve index usage of regular expressions that use parentheses
This improves psql \d performance also.
* Update timezone database
This affects Australian and Canadian daylight-savings rules in
particular.
|
|
|
|
* Disallow aggregate functions in "UPDATE" commands, except within
sub-SELECTs (Tom)
The behavior of such an aggregate was unpredictable, and in 8.1.X
could cause a crash, so it has been disabled. The SQL standard does
not allow this either.
* Fix core dump when an untyped literal is taken as ANYARRAY
* Fix core dump in duration logging for extended query protocol when
a "COMMIT" or "ROLLBACK" is executed
* Fix mishandling of AFTER triggers when query contains a SQL
function returning multiple rows (Tom)
* Fix "ALTER TABLE ... TYPE" to recheck NOT NULL for USING clause
(Tom)
* Fix string_to_array() to handle overlapping matches for the
separator string
For example, string_to_array('123xx456xxx789', 'xx').
* Fix to_timestamp() for AM/PM formats (Bruce)
* Fix autovacuum's calculation that decides whether "ANALYZE" is
needed (Alvaro)
* Fix corner cases in pattern matching for psql's \d commands
* Fix index-corrupting bugs in /contrib/ltree (Teodor)
* Numerous robustness fixes in ecpg (Joachim Wieland)
* Fix backslash escaping in /contrib/dbmirror
* Minor fixes in /contrib/dblink and /contrib/tsearch2
* Efficiency improvements in hash tables and bitmap index scans (Tom)
* Fix instability of statistics collection on Win32 (Tom, Andrew)
* Fix statement_timeout to use the proper units on Win32 (Bruce)
In previous Win32 8.1.X versions, the delay was off by a factor of
100.
* Fixes for MSVC and Borland C++ compilers (Hiroshi Saito)
* Fixes for AIX and Intel compilers (Tom)
|
|
syntax as specified in pkgsrc/mk/install/bsd.pkginstall.mk:1.47.
|
|
the other postgresql packages do. Fixes build of PL packages.
|
|
|
|
This is an overview of new features in 8.1.0 against 8.0.x. 8.1.3 includes
many bug fixes since 8.1.0. Please read documentation of the detailed changes
and procedure of data migration.
Overview
Major changes in this release:
Improve concurrent access to the shared buffer cache (Tom)
Access to the shared buffer cache was identified as a
significant scalability problem, particularly on multi-CPU
systems. In this release, the way that locking is done in the
buffer manager has been overhauled to reduce lock contention and
improve scalability. The buffer manager has also been changed to
use a "clock sweep" replacement policy.
Allow index scans to use an intermediate in-memory bitmap (Tom)
In previous releases, only a single index could be used to do
lookups on a table. With this feature, if a query has "WHERE
tab.col1 = 4 and tab.col2 = 9", and there is no multicolumn
index on col1 and col2, but there is an index on col1 and
another on col2, it is possible to search both indexes and
combine the results in memory, then do heap fetches for only the
rows matching both the col1 and col2 restrictions. This is very
useful in environments that have a lot of unstructured queries
where it is impossible to create indexes that match all possible
access conditions. Bitmap scans are useful even with a single
index, as they reduce the amount of random access needed; a
bitmap index scan is efficient for retrieving fairly large
fractions of the complete table, whereas plain index scans are
not.
Add two-phase commit (Heikki Linnakangas, Alvaro, Tom)
Two-phase commit allows transactions to be "prepared" on several
computers, and once all computers have successfully prepared
their transactions (none failed), all transactions can be
committed. Even if a machine crashes after a prepare, the
prepared transaction can be committed after the machine is
restarted. New syntax includes "PREPARE TRANSACTION" and
"COMMIT/ROLLBACK PREPARED". A new system view pg_prepared_xacts
has also been added.
Create a new role system that replaces users and groups (Stephen Frost)
Roles are a combination of users and groups. Like users, they
can have login capability, and like groups, a role can have
other roles as members. Roles basically remove the distinction
between users and groups. For example, a role can:
+ Have login capability (optionally)
+ Own objects
+ Hold access permissions for database objects
+ Inherit permissions from other roles it is a member of
Once a user logs into a role, she obtains capabilities of the
login role plus any inherited roles, and can use "SET ROLE" to
switch to other roles she is a member of. This feature is a
generalization of the SQL standard's concept of roles. This
change also replaces pg_shadow and pg_group by new role-capable
catalogs pg_authid and pg_auth_members. The old tables are
redefined as read-only views on the new role tables.
Automatically use indexes for MIN() and MAX() (Tom)
In previous releases, the only way to use an index for MIN() or
MAX() was to rewrite the query as "SELECT col FROM tab ORDER BY
col LIMIT 1". Index usage now happens automatically.
Move /contrib/pg_autovacuum into the main server (Alvaro)
Integrating autovacuum into the server allows it to be
automatically started and stopped in sync with the database
server, and allows autovacuum to be configured from
"postgresql.conf".
Add shared row level locks using SELECT ... FOR SHARE (Alvaro)
While PostgreSQL's MVCC locking allows "SELECT" to never be
blocked by writers and therefore does not need shared row locks
for typical operations, shared locks are useful for applications
that require shared row locking. In particular this reduces the
locking requirements imposed by referential integrity checks.
Add dependencies on shared objects, specifically roles (Alvaro)
This extension of the dependency mechanism prevents roles from
being dropped while there are still database objects they own.
Formerly it was possible to accidentally "orphan" objects by
deleting their owner. While this could be recovered from, it was
messy and unpleasant.
Improve performance for partitioned tables (Simon)
The new constraint_exclusion configuration parameter avoids
lookups on child tables where constraints indicate that no
matching rows exist in the child table.
This allows for a basic type of table partitioning. If child
tables store separate key ranges and this is enforced using
appropriate "CHECK" constraints, the optimizer will skip child
table accesses when the constraint guarantees no matching rows
exist in the child table.
|