Skip to content
Snippets Groups Projects
HISTORY 119 KiB
Newer Older
  ------------------------------------------------------------------------
                                Release 7.1.1
  ------------------------------------------------------------------------


Release 7.1.1  (2001-05-05)

This has a variety of fixes from 7.1.

Migration to v7.1.1

A dump/restore is not required for those running 7.1.

Changes
-------
Fix for numeric MODULO operator (Tom)
pg_dump fixes (Philip)
pg_dump can dump 7.0 databases (Philip)
readline 4.2 fixes (Peter E)
JOIN fixes (Tom)
AIX, MSWIN, VAX,N32K fixes (Tom)
Multibytes fixes (Tom)
Unicode fixes (Tatsuo)
Optimizer improvements (Tom)
Fix for whole tuples in functions (Tom)
Fix for pg_ctl and option strings with spaces (Peter E)
ODBC fixes (Hiroshi)
EXTRACT can now take string argument (Thomas)
Python fixes (Darcy)



  ------------------------------------------------------------------------
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
Release 7.1  (2001-04-13)
Bruce Momjian's avatar
Bruce Momjian committed

This release focuses on removing limitations that have existed in the
PostgreSQL code for many years.

Major changes in this release:

        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
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed
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
Bruce Momjian's avatar
Bruce Momjian committed

   A dump/restore using pg_dump is required for those wishing to migrate
   data from any previous release.



Bug Fixes
---------
Many multi-byte/Unicode/locale fixes (Tatsuo and others)
More reliable ALTER TABLE RENAME (Tom)
Kerberos V fixes (David Wragg)
Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom)
Prompt username/password on standard error (Bruce)
Large objects inv_read/inv_write fixes (Tom)
Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel, 
    Daniel Baldoni)
Prevent query expressions from leaking memory (Tom)
Allow UPDATE of arrays elements (Tom)
Wake up lock waiters during cancel (Hiroshi)
Fix rare cursor crash when using hash join (Tom)
Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
Fix PL/perl (Alex Kapranoff)
Disallow LOCK on views (Mark Hollomon)
Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
Bruce Momjian's avatar
Bruce Momjian committed
Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo)
Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom)
Fix rare failure with TRUNCATE command (Tom)
Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views, 
    DISTINCT, ORDER BY, SELECT...INTO (Tom)
Fix parser failures during aborted transactions (Tom)
Allow temporary relations to properly clean up indexes (Bruce)
Fix VACUUM problem with moving rows in same page (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Modify pg_dump to better handle user-defined items in template1 (Philip)
Bruce Momjian's avatar
Bruce Momjian committed
Allow LIMIT in VIEW (Tom)
Require cursor FETCH to honor LIMIT (Tom)
Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
Allow ORDER BY, LIMIT in sub-selects (Tom)
Allow UNION in CREATE RULE (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Store initdb collation in pg_control so collation cannot be changed (Tom)
Fix INSERT...SELECT with rules (Tom)
Fix FOR UPDATE inside views and subselects (Tom)
Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
Fix lpad() and rpad() to handle length less than input string (Tom)
Fix use of NOTIFY in some rules (Tom)
Overhaul btree code (Tom)
Fix NOT NULL use in Pl/PgSQL variables (Tom)
Overhaul GIST code (Oleg)
Fix CLUSTER to preserve constraints and column default (Tom)
Improved deadlock detection handling (Tom)
Allow multiple SERIAL columns in a table (Tom)
Prevent occasional index corruption (Vadim)
Bruce Momjian's avatar
Bruce Momjian committed

Enhancements
------------
Add OUTER JOINs (Tom)
Function manager overhaul (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Allow ALTER TABLE RENAME on indexes (Tom)
Improve CLUSTER (Tom)
Improve ps status display for more platforms (Peter E, Marc)
Improve CREATE FUNCTION failure message (Ross)
Bruce Momjian's avatar
Bruce Momjian committed
JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber,
    Gunnar)
Grand Unified Configuration scheme/GUC.  Many options can now be set in 
    data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E)
Improved handling of file descriptor cache (Tom)
New warning code about auto-created table alias entries (Bruce)
Overhaul initdb process (Tom, Peter E)
Overhaul of inherited tables; inherited tables now accessed by default;
   new ONLY keyword prevents it (Chris Bitmead, Tom)
ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs, 
    Michael Fork)
Allow renaming of temp tables (Tom)
Overhaul memory manager contexts (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Overhaul pg_dump (Philip Warner)
Bruce Momjian's avatar
Bruce Momjian committed
Allow pg_hba.conf secondary password file to specify only username (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
New memory leak checker (Karel)
Bruce Momjian's avatar
Bruce Momjian committed
New SET SESSION CHARACTERISTICS (Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
Allow nested block comments (Thomas)
Add WITHOUT TIME ZONE type qualifier (Thomas)
New ALTER TABLE ADD CONSTRAINT (Stephan)
Use NUMERIC accumulators for INTEGER aggregates (Tom)
Overhaul aggregate code (Tom)
New VARIANCE and STDDEV() aggregates
Improve dependency ordering of pg_dump (Philip)
New pg_restore command (Philip)
New pg_dump tar output option (Philip)
New pg_dump of large objects  (Philip)
New ESCAPE option to LIKE (Thomas)
New case-insensitive LIKE - ILIKE (Thomas)
Allow functional indexes to use binary-compatible type (Tom)
Allow SQL functions to be used in more contexts (Tom)
New pg_config utility (Peter E)
New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements
    (Jan)
New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan)
New quote_identifiers() and quote_literal() functions (Jan)
New ALTER TABLE table OWNER TO user command (Mark Hollomon)
Bruce Momjian's avatar
Bruce Momjian committed
Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
Update PyGreSQL to version 3.1 (D'Arcy)
Store tables as files named by OID (Vadim)
New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
Require DROP VIEW to remove views, no DROP TABLE (Mark)
Allow DROP VIEW view1, view2 (Mark)
Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
Bruce Momjian's avatar
Bruce Momjian committed
New /contrib/pgcrypto hashing functions (Marko Kreen)
Bruce Momjian's avatar
Bruce Momjian committed
New pg_dumpall --globals-only option (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
New AT TIME ZONE syntax (Thomas)
Allow location of Unix domain socket to be configurable (David J. MacKenzie)
Allow postmaster to listen on a specific IP address (David J. MacKenzie)
Allow socket path name to be specified in hostname by using leading slash
    (David J. MacKenzie)
Allow CREATE DATABASE to specify template database (Tom)
New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas)
New /contrib/rserv replication toolkit (Vadim)
New file format for COPY BINARY (Tom)
New /contrib/oid2name to map numeric files to table names (B Palmer)
New "idle in transaction" ps status message (Marc)
Update to pgaccess 0.98.7 (Constantin Teodorescu)
pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
Add rudimentary dependency checking to pg_dump (Philip)
Bruce Momjian's avatar
Bruce Momjian committed

Types
-----
Fix INET/CIDR type ordering and add new functions (Tom)
Make OID behave as an unsigned type (Tom)
Allow BIGINT as synonym for INT8 (Peter E)
New int2 and int8 comparison operators (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
New GIST seg/cube examples (Gene Selkov)
Improved round(numeric) handling (Tom)
Fix CIDR output formatting (Tom)
New CIDR abbrev() function (Tom)
Bruce Momjian's avatar
Bruce Momjian committed

Performance
-----------
Write-Ahead Log (WAL) to provide crash recovery with less performance 
    overhead (Vadim)
ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
Reduced file seeks (Denis Perchine)
Improve BTREE code for duplicate keys (Tom)
Store all large objects in a single table (Denis Perchine, Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Improve memory allocation performance (Karel, Tom)

Source Code
-----------
New function manager call conventions (Tom)
SGI portability fixes (David Kaelbling)
Bruce Momjian's avatar
Bruce Momjian committed
New configure --enable-syslog option (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
New BSDI README (Bruce)
configure script moved to top level, not /src (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Makefile/configuration/compilation overhaul (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
New configure --with-python option (Peter E)
Solaris cleanups (Peter E)
Overhaul /contrib Makefiles (Karel)
New OpenSSL configuration option (Magnus, Peter E)
AIX fixes (Andreas)
QNX fixes (Maurizio)
Bruce Momjian's avatar
Bruce Momjian committed
New heap_open(), heap_openr() API (Tom)
Remove colon and semi-colon operators (Thomas)
New pg_class.relkind value for views (Mark Hollomon)
Bruce Momjian's avatar
Bruce Momjian committed
Rename ichar() to chr() (Karel)
New documentation for btrim(), ascii(), chr(), repeat() (Karel)
Fixes for NT/Cygwin (Pete Forman)
AIX port fixes (Andreas)
New BeOS port (David Reid, Cyril Velter)
Add proofreader's changes to docs (Addison-Wesley, Bruce)
New Alpha spinlock code (Adriaan Joubert, Compaq)
Unixware port overhaul (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
New Darwin/Mac OSX port (Peter Bierman, Bruce Hartzler)
Bruce Momjian's avatar
Bruce Momjian committed
New FreeBSD Alpha port (Alfred)
Overhaul shared memory segments (Tom)
Add IBM S/390 support (Neale Ferguson)
Bruce Momjian's avatar
Bruce Momjian committed
Moved macmanuf to /contrib (Larry Rosenman)
Syslog improvements (Larry Rosenman)
Bruce Momjian's avatar
Bruce Momjian committed
New template0 database that contains no user additions (Tom)
New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
Bruce Momjian's avatar
Bruce Momjian committed
Allow NetBSD's libedit instead of readline (Peter)
Improved assembly language source code format (Bruce)
New contrib/pg_logger
New --template option to createdb
New contrib/pg_control utility (Oliver)
New FreeBSD tools ipc_check, start-scripts/freebsd
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------

Bruce Momjian's avatar
Bruce Momjian committed

Release 7.0.3  (2000-11-11)

This has a variety of fixes from 7.0.2.

Migration to v7.0.3

A dump/restore is not required for those running 7.0.*.

Changes
-------
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)
  ------------------------------------------------------------------------
  ------------------------------------------------------------------------
          

Release 7.0.2  (2000-06-05)
Bruce Momjian's avatar
Bruce Momjian committed

This is a repackaging of 7.0.1 with added documentation.

Migration to v7.0.2

A dump/restore is not required for those running 7.*.

Changes
-------
Added documentation to tarball.


Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
          

Release 7.0.1  (2000-06-01)
Bruce Momjian's avatar
Bruce Momjian committed

This is basically a cleanup release for 7.0.1

Migration to v7.0.1

A dump/restore is not required for those running 7.0.

Changes
-------
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
IRIX fixes (David Kaelbling)
QNX fixes (Andreas Kardos)
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)
Bruce Momjian's avatar
Bruce Momjian committed
Solaris fix for createdb/dropdb (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
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)
Bruce Momjian's avatar
Bruce Momjian committed
Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya)
Fix too long syslog message (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
Fix problem with quoted indexes that are too long (Tom)
JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu)
ecpg changes (Michael)
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------

Release 7.0  (2000-05-08)
   This release shows the continued growth of PostgreSQL. There are more
   changes in 7.0 than in any previous release. Don't be concerned this
   is a dot-zero release. We do our best to put out only solid releases,
   and this one is no exception.
   
   
   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.
          
Migration to v7.0
   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.
   
Bruce Momjian's avatar
Bruce Momjian committed

Bug Fixes
---------
Prevent function calls with more than maximum number of arguments (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Improve CASE construct (Tom)
Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
Fix GROUP BY scan bug (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Improvements in SQL grammar processing (Tom)
Fix for views involved in INSERT ... SELECT ... (Tom)
Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
Fix for subselects in INSERT ... SELECT (Tom)
Prevent INSERT ... SELECT ... ORDER BY (Tom)
Fixes for relations greater than 2GB, including vacuum
Improve communication of system table changes to other running backends (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Improve communication of user table modifications to other running backends (Tom)
Fix handling of temp tables in complex situations (Bruce, Tom)
Allow table locking when tables opened, improving concurrent reliability (Tom)
Properly quote sequence names in pg_dump (Ross J. Reedstrom)
Prevent DROP DATABASE while others accessing
Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
Fix pg_upgrade so it works for MVCC(Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Fix for "f1 datetime DEFAULT 'now'"  (Tom)
Fix problems with CURRENT_DATE used in DEFAULT (Tom)
Allow comment-only lines, and ;;; lines too. (Tom)
Improve recovery after failed disk writes, disk full (Hiroshi)
Fix cases where table is mentioned in FROM but not joined (Tom)
Allow HAVING clause without aggregate functions (Tom)
Fix for "--" comment and no trailing newline, as seen in Perl
Improve pg_dump failure  error reports (Bruce)
Allow sorts and hashes to exceed 2GB file sizes (Tom)
Fix for pg_dump dumping of inherited rules (Tom)
Fix for NULL handling comparisons (Tom)
Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
Fix for dbname with dash
Prevent DROP INDEX from interfering with other backends (Tom)
Fix file descriptor leak in verify_password()
Fix for "Unable to identify an operator =$" problem
Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
Fix for recursive exit call (Massimo)
Fix for extra-long timezones (Jeroen van Vianen)
Make pg_dump preserve primary key information (Peter E)
Prevent databases with single quotes (Peter E)
Prevent DROP DATABASE inside  transaction (Peter E)
ecpg memory leak fixes (Stephen Birch)
Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
Y2K timestamp fix (Massimo)
Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
Fix for views with tables/columns containing spaces  (Tom)
Prevent permissions on indexes (Peter E)
Fix for spinlock stuck problem when error is generated (Hiroshi)
Fix ipcclean on Linux
Fix handling of NULL constraint conditions (Tom)
Fix memory leak in odbc driver (Nick Gorham)
Fix for permission check on UNION tables (Tom)
Fix to allow SELECT 'a' LIKE 'a' (Tom)
Fix for SELECT 1 + NULL (Tom)
Fixes to CHAR
Fix log() on numeric type (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Deprecate ':' and ';' operators
Allow vacuum of temporary tables
Disallow inherited columns with the same name as new columns
Recover or force failure when disk space is exhausted(Hiroshi)
Fix INSERT INTO ... SELECT with AS columns matching result columns
Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns(Tom)
Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT(Tom)
Fix UNION with LIMIT
Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
Fix CREATE TABLE test(col char(2) DEFAULT user)
Fix mismatched types in CREATE TABLE ... DEFAULT
Fix SELECT * FROM pg_class where oid in (0,-1)
Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
Prevent user who can create databases can modifying pg_database table(Peter E)
Fix btree to give a useful elog when key > 1/2 (page - overhead)(Tom)
Fix INSERT of 0.0 into DECIMAL(4,4) field(Tom)

Enhancements
------------
New CLI interface include file sqlcli.h, based on SQL3/SQL98
Remove all limits on query length, row length limit still exists (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Update jdbc protocol to 2.0 (<ulink url="mailto:jens@jens.de">Jens Glaser</ulink>)
Add TRUNCATE command to quickly truncate relation (Mike Mascari)
Fix to give super user and createdb user proper update catalog rights (Peter E)
Allow ecpg bool variables to have NULL values (Christof)
Issue ecpg error if NULL value is returned to variable with no NULL
indicator (Christof)
Allow ^C to cancel COPY command (Massimo)
Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
Bruce Momjian's avatar
Bruce Momjian committed
Function name overloading for dynamically-loaded C functions (Frankpitt)
Add CmdTuples() to libpq++(Vince)
New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
Bruce Momjian's avatar
Bruce Momjian committed
Allow CREATE FUNCTION/WITH clause to be used for all language types
configure --enable-debug adds -g (Peter E)
configure --disable-debug removes -g (Peter E)
Allow more complex default expressions (Tom)
First real FOREIGN KEY constraint trigger functionality (Jan)
Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
Bruce Momjian's avatar
Bruce Momjian committed
Add FOREIGN KEY ... MATCH &lt;unspecified&gt; referential actions (Don Baccus)
Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
Change pgeasy connectdb() parameter ordering (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
Add DEC and SESSION_USER as reserved words (Thomas)
Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Add Oracle's COMMENT ON command (<ulink url="mailto:mascarim@yahoo">Mike Mascari</ulink>)
libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
Make USING in COPY optional (Bruce)
Allow subselects in the target list (Tom)
Allow subselects on the left side of comparison operators (Tom)
New parallel regression test (Jan)
Change backend-side COPY to write files with permissions 644 not 666 (Tom)
Force permissions on PGDATA directory to be secure, even if it exists (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Added psql LASTOID variable to return last inserted oid (Peter E)
Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom)
Add permissions check so only Postgres superuser or table owner can
vacuum (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
New libpq functions to allow asynchronous connections: PQconnectStart(), 
   PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(), 
   PQsetenvPoll(), PQsetenvAbort (Ewan Mellor)
New libpq PQsetenv() function (Ewan Mellor)
create/alter user extension (Peter E)
New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
New scripts for create/drop user/db (Peter E)
Major psql overhaul(Peter E)
Add const to libpq interface(Peter E)
New libpq function PQoidValue (Peter E)
Show specific non-aggregate causing problem with GROUP BY (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Make changes to pg_shadow recreate pg_pwd file (Peter E)
Add aggregate(DISTINCT ...) (Tom)
Allow flag to control COPY input/output of NULLs (Peter E)
Make postgres user have a password by default (Peter E)
Add CREATE/ALTER/DROP GROUP (Peter E)
All administration scripts now support --long options (Peter E, Karel)
Bruce Momjian's avatar
Bruce Momjian committed
Vacuumdb script now supports --all option (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF 
	and EXEC SQL ENDIF directives
Add pg_ctl script to control backend start-up (Tatsuo)
Add postmaster.opts.default file to store start-up flags (Tatsuo)
Allow --with-mb=SQL_ASCII
Increase maximum number of index keys to 16 (Bruce)
Increase maximum number of function arguments to 16 (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
Allow configuration of maximum number of index keys and arguments (Bruce)
Allow unprivileged users to change their passwords (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Password authentication enabled; required for new users (Peter E)
Disallow dropping a user who owns a database (Peter E)
Bruce Momjian's avatar
Bruce Momjian committed
Change initdb option --with-mb to --enable-multibyte
Add option for initdb to prompts for superuser password (Peter E)
Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
Libpq non-blocking mode (Alfred Perlstein)
Improve conversion of types in casts that don't specify a length
New plperl internal programming language (Mark Hollomon)
Allow COPY IN to read file that do not end with a newline (Tom)
Indicate when long identifiers are truncated (Tom)
Allow aggregates to use type equivalency (Peter E)
Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number()
Bruce Momjian's avatar
Bruce Momjian committed
	conversion functions (Karel Zak &lt;zakkr@zf.jcu.cz&gt;)
Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom)
Add NUMERIC and int8 types to ODBC
Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
Enable backward sequential scan even after reaching EOF (Hiroshi)
Bruce Momjian's avatar
Bruce Momjian committed
Add btree indexing of boolean values, &gt;= and &lt;= (Don Baccus)
Print current line number when COPY FROM fails (Massimo)
Recognize special case of POSIX time zone: "GMT+8" and "GMT-8" (Thomas)
Add DEC as synonym for "DECIMAL" (Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
Implement column aliases (aka correlation names) and join syntax (Thomas)
Allow queries like SELECT a FROM t1 tx (a) (Thomas)
Allow queries like SELECT * FROM t1 NATURAL JOIN t2 (Thomas)
Bruce Momjian's avatar
Bruce Momjian committed
Make INTERVAL reserved word allowed as a column identifier (Thomas)
Implement REINDEX command (Hiroshi)
Accept ALL in aggregate function SUM(ALL col) (Tom)
Prevent GROUP BY from using column aliases (Tom)
New psql \encoding option (Tatsuo)
Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
Allow negation of a negative number in all cases
Bruce Momjian's avatar
Bruce Momjian committed
Add ecpg descriptors (Christof, Michael)
Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
Allow casts with length, like foo::char(8)
Bruce Momjian's avatar
Bruce Momjian committed
New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
Add support for SJIS user defined characters (Tatsuo)
Bruce Momjian's avatar
Bruce Momjian committed
Larger views/rules supported
Make libpq's PQconndefaults() thread-safe (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Disable // as comment to be ANSI conforming, should use -- (Tom)
Allow column aliases on views CREATE VIEW name (collist)
Fixes for views with subqueries (Tom)
Allow UPDATE table SET fld = (SELECT ...) (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
SET command options no longer require quotes
Update pgaccess to 0.98.6
Bruce Momjian's avatar
Bruce Momjian committed
New SET SEED command
New pg_options.sample file
New SET FSYNC command (Massimo)
Allow pg_descriptions when creating tables
Allow pg_descriptions when creating types, columns, and functions
Allow psql \copy to allow delimiters(Peter E)
Allow psql to print nulls as distinct from "" [null](Peter E)
Bruce Momjian's avatar
Bruce Momjian committed

Types
-----
Many array fixes (Tom)
Allow bare column names to be subscripted as arrays (Tom)
Improve type casting of int and float constants (Tom)
Cleanups for int8 inputs, range checking, and type conversion (Tom)
Fix for SELECT timespan('21:11:26'::time) (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 
	(Oleg Sharoiko)
Bruce Momjian's avatar
Bruce Momjian committed
Add btree index on NUMERIC(Jan)
Bruce Momjian's avatar
Bruce Momjian committed
Perl fix for large objects containing NUL characters (Douglas Thomson) 
Bruce Momjian's avatar
Bruce Momjian committed
ODBC fix for for large objects (free)
Fix indexing of cidr data type
Fix for Ethernet MAC addresses (macaddr type) comparisons
Fix for date/time types when overflows happened in computations (Tom)
Allow array on int8 (Peter E)
Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
Allow NUMERIC arrays
Fix bugs in NUMERIC ceil() and floor() functions (Tom)
Make char_length()/octet_length including trailing blanks (Tom)
Made abstime/reltime use int4 instead of time_t (Peter E)
New lztext data type for compressed text fields
Revise code to handle coercion of int and float constants (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
New C-routines to implement a BIT and BIT VARYING type in /contrib 
	(Adriaan Joubert)
Bruce Momjian's avatar
Bruce Momjian committed
NUMERIC now accepts scientific notation (Tom)
NUMERIC to int4 rounds (Tom)
Convert float4/8 to NUMERIC properly (Tom)
Allow type conversion with NUMERIC (Thomas)
Make ISO date style (2000-02-16 09:33) the default (Thomas)
Add NATIONAL CHAR [ VARYING ]
Allow NUMERIC round and trunc to accept negative scales (Tom)
New TIME WITH TIME ZONE type (Thomas)
Add MAX()/MIN() on time type (Thomas)
Add abs(), mod(), fac() for int8 (Thomas)
Add round(), sqrt(), cbrt(), pow()
Rename NUMERIC power() to pow()
Improved TRANSLATE() function
Allow X=-Y operators  (Tom)
Add exp() and ln() as NUMERIC types
Allow SELECT float8(COUNT(*)) / (SELECT COUNT(*) FROM int4_tbl) FROM int4_tbl
Bruce Momjian's avatar
Bruce Momjian committed
	GROUP BY f1; (Tom)
Allow LOCALE to use indexes in regular expression searches(Tom)
Allow creation of functional indexes to use default types
Bruce Momjian's avatar
Bruce Momjian committed

Performance
-----------
Prevent exponential space consumption with many AND's and OR's (Tom)
Collect attribute selectivity values for system columns (Tom)
Reduce memory usage of aggregates (Tom)
Fix for LIKE optimization to use indexes with multi-byte encodings (Tom)
Fix r-tree index optimizer selectivity (Thomas)
Improve optimizer selectivity computations and functions (Tom)
Optimize btree searching for cases where many equal keys exist (Tom)
Enable fast LIKE index processing only if index present (Tom)
Re-use free space on index pages with duplicates (Tom)
Improve hash join processing (Tom)
Prevent descending sort if result is already sorted(Hiroshi)
Allow commuting of index scan query qualifications (Tom)
Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
Allocate large memory requests in fix-sized chunks for performance (Tom)
Fix vacuum's performance by reducing memory allocation requests (Tom)
Implement constant-expression simplification (Bernard Frankpitt, Tom)
Allow more than first column to be used to determine start of index scan
   (Hiroshi)
Prevent quadruple use of disk space when doing internal sorting (Tom)
Faster sorting by calling fewer functions (Tom)
Create system indexes to match all system caches (Bruce, Hiroshi)
Make system caches use system indexes(Bruce)
Make all system indexes unique(Bruce)
Improve pg_statistics management for VACUUM speed improvement (Tom)
Flush backend cache less frequently (Tom, Hiroshi)
COPY now reuses previous memory allocation, improving performance (Tom)
Improve optimization cost estimation (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Improve optimizer estimate of range queries x &gt; lowbound AND x &lt; highbound (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Use DNF instead of CNF where appropriate (Tom, Taral)
Further cleanup for OR-of-AND WHERE-clauses (Tom)
Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
Smarter optimizer computations for random index page access (Tom)
New SET variable to control optimizer costs (Tom)
Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
Reduce optimizer internal housekeeping of join paths for speedup (Tom)
Major subquery speedup (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Fewer fsync writes when fsync is not disabled(Tom)
Improved LIKE optimizer estimates(Tom)
Prevent fsync in SELECT-only queries(Vadim)
Make index creation use psort code, because it is now faster(Tom)
Allow creation of sort temp tables > 1 Gig

Source Tree Changes
-------------------
Fix for linux PPC compile
New generic expression-tree-walker subroutine (Tom)
Change form() to varargform() to prevent portability problems.
Bruce Momjian's avatar
Bruce Momjian committed
Improved range checking for large integers on Alphas
Clean up #include in /include directory (Bruce)
Add scripts for checking includes (Bruce)
Remove un-needed #include's from *.c files (Bruce)
Bruce Momjian's avatar
Bruce Momjian committed
Change #include's to use &lt;&gt; and "" as appropriate (Bruce)
Enable WIN32 compilation of libpq
Bruce Momjian's avatar
Bruce Momjian committed
Alpha spinlock fix from <ulink url="mailto:gatgul@voicenet.com">Uncle George</ulink>
Overhaul of optimizer data structures (Tom)
Fix to cygipc library (Yutaka Tanida)
Allow pgsql to work on newer Cygwin snapshots(Dan)
New catalog version number (Tom)
Add Linux ARM.
Rename heap_replace to heap_update
Bruce Momjian's avatar
Bruce Momjian committed
Update for QNX (Dr. Andreas Kardos)
New platform-specific regression handling (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
Rename oid8 -&gt; oidvector and int28 -&gt; int2vector (Bruce)
Included all yacc and lex files into the distribution (Peter E.)
Remove lextest, no longer needed (Peter E)
Fix for libpq and psql on Win32 (Magnus)
Internally change datetime and timespan into timestamp and interval (Thomas)
Fix for plpgsql on BSDI
Bruce Momjian's avatar
Bruce Momjian committed
Add SQL_ASCII test case to the regression test (Tatsuo)
configure --with-mb now deprecated (Tatsuo)
NT fixes
Bruce Momjian's avatar
Bruce Momjian committed
NetBSD fixes <ulink url="mailto:lamj@stat.cmu.edu">Johnny C. Lam</ulink>
Fixes for Alpha compiles
New multibyte encodings
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------

Release 6.5.3  (1999-10-13)
Bruce Momjian's avatar
Bruce Momjian committed
This is basically a cleanup release for 6.5.2. We have added a new pgaccess
that was missing in 6.5.2, and installed an NT-specific fix.
Bruce Momjian's avatar
Bruce Momjian committed
A dump/restore is not required for those running 6.5.*.
Bruce Momjian's avatar
Bruce Momjian committed
Changes
-------
Bruce Momjian's avatar
Bruce Momjian committed
Updated version of pgaccess 0.98
NT-specific patch
Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------

Release 6.5.2  (1999-09-15)
Bruce Momjian's avatar
Bruce Momjian committed
This is basically a cleanup release for 6.5.1. We have fixed a variety of
problems reported by 6.5.1 users.
Bruce Momjian's avatar
Bruce Momjian committed
A dump/restore is not required for those running 6.5.*.
Bruce Momjian's avatar
Bruce Momjian committed
Changes
-------
Bruce Momjian's avatar
Bruce Momjian committed
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(Thomas)
Fix for Win32 making problem with MB enabled(Hiroki Kataoka)
Allow BSD yacc and bison to compile pl code(Bruce)
Fix SET NAMES working
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)
Updated version of pgaccess 0.98

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------

Release 6.5.1  (1999-07-15)
Marc G. Fournier's avatar
 
Marc G. Fournier committed

Bruce Momjian's avatar
Bruce Momjian committed
This is basically a cleanup release for 6.5. We have fixed a variety of
problems reported by 6.5 users.
Marc G. Fournier's avatar
 
Marc G. Fournier committed

Migration to v6.5.1

Bruce Momjian's avatar
Bruce Momjian committed
A dump/restore is not required for those running 6.5.
Marc G. Fournier's avatar
 
Marc G. Fournier committed

Bruce Momjian's avatar
Bruce Momjian committed
Changes
-------
Bruce Momjian's avatar
Bruce Momjian committed
Add NT README file
Portability fixes for linux_ppc, Irix, linux_alpha, OpenBSD, alpha
Remove QUERY_LIMIT, use SELECT...LIMIT
Fix for EXPLAIN on inheritance(Tom)
Patch to allow vacuum on multi-segment tables(Hiroshi)
R-Tree optimizer selectivity fix(Tom)
ACL file descriptor leak fix(Atsushi Ogawa)
New expresssion subtree code(Tom)
Avoid disk writes for read-only transactions(Vadim)
Fix for removal of temp tables if last transaction was aborted(Bruce)
Fix to prevent too large tuple from being created(Bruce)
plpgsql fixes
Allow port numbers 32k - 64k(Bruce)
Add ^ precidence(Bruce)
Rename sort files called pg_temp to pg_sorttemp(Bruce)
Fix for microseconds in time values(Tom)
Tutorial source cleanup
New linux_m68k port
Fix for sorting of NULL's in some cases(Tom)
Shared library dependencies fixed (Tom)
Fixed glitches affecting GROUP BY in subselects(Tom)
Fix some compiler warnings (Tomoaki Nishiyama)
Add Win1250 (Czech) support (Pavel Behal)

Bruce Momjian's avatar
Bruce Momjian committed

Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Bruce Momjian's avatar
Bruce Momjian committed
  ------------------------------------------------------------------------
Marc G. Fournier's avatar
 
Marc G. Fournier committed


Release 6.5  (1999-06-09)
Bruce Momjian's avatar
Bruce Momjian committed
This release marks a major step in the development team's mastery of the
source code we inherited from Berkeley. You will see we are now easily
adding major features, thanks to the increasing size and experience of our
world-wide development team.

Here is a brief summary of the more notable changes:

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.
Bruce Momjian's avatar
Bruce Momjian committed
A dump/restore using pg_dump is required for those wishing to migrate data
from any previous release of Postgres. pg_upgrade can not be used to upgrade
to this release because the on-disk structure of the tables has changed
compared to previous releases.

The new Multi-Version Concurrency Control (MVCC) features can give somewhat
different behaviors in multi-user environments. Read and understand the
following section to ensure that your existing applications will give you
the behavior you need.

Multi-Version Concurrency Control

Because readers in 6.5 don't lock data, regardless of transaction isolation
level, data read by one transaction can be overwritten by another. In other
words, if a row is returned by SELECT it doesn't mean that this row really
exists at the time it is returned (i.e. sometime after the statement or
transaction began) nor that the row is protected from being deleted or
updated by concurrent transactions before the current transaction does a
commit or rollback.

To ensure the actual existence of a row and protect it against concurrent
updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE
statement. This should be taken into account when porting applications from
previous releases of Postgres and other environments.

Keep the above in mind if you are using contrib/refint.* triggers for
referential integrity. Additional technics are required now. One way is to
use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction
is going to update/delete a primary key and use LOCK parent_table IN SHARE
MODE command if a transaction is going to update/insert a foreign key.

     Note: Note that if you run a transaction in SERIALIZABLE mode then
     you must execute the LOCK commands above before execution of any
     DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
     transaction.

These inconveniences will disappear in the future when the ability to read
dirty (uncommitted) data (regardless of isolation level) and true
referential integrity will be implemented.
Bruce Momjian's avatar
Bruce Momjian committed
Bug Fixes
---------
Fix text<->float8 and text<->float4 conversion functions(Thomas)
Fix for creating tables with mixed-case constraints(Billy)
Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
Fix bug in pg_dump -z
Memory overrun cleanups(Tatsuo)
Fix for lo_import crash(Tatsuo)
Adjust handling of data type names to suppress double quotes(Thomas)
Use type coersion for matching columns and DEFAULT(Thomas)
Fix deadlock so it only checks once after one second of sleep(Bruce)
Fixes for aggregates and PL/pgsql(Hiroshi)
Fix for subquery crash(Vadim)
Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
Fix for pg_dump -d or -D and  quote special characters in INSERT
Repair serious problems with dynahash(Tom)
Fix INET/CIDR portability problems
Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
Fix executor so mergejoin of different column types works(Tom)
Fix for Alpha OR selectivity bug
Fix OR index selectivity problem(Bruce)