postgresql-lib
postgresql-client
postgresql-server
postgresql-doc
with postgresql as a meta-package. Major changes from version 7.1.1
include:
Write-ahead Log (WAL) - To maintain database consistency in
case of an operating system crash, previous releases of PostgreSQL
have forced all data modifications to disk before each transaction
commit. With WAL, only one log file must be flushed to disk, greatly
improving performance. If you have been using -F in previous releases
to disable disk flushes, you may want to consider discontinuing its
use.
TOAST - Previous releases had a compiled-in row length limit,
typically 8 - 32 kB. This limit made storage of long text fields
difficult. With TOAST, long rows of any length can be stored with
good performance.
Outer Joins - We now support outer joins. The UNION/NOT IN
workaround for outer joins is no longer required. We use the SQL92
outer join syntax.
Function Manager - The previous C function manager did not
handle NULLs properly, nor did it support 64-bit CPU's (Alpha). The
new function manager does. You can continue using your old custom
functions, but you may want to rewrite them in the future to use the
new function manager call interface.
Complex Queries - A large number of complex queries that were
unsupported in previous releases now work. Many combinations of
views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited
tables now work properly. Inherited tables are now accessed by
default. Subqueries in FROM are now supported.
Migration to 7.1.1
A dump/restore using pg_dump is required for those wishing to migrate
data from any previous release.
Jdbc fixes (Peter)
Large object fix (Tom)
Fix lean in COPY WITH OIDS leak (Tom)
Fix backwards-index-scan (Tom)
Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
Add --enable-syslog to configure (Marc)
Fix abort transaction at backend exit in rare cases (Tom)
Fix for psql \l+ when multi-byte enabled (Tatsuo)
Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
Make vacuum always flush buffers (Tom)
Fix to allow cancel while waiting for a lock (Hiroshi)
Fix for memory aloocation problem in user authentication code (Tom)
Remove bogus use of int4out() (Tom)
Fixes for multiple subqueries in COALESCE or BETWEEN (Tom)
Fix for failure of triggers on heap open in certain cases (Jeroen van Vianen)
Fix for erroneous selectivity of not-equals (Tom)
Fix for erroneous use of strcmp() (Tom)
Fix for bug where storage manager accesses items beyond end of file (Tom)
Fix to include kernel errno message in all smgr elog messages (Tom)
Fix for '.' not in PATH at build time (SL Baur)
Fix for out-of-file-descriptors error (Tom)
Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
Fix for subselect in targetlist of Append node (Tom)
Fix for mergejoin plans (Tom)
Fix TRUNCATE failure on relations with indexes (Tom)
Avoid database-wide restart on write error (Hiroshi)
Fix nodeMaterial to honor chgParam by recomputing its output (Tom)
Fix VACUUM problem with moving chain of update tuples when source and destination of a tuple lie on the same page (Tom)
Fix user.c CommandCounterIncrement (Tom)
Fix for AM/PM boundary problem in to_char() (Karel Zak)
Fix TIME aggregate handling (Tom)
Fix to_char() to avoid coredump on NULL input (Tom)
Buffer fix (Tom)
Fix for inserting/copying longer multibyte strings into char() data types (Tatsuo)
Fix for crash of backend, on abort (Tom)
* Enhance rc.d/pgsql.sh script to accept start/stop/restart.
* Add fixes for alpha from Kevin P. Neal <kpn@neutralgood.org> in PR#10543.
XXX Includes a patch which removes inlining of the alpha's TAS function.
XXX This is apparently some code-gen bug in GCC for alpha.
* Fix many CLUSTER failures (Tom)
* Allow ALTER TABLE RENAME works on indexes (Tom)
* Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
* New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
* Fix the off by one errors in ResultSet from 6.5.3, and more.
* jdbc ResultSet fixes (Joseph Shraibman)
* optimizer tunings (Tom)
* Fix create user for pgaccess
* Fix for UNLISTEN failure
* Reduce COPY IN lock level (Tom)
* Change libpqeasy to use PQconnectdb() style parameters (Bruce)
* Fix pg_dump to handle OID indexes (Tom)
* Fix small memory leak (Tom)
* Solaris fix for createdb/dropdb (Tatsuo)
* Fix for non-blocking connections (Alfred Perlstein)
* Fix improper recovery after RENAME TABLE failures (Tom)
* Copy pg_ident.conf.sample into /lib directory in install (Bruce)
* Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
* Fix too long syslog message (Tatsuo)
* Fix problem with quoted indexes that are too long (Tom)
* JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
* ecpg changes (Michael)
A HUGE number of bug/performance fixes and minor enhancements.
Foreign Keys
Foreign keys are now implemented, with the exception of PARTIAL
MATCH foreign keys. Many users have been asking for this
feature, and we are pleased to offer it.
Optimizer Overhaul
Continuing on work started a year ago, the optimizer has been
overhauled, allowing improved query execution and better
performance with less memory usage.
Updated psql
psql, our interactive terminal monitor, has been updated with a
variety of new features. See the psql manual page for details.
Upcoming Features
In 7.1 or 7.2, we plan to have outer joins, storage for very
long rows, and a write-ahead logging system.
A dump/restore using pg_dump is required for those wishing to migrate
data from any previous release. For those upgrading from 6.5.*, you
can use pg_upgrade to upgrade to this release.
unlibtoolized. Things now install into ${PREFIX} instead of
${PREFIX}/${PGSQL_USER} to match hier(7) expectations. The Tcl and Tk
interfaces are now split out into separate packages.
This closes the following PRs: 7384, 8747, 8789, 9272, 9461.
doesn't use it. Later tonight or tomorrow morning, I will commit a jdbc-postgresql
package which will share DISTFILE and patch goo with this package.
All this may eventually be replaced if the client stuff is factored out of the
postgresql package, but that's not me.
from the main PostgreSQL distribution, and must be installed separately
(databases/pgaccess). Relevant changes from 6.5.1:
subselect+CASE fixes(Tom)
Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren
Sefcik)
Fixes for CASE in WHERE join clauses(Tom)
Fix BTScan abort(Tom)
Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas)
Improve it so that it checks for multi-column constraints(Tom)
Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
Allow BSD yacc and bison to compile pl code(Bruce)
Fix SET NAMES
int8 fixes(Thomas)
Fix vacuum's memory consumption(Hiroshi,Tatsuo)
Reduce the total memory consumption of vacuum(Tom)
Fix for timestamp(datetime)
Rule deparsing bugfixes(Tom)
Fix quoting problems in mkMakefile.tcldefs.sh.in and
mkMakefile.tkdefs.sh.in(Tom)
This is to re-use space on index pages freed by vacuum(Vadim)
document -x for pg_dump(Bruce)
Fix for unary operators in rule deparser(Tom)
Comment out FileUnlink of excess segments during mdtruncate()(Tom)
Irix linking fix from Yu Cao <yucao@falcon.kla-tencor.com>
Repair logic error in LIKE: should not return LIKE_ABORT
when reach end of pattern before end of text(Tom)
Repair incorrect cleanup of heap memory allocation during transaction
abort(Tom)
removed, but this should still function correctly on a.out systems. This
package was originally submitted by D'Arcy J.M. Cain, but with major
overhauling by me.
Closes PR#7865 and relevant part of PR#8299.
Major changes from version 6.4.2:
Multi-version concurrency control(MVCC)
This removes our old table-level locking, and replaces it with a
locking system that is superior to most commercial database
systems. In a traditional system, each row that is modified is
locked until committed, preventing reads by other users. MVCC
uses the natural multi-version nature of PostgreSQL to allow
readers to continue reading consistent data during writer
activity. Writers continue to use the compact pg_log transaction
system. This is all performed without having to allocate a lock
for every row like traditional database systems. So, basically,
we no longer are restricted by simple table-level locking; we
have something better than row-level locking.
Hot backups from pg_dump
pg_dump takes advantage of the new MVCC features to give a
consistant database dump/backup while the database stays online
and available for queries.
Numeric data type
We now have a true numeric data type, with user-specified
precision.
Temporary tables
Temporary tables are guaranteed to have unique names within a
database session, and are destroyed on session exit.
New SQL features
We now have CASE, INTERSECT, and EXCEPT statement support. We
have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT
... FOR UPDATE, and an improved LOCK TABLE command.
Speedups
We continue to speed up PostgreSQL, thanks to the variety of
talents within our team. We have sped up memory allocation,
optimization, table joins, and row transfer routines.
Ports
We continue to expand our port list, this time including
WinNT/ix86 and NetBSD/arm32.
Interfaces
Most interfaces have new versions, and existing functionality
has been improved.
Documentation
New and updated material is present throughout the
documentation. New FAQs have been contributed for SGI and AIX
platforms. The Tutorial has introductory information on SQL from
Stefan Simkovics. For the User's Guide, there are reference pages
covering the postmaster and more utility programs, and a new
appendix contains details on date/time behavior. The
Administrator's Guide has a new chapter on troubleshooting from
Tom Lane. And the Programmer's Guide has a description of query
processing, also from Stefan, and details on obtaining the
Postgres source tree via anonymous CVS and CVSup.