Skip to content
Snippets Groups Projects
HISTORY 199 KiB
Newer Older
   New Polish FAQ (Marcin Mazurek)
   Add Posix semaphore support (Tom)
   Document need for reindex (Bruce)
   Rename some internal identifiers to simplify Win32 compile (Jan,
     Katherine Ward)
   Add documentation on computing disk space (Bruce)
   Remove KSQO from GUC (Bruce)
   Fix memory leak in rtree (Kenneth Been)
   Modify a few error messages for consistency (Bruce)
   Remove unused system table columns (Peter)
   Make system columns NOT NULL where appropriate (Tom)
   Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)
   Remove OPAQUE and create specific subtypes (Tom)
   Cleanups in array internal handling (Joe, Tom)
   Disallow pg_atoi('') (Bruce)
   Remove parameter wal_files because WAL files are now recycled (Bruce)
   Add version numbers to heap pages (Tom)
     _________________________________________________________________

   Allow inet arrays in /contrib/array (Neil)
   Gist fixes (Teodor Sigaev, Neil)
   Upgrade /contrib/mysql
   Add /contrib/dbsize which shows table sizes without vacuum (Peter)
   Add /contrib/intagg, integer aggregator routines (mlw)
   Improve /contrib/oid2name (Neil, Bruce)
   Improve /contrib/tsearch (Oleg, Teodor Sigaev)
   Cleanups of /contrib/rserver (Alexey V. Borzov)
   Update /contrib/oracle conversion utility (Gilles Darold)
   Update /contrib/dblink (Joe)
   Improve options supported by /contrib/vacuumlo (Mario Weilguni)
   Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey
     Oktyabrski)
   Add /contrib/reindexdb utility (Shaun Thomas)
   Add indexing to /contrib/isbn_issn (Dan Weston)
   Add /contrib/dbmirror (Steven Singer)
   Improve /contrib/pgbench (Neil)
   Add /contrib/tablefunc table function examples (Joe)
   Add /contrib/ltree data type for tree structures (Teodor Sigaev,
     Oleg Bartunov)
   Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)
   Fixes to /contrib/cube (Bruno Wolff)
   Improve /contrib/fulltextindex (Christopher)
     _________________________________________________________________

                               Release 7.2.4

     Release date: 2003-01-30

   This  has  a  variety  of fixes from 7.2.3, including fixes to prevent
   possible data loss.
     _________________________________________________________________

                         Migration to version 7.2.4

   A dump/restore is *not* required for those running 7.2.X.
     _________________________________________________________________

                                  Changes

   Fix some additional cases of VACUUM "No one parent tuple was found"
	error
   Prevent VACUUM from being called inside a function  (Bruce)
   Ensure pg_clog updates are sync'd to disk before marking checkpoint
	complete
   Avoid integer overflow during large hash joins
   Make GROUP commands work when pg_group.grolist is large enough
	to be toasted
   Fix errors in datetime tables; some timezone names weren't being
	recognized
   Fix integer overflows in circle_poly(), path_encode(), path_add()
	(Neil)
   Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()
     _________________________________________________________________
     Release date: 2002-10-01
   This has a variety of fixes from 7.2.2, including fixes to prevent
   possible data loss.
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.2.X.
     _________________________________________________________________
   Prevent possible compressed transaction log loss (Tom)
   Prevent non-superuser from increasing most recent vacuum info (Tom)
   Handle pre-1970 date values in newer versions of glibc (Tom)
   Fix possible hang during server shutdown
   Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)
   Fix pg_dump to properly dump FULL JOIN USING (Tom)
     _________________________________________________________________
     Release date: 2002-08-23
   This has a variety of fixes from 7.2.1.
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.2.X.
     _________________________________________________________________
   Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
   Fix for compressed transaction log id wraparound (Tom)
   Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f (Ta
   tsuo)
   Fix for psql and pg_dump crashing when invoked with non-existand long
     options (Tatsuo)
   Fix crash when invoking geometric operators (Tom)
   Allow OPEN cursor(args) (Tom)
   Fix for rtree_gist index build (Teodor)
   Fix for dumping user-defined aggregates (Tom)
   Contrib/intarray fixes (Oleg)
   Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
   Fix to pg_convert (Tatsuo)
   Fix for crash with long DATA strings (Thomes, Neil)
   Fix for repeat(), lpad(), rpad() and long strings (Neil)
     _________________________________________________________________
Bruce Momjian's avatar
Bruce Momjian committed
     Release date: 2002-03-21
Bruce Momjian's avatar
Bruce Momjian committed
   This has a variety of fixes from 7.2.
     _________________________________________________________________
Bruce Momjian's avatar
Bruce Momjian committed
   A dump/restore is *not* required for those running 7.2.
     _________________________________________________________________
   Ensure that sequence counters do not go backwards after a crash (Tom)
   Fix pgaccess kanji-coversion key binding (Tatsuo)
   Optimizer improvements (Tom)
Bruce Momjian's avatar
Bruce Momjian committed
   Cash I/O improvements (Tom)
   New Russian FAQ
   Compile fix for missing AuthBlockSig (Heiko)
   Additional time zones and time zone fixes (Thomas)
   Allow psql \connect to handle mixed case database and user names (Tom)
   Return proper OID on command completion even with ON INSERT rules (Tom
   )
   Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
   Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
   Improve handling of multiple UNIONs with different lengths (Tom)
   contrib/btree_gist improvements (Teodor Sigaev)
   contrib/tsearch dictionary improvements, see README.tsearch for
     an additional installation step (Thomas T. Thai, Teodor Sigaev)
   Fix for array subscripts handling (Tom)
   Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
     _________________________________________________________________
     Release date: 2002-02-04
     _________________________________________________________________
   This release improves PostgreSQL for use in high-volume applications.
          Vacuuming no longer locks tables, thus allowing normal user
          access during the vacuum. A new "VACUUM FULL" command does
          old-style vacuum by locking the table and shrinking the on-disk
          copy of the table.
          There is no longer a problem with installations that exceed
          four billion transactions.
   OIDs
          OIDs are now optional. Users can now create tables without OIDs
          for cases where OID usage is excessive.
          The system now computes histogram column statistics during
          "ANALYZE", allowing much better optimizer choices.
          A new MD5 encryption option allows more secure storage and
          transfer of passwords. A new Unix-domain socket authentication
          option is available on Linux and BSD systems.
          Administrators can use the new table access statistics module
          to get fine-grained information about table and index usage.
          Program and library messages can now be displayed in several
          languages.
     _________________________________________________________________
   A dump/restore using "pg_dump" is required for those wishing to
   migrate data from any previous release.
   Observe the following incompatibilities:
     * The semantics of the "VACUUM" command have changed in this
       release. You may wish to update your maintenance procedures
       accordingly.
     * In this release, comparisons using = NULL will always return false
       (or NULL, more precisely). Previous releases automatically
       transformed this syntax to IS NULL. The old behavior can be
       re-enabled using a "postgresql.conf" parameter.
     * The "pg_hba.conf" and "pg_ident.conf" configuration is now only
       reloaded after receiving a SIGHUP signal, not with each
       connection.
     * The function "octet_length()" now returns the uncompressed data
       length.
     * The date/time value 'current' is no longer available. You will
       need to rewrite your applications.
     * The timestamp(), time(), and interval() functions are no longer
       available. Instead of timestamp(), use timestamp 'string' or CAST.
   The SELECT ... LIMIT #,# syntax will be removed in the next release.
   You should change your queries to use separate LIMIT and OFFSET
   clauses, e.g. LIMIT 10 OFFSET 20.
     _________________________________________________________________

   Create temporary files in a separate directory (Bruce)
   Delete orphaned temporary files on postmaster startup (Bruce)
   Added unique indexes to some system tables (Tom)
   System table operator reorganization (Oleg Bartunov, Teodor Sigaev, To
   m)
   Renamed pg_log to pg_clog (Tom)
   Enable SIGTERM, SIGQUIT to kill backends (Jan)
   Removed compile-time limit on number of backends (Tom)
   Better cleanup for semaphore resource failure (Tatsuo, Tom)
   Allow safe transaction ID wraparound (Tom)
   Removed OIDs from some system tables (Tom)
   Removed "triggered data change violation" error check (Tom)
   SPI portal creation of prepared/saved plans (Jan)
   Allow SPI column functions to work for system columns (Tom)
   Long value compression improvement (Tom)
   Statistics collector for table, index access (Jan)
   Truncate extra-long sequence names to a reasonable value (Tom)
   Measure transaction times in milliseconds (Thomas)
   Fix TID sequential scans (Hiroshi)
   Superuser ID now fixed at 1 (Peter E)
   New pg_ctl "reload" option (Tom)
     _________________________________________________________________

   Optimizer improvements (Tom)
   New histogram column statistics for optimizer (Tom)
   Reuse write-ahead log files rather than discarding them (Tom)
   Cache improvements (Tom)
   IS NULL, IS NOT NULL optimizer improvement (Tom)
   Improve lock manager to reduce lock contention (Tom)
   Keep relcache entries for index access support functions (Tom)
   Allow better selectivity with NaN and infinities in NUMERIC (Tom)
   R-tree performance improvements (Kenneth Been)
   B-tree splits more efficient (Tom)
     _________________________________________________________________

   Change UPDATE, DELETE permissions to be distinct (Peter E)
   New REFERENCES, TRIGGER privileges (Peter E)
   Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
   New has_table_privilege() function (Joe Conway)
   Allow non-superuser to vacuum database (Tom)
   New SET SESSION AUTHORIZATION command (Peter E)
   Fix bug in privilege modifications on newly created tables (Tom)
   Disallow access to pg_statistic for non-superuser, add user-accessible
    views (Tom)
     _________________________________________________________________
Client Authentication

   Fork postmaster before doing authentication to prevent hangs (Peter E)
   Add ident authentication over Unix domain sockets on Linux, *BSD (Helg
   e Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
   Add a password authentication method that uses MD5 encryption (Bruce)
   Allow encryption of stored passwords using MD5 (Bruce)
   PAM authentication (Dominic J. Eidson)
   Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
     _________________________________________________________________
Server Configuration
   Interpretation of some time zone abbreviations as Australian rather th
   an North American now settable at run time (Bruce)
   New parameter to set default transaction isolation level (Peter E)
   New parameter to enable conversion of "expr = NULL" into "expr IS NULL
   ", off by default (Peter E)
   New parameter to control memory usage by VACUUM (Tom)
   New parameter to set client authentication timeout (Tom)
   New parameter to set maximum number of open files (Tom)
     _________________________________________________________________

   Statements added by INSERT rules now execute after the INSERT (Jan)
   Prevent unadorned relation names in target list (Bruce)
   NULLs now sort after all normal values in ORDER BY (Tom)
   New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
   New SHARE UPDATE EXCLUSIVE lock mode (Tom)
   New EXPLAIN ANALYZE command that shows run times and row counts (Marti
   jn van Oosterhout)
   Fix problem with LIMIT and subqueries (Tom)
   Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)
     _________________________________________________________________
Schema Manipulation

   Fix SERIAL in temporary tables (Bruce)
   Allow temporary sequences (Bruce)
   Sequences now use int8 internally (Tom)
   New SERIAL8 creates int8 columns with sequences, default still SERIAL4
    (Tom)
   Make OIDs optional using WITHOUT OIDS (Tom)
   Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
   Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher K
   ings-Lynne)
   New CREATE OR REPLACE FUNCTION to alter existing function (preserving
   the function OID) (Gavin Sherry)
   Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
   Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent
    Verner)
   Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (
   Stephan Szabo)
   ALTER TABLE RENAME update foreign-key trigger arguments correctly (Bre
   nt Verner)
   DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
   Add automatic return type data casting for SQL functions (Tom)
   Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov
   , Teodor Sigaev, Tom)
   Enable partial indexes (Martijn van Oosterhout)
     _________________________________________________________________

   Add RESET ALL, SHOW ALL (Marko Kreen)
   CREATE/ALTER USER/GROUP now allow options in any order (Vince)
   Add LOCK A, B, C functionality (Neil Padgett)
   New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
   New light-weight VACUUM does not lock table; old semantics are availab
   le as VACUUM FULL (Tom)
   Disable COPY TO/FROM on views (Bruce)
   COPY DELIMITERS string must be exactly one character (Tom)
   VACUUM warning about index tuples fewer than heap now only appears whe
   n appropriate (Martijn van Oosterhout)
   Fix permission checks for CREATE INDEX (Tom)
   Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
     _________________________________________________________________
Data Types and Functions

   SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
   Add convert(), convert2() (Tatsuo)
   New function bit_length() (Peter E)
   Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tats
   uo)
   CHAR(), VARCHAR() now reject strings that are too long (Peter E)
   BIT VARYING now rejects bit strings that are too long (Peter E)
   BIT now rejects bit strings that do not match declared size (Peter E)
   INET, CIDR text conversion functions (Alex Pilosov)
   INET, CIDR operators << and <<= indexable (Alex Pilosov)
   Bytea \### now requires valid three digit octal number
   Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
   Bytea now supports B-tree indexes
   Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
   Bytea now supports concatenation
   New bytea functions: position, substring, trim, btrim, and length
   New encode() function mode, "escaped", converts minimally escaped byte
   a to/from text
   Add pg_database_encoding_max_length() (Tatsuo)
   Add pg_client_encoding() function (Tatsuo)
   now() returns time with millisecond precision (Thomas)
   New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
   Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
   New xid/int comparison functions (Hiroshi)
   Add precision to TIME, TIMESTAMP, and INVERVAL data types (Thomas)
   Modify type coercion logic to attempt binary-compatible functions firs
   t (Tom)
   New encode() function installed by default (Marko Kreen)
   Improved to_*() conversion functions (Karel Zak)
   Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
   New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_sal
   t() (Marko Kreen)
   Correct description of translate() function (Bruce)
   Add INTERVAL argument for SET TIME ZONE (Thomas)
   Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
   Optimize length functions when using single-byte encodings (Tatsuo)
   Fix path_inter, path_distance, path_length, dist_ppath to handle close
   d paths (Curtis Barrett, Tom)
   octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
   Handle "July" full name in date/time literals (Greg Sabino Mullane)
   Some datatype() function calls now evaluated differently
   Add support for Julian and ISO time specifications (Thomas)
     _________________________________________________________________
Internationalization
   National language support in psql, pg_dump, libpq, and server (Peter E
   )
   Message translations in Chinese (simplified, traditional), Czech, Fren
   ch, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, K
   arel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
   Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware
   (Tatsuo)
   Add LATIN5,6,7,8,9,10 support (Tatsuo)
   Add ISO 8859-5,6,7,8 support (Tatsuo)
   Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
   Make mic2ascii() non-ASCII aware (Tatsuo)
   Reject invalid multibyte character sequences (Tatsuo)
     _________________________________________________________________

   Now uses portals for SELECT loops, allowing huge result sets (Jan)
   CURSOR and REFCURSOR support (Jan)
   Can now return open cursors (Jan)
   Add ELSEIF (Klaus Reger)
   Improve PL/pgSQL error reporting, including location of error (Tom)
   Allow IS or FOR key words in cursor declaration, for compatibility (Br
   uce)
   Fix for SELECT ... FOR UPDATE (Tom)
   Fix for PERFORM returning multiple rows (Tom)
   Make PL/pgSQL use the server's type coercion code (Tom)
   Memory leak fix (Jan, Tom)
   Make trailing semicolon optional (Tom)
     _________________________________________________________________
   PL/Perl is now built on some platforms even if libperl is not shared (
   Peter E)
     _________________________________________________________________

   Now reports errorInfo (Vsevolod Lobko)
   Add spi_lastoid function (bob@redivi.com)
     _________________________________________________________________
     _________________________________________________________________
   \d displays indexes in unique, primary groupings (Christopher Kings-Ly
   nne)
   Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
   Read password from /dev/tty if possible
   Force new password prompt when changing user and database (Tatsuo, Tom
   )
   Format the correct number of columns for Unicode (Patrice)
     _________________________________________________________________
   New function PQescapeString() to escape quotes in command strings (Flo
   rian Weimer)
   New function PQescapeBytea() escapes binary strings for use as SQL str
   ing literals
     _________________________________________________________________

   Return OID of INSERT (Ken K)
   Handle more data types (Ken K)
   Handle single quotes and newlines in strings (Ken K)
   Handle NULL variables (Ken K)
   Fix for time zone handling (Barry Lind)
   Improved Druid support
   Allow eight-bit characters with non-multibyte server (Barry Lind)
   Support BIT, BINARY types (Ned Wolpert)
   Reduce memory usage (Michael Stephens, Dave Cramer)
   Update DatabaseMetaData (Peter E)
   Add DatabaseMetaData.getCatalogs() (Peter E)
   Encoding fixes (Anders Bengtsson)
   Get/setCatalog methods (Jason Davies)
   DatabaseMetaData.getColumns() now returns column defaults (Jason Davie
   s)
   DatabaseMetaData.getColumns() performance improvement (Jeroen van Vian
   en)
   Some JDBC1 and JDBC2 merging (Anders Bengtsson)
   Transaction performance improvements (Barry Lind)
   Array fixes (Greg Zoller)
   Serialize addition
   Fix batch processing (Rene Pijlman)
   ExecSQL method reorganization (Anders Bengtsson)
   GetColumn() fixes (Jeroen van Vianen)
   Fix isWriteable() function (Rene Pijlman)
   Improved passage of JDBC2 conformance tests (Rene Pijlman)
   Add bytea type capability (Barry Lind)
   Add isNullable() (Rene Pijlman)
   JDBC date/time test suite fixes (Liam Stewart)
   Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
   Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
   New getImported/getExported keys (Jason Davies)
   MD5 password encryption support (Jeremy Wohl)
   Fix to actually use type cache (Ned Wolpert)
     _________________________________________________________________

   Remove query size limit (Hiroshi)
   Remove text field size limit (Hiroshi)
   Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
   Allow ODBC procedure calls (Hiroshi)
   Improve boolean handing (Aidan Mountford)
   Most configuration options on setable via DSN (Hiroshi)
   Multibyte, performance fixes (Hiroshi)
   Allow driver to be used with iODBC or unixODBC (Peter E)
   MD5 password encryption support (Bruce)
   Add more compatibility functions to odbc.sql (Peter E)
     _________________________________________________________________
   EXECUTE ... INTO implemented (Christof Petig)
   Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
   Fix for GRANT parameters (Lee Kindness)
   Fix INITIALLY DEFERRED bug
   Various bug fixes (Michael, Christof Petig)
   Auto allocation for indicator variable arrays (int *ind_p=NULL)
   Auto allocation for string arrays (char **foo_pp=NULL)
   ECPGfree_auto_mem fixed
   All function names with external linkage are now prefixed by ECPG
   Fixes for arrays of structures (Michael)
     _________________________________________________________________
   Python fix fetchone() (Gerhard Haring)
   Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Ma
   x)
   Add Tcl COPY TO/FROM (ljb)
   Prevent output of default index op class in pg_dump (Tom)
   Fix libpgeasy memory leak (Bruce)
     _________________________________________________________________
   Configure, dynamic loader, and shared library fixes (Peter E)
   Fixes in QNX 4 port (Bernd Tegge)
   Fixes in Cygwin and Win32 ports (Jason Tishler, Gerhard Haring, Dmitry
    Yurtaev, Darko Prenosil, Mikhail Terekhov)
   Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov)
   Hurd compile fix (Oliver Elphick)
   BeOS fixes (Cyril Velter)
   Remove configure --enable-unicode-conversion, now enabled by multibyte
    (Tatsuo)
   AIX fixes (Tatsuo, Andreas)
   Fix parallel make (Peter E)
   Install SQL language manual pages into OS-specific directories (Peter
   E)
   Rename config.h to pg_config.h (Peter E)
   Reorganize installation layout of header files (Peter E)
     _________________________________________________________________

   Remove SEP_CHAR (Bruce)
   New GUC hooks (Tom)
   Merge GUC and command line handling (Marko Kreen)
   Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
   New pgjindent utility to indent java code (Bruce)
   Remove define of true/false when compiling under C++ (Leandro Fanzone,
    Tom)
   pgindent fixes (Bruce, Tom)
   Replace strcasecmp() with strcmp() where appropriate (Peter E)
   Dynahash portability improvements (Tom)
   Add 'volatile' usage in spinlock structures
   Improve signal handling logic (Tom)
     _________________________________________________________________

   New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
   New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
   Add contrib/dblink for remote database access (Joe Conway)
   contrib/ora2pg Oracle conversion utility (Gilles Darold)
   contrib/xml XML conversion utility (John Gray)
   contrib/fulltextindex fixes (Christopher Kings-Lynne)
   New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merg
   ed (Joe Conway)
   Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartu
   nov)
   New pg_upgrade utility (Bruce)
   Add new pg_resetxlog options (Bruce, Tom)
     _________________________________________________________________
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.1.X.
     _________________________________________________________________
Remove unused WAL segements of large transactions (Tom)
Multiaction rule fix (Tom)
PL/pgSQL memory allocation fix (Jan)
VACUUM buffer fix (Tom)
Regression test fixes (Tom)
pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
Fix subselects with DISTINCT ON or LIMIT (Tom)
BeOS fix
Disable COPY TO/FROM a view (Tom)
Cygwin build (Jason Tishler)
     _________________________________________________________________
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.1.X.
     _________________________________________________________________
Fix PL/pgSQL SELECTs when returning no rows
Fix for psql backslash core dump
Referential integrity permission fix
Optimizer fixes
pg_dump cleanups
     _________________________________________________________________
   This has a variety of fixes from 7.1.
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.1.
     _________________________________________________________________
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)

     _________________________________________________________________
   This release focuses on removing limitations that have existed in the
   PostgreSQL code for many years.
          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 8k - 32k. This limit made storage of long text fields
          difficult. With TOAST, long rows of any length can be stored
          with good performance.
          We now support outer joins. The UNION/NOT IN workaround for
          outer joins is no longer required. We use the SQL92 outer join
          syntax.
          The previous C function manager did not handle null values
          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.
          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.
     _________________________________________________________________
   A dump/restore using pg_dump is required for those wishing to migrate
   data from any previous release.
     _________________________________________________________________
Bug Fixes
---------
Many multibyte/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)
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)
Modify pg_dump to better handle user-defined items in template1 (Philip)
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)
Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
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)

Enhancements
------------
Add OUTER JOINs (Tom)
Function manager overhaul (Tom)
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)
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)
pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E)
Overhaul pg_dump (Philip Warner)
Allow pg_hba.conf secondary password file to specify only username (Peter E)
Allow TEMPORARY or TEMP keyword when creating temporary tables (Bruce)
New memory leak checker (Karel)
New SET SESSION CHARACTERISTICS (Thomas)
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)
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)
Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
New /contrib/pgcrypto hashing functions (Marko Kreen)
New pg_dumpall --globals-only option (Peter E)
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)

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)
New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
New GIST seg/cube examples (Gene Selkov)
Improved round(numeric) handling (Tom)
Fix CIDR output formatting (Tom)
New CIDR abbrev() function (Tom)

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)
Improve memory allocation performance (Karel, Tom)

Source Code
-----------
New function manager call conventions (Tom)
SGI portability fixes (David Kaelbling)
New configure --enable-syslog option (Peter E)
New BSDI README (Bruce)
configure script moved to top level, not /src (Peter E)
Makefile/configuration/compilation overhaul (Peter E)
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)
New heap_open(), heap_openr() API (Tom)
Remove colon and semi-colon operators (Thomas)
New pg_class.relkind value for views (Mark Hollomon)
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)
New Darwin/MacOS X port (Peter Bierman, Bruce Hartzler)
New FreeBSD Alpha port (Alfred)
Overhaul shared memory segments (Tom)
Add IBM S/390 support (Neale Ferguson)
Moved macmanuf to /contrib (Larry Rosenman)
Syslog improvements (Larry Rosenman)
New template0 database that contains no user additions (Tom)
New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
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

     _________________________________________________________________
   This has a variety of fixes from 7.0.2.
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.0.*.
     _________________________________________________________________
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 multibyte 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)

     _________________________________________________________________
   This is a repackaging of 7.0.1 with added documentation.
     _________________________________________________________________
   A dump/restore is *not* required for those running 7.*.
     _________________________________________________________________