From d1396696e08dc20c8edc1d42ac6263a26cc80d59 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 23 Dec 2001 18:20:05 +0000 Subject: [PATCH] Lots of content and formatting improvements in release notes. HISTORY now generated from DocBook sources. --- HISTORY | 6189 +++++++++++++++++++++++---------------------- doc/src/sgml/release.sgml | 887 ++++--- 2 files changed, 3664 insertions(+), 3412 deletions(-) diff --git a/HISTORY b/HISTORY index f3c1d693d3..3796d33138 100644 --- a/HISTORY +++ b/HISTORY @@ -1,3227 +1,3336 @@ - ------------------------------------------------------------------------ - Release 7.2 - ------------------------------------------------------------------------ - - -Release 7.2 (2001-12-??) - - -This release improved PostgreSQL for use in high volume applications. - -Major changes in this release: - - VACUUM - VACUUM no longer locks tables, 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. - - Transactions - There is no longer a problem with installations -that exceed four billion transactions. - - OID's - OID's are now optional. Users can now create tables -without OID's for cases where OID usage is excessive. - - Optimizer - The system now computes histogram column statistics -during ANALYZE, allowing much better optimizer choices. - - Security - A new MD5 encryption option allows much more secure -storage and transfer of passwords. A new unix-domain socket -authentication option is available on Linux and *BSD systems. - - Statistics - Administrators can use the new table access -statistics module to get fine-grained information about table and index -usage. - - Internationalization - Error messages can now be displayed in -several languages. - -Migration to 7.2 - - A dump/restore using pg_dump is required for those wishing to migrate - data from any previous release. In this release, comparisons using "= - NULL" will always return false. Previous releases automatically - transformed this syntax to "IS NULL", which is the standards- - compliant way to do NULL comparisons. The old behavior can be - re-enabled using a postgresql.conf parameter. The SELECT ... LIMIT - #,# syntax will be removed in 7.3. You should change your queries to - use separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET 20. Also, - pg_hba.conf now only loads on SIGHUP. Octet_length() now returns - uncompressed data length. 'current' no longer used; use - CURRENT_TIMESTAMP instead. - - - -AS OF 2001-12-04 - -Bug Fixes ---------- -Prevent unadorned relations names in target list (Bruce) -Change UPDATE, DELETE permissions to be distinct (Peter E) -PLpgSQL fix for SELECT... FOR UPDATE (Tom) -Fix for PL/pgSQL PERFORM returning multiple rows (Tom) -Fix for ALTER TABLE ADD CONSTRAINT ... CHECK for inherited children (Stephan - Szabo) -Fix bug in permission modifications in newly created table (Tom) -Disallow access to pg_statistic for non-super user (Tom) -Fix SERIAL in temporary tables (Bruce) -Fire INSERT rules after statement (Jan) -Fix INITIALLY DEFERRED bug in ecpg -Remove VACUUM warning about index tuples fewer than heap (Martijn van Oosterhout) -Disable COPY TO/FROM on views (Bruce) -Fix problem with LIMIT and subqueries (Tom) -Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom) -PL/pgSQL memory leak fix (Jan, Tom) -Fix nested EXCEPT/INTERSECT (Tom) -Python fix fetchone() (Gerhard Haring) -ECPG fixes (Michael, Christof Petig) -PL/PgSQL trailing semicolon optional (Tom) -Fix path_inter, path_distance, path_length, dist_ppath to handle closed - paths (Curtis Barrett, Tom) -ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner) -Long value compression improvement (Tom) -octet_length(text_col) now returns non-compressed length (Tatsuo, Bruce) - -Enhancements ------------- -VACUUM now does not lock table (Tom) -New VACUUM FULL to force reclaimation of disk space (Tom) -Statistical collector for table, index access (Jan) -SPI portal creation of prepared/saved plans (Jan) -PL/pgSQL uses portals for SELECT loops allowing huge result sets (Jan) -PL/pgSQL CURSOR and REFCURSOR support (Jan) -PL/pgSQL can now return open cursors (Jan) -Add ELSEIF to PL/pgSQL (Klaus Reger) -New REFERENCES, TRIGGER privileges (Peter E) -Have psql \d display indexes in unique, primary groupings (Christopher Kings-Lynne) -Improve PL/pgSQL error reporting (Tom) -Add DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne) -PL/PgSQL Allow IS and FOR keywords in cursors, for compatibility (Bruce) -Native language support for error messages in psql, pg_dump, libpq, and - postgres components; configure --enable-nls - (Peter E [German, some French, some Swedish], Serguei A. Mokhov [Russian], - Karel Zak [Czech], Weiping He [Simplified Chinese], Zhenbang Wei - [Traditional Chinese], Zoltan [Hungarian]) -Make NULL appear at beginning/end based on ORDER BY (Tom) -Add %TYPE capability to CREATE TYPE (Ian Lance Taylor) -Truncate extra-long sequence names to a reasonable value (Tom) -Add RESET ALL, SHOW ALL (Marko Kreen) -Allow GRANT/REVOKE to/from with more than one user (Peter E) -New has_table_privilege() function (Joe Conway) -Allow non-super user to vacuum database (Tom) -New Australian timezone GUC setting (Bruce) -Untrusted PlPerl (Alex Pilosov) -New IS UNKNOWN, IS NOT UNKNOWN boolean tests (Tom) -Fork postmaster before doing authentication to prevent hangs (Peter E) -Add Temporary sequences (Bruce) -New GUC set default isolation level (Peter E) -New SHARE UPDATE EXCLUSIVE lock mode (Tom) -CREATE/ALTER USER/GROUP now allows options in any order (Vince) -New encode() function installed by default (Marko Kreen) -Enable partial indexes (Martijn van Oosterhout) -Add unix domain socket user authentication in Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce) -Pltcl add spi_lastoid function (bob@redivi.com) -Add LOCK A,B,C functionality(Neil Padgett) -Make OID's optional using WITHOUT OIDS (Tom) -Allow column renaming in views -SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom) -Add convert(), convert2() (Tatsuo) -Add MD5 encryption (Bruce) -Allow encryption of stored passwords using MD5 (Bruce) -Greater randomization of encryption keys using MD5 (Bruce) -New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce) -Sequences now use int8 internally (Tom) -New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom) -New SET SESSION AUTHORIZATION command (Peter E) -Add automatic return type data casting for SQL functions (Tom) -Allow safe transaction id wraparound (Tom) -Use UTF, Unicode in TCL where appropriate (Vsevolod Lobko, Reinhard Max) -Improved to_*() conversion functions (Karel Zak) -PAM authentication (Dominic J. Eidson) -Add TCL COPY TO/FROM (ljb) -Allow ALTER TABLE ADD UNIQUE (Christopher Kings-Lynne) -Super-user id now defaults to 1 (Peter E) -Reject invalid multibyte character sequences (Tatsuo) -New libpq PQescapeString() function to escape query strings (Florian Weimer) -New EXPLAIN ANALYZE command that shows runtimes and tuple counts (Martijn - van Oosterhout) -New postgresql.conf option to enable/disable "col = NULL" comparisons - (Peter E) -New postgresql.conf parameter to control memory usage by VACUUM (Tom) -New postgresql.conf time out parameter for client authentication (Tom) -New pg_ctl 'reload' option (Tom) -Add /contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov) -New postgresql.conf to set maximum open files (Tom) -New CREATE OR REPLACE FUNCTION that preserves function oid (Gavin Sherry) -DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom) -Prevent output of default index op class in pg_dump (Tom) -Allow trailing semicolons in psql backslash commands (Greg Sabino Mullane) -Prompt for psql password from /dev/tty if possible -Allow SPI column functions to work for system columns (Tom) -Dynahash portability improvements (Tom) -Remove OID's from some system tables (Tom) -Remove 'triggered data change violation' error check (Tom) -Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo) -New libpq function PQescapeBytea() escapes binary strings for use as - SQL string literals -Improve reporting of PL/PgSQL error location (Tom) - -Types ------ -CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo) -CHAR(), VARCHAR() now returns error on storage of too long string (Peter E) -BIT, BIT VARYING now returns error on too long input (Peter E) -New function bit_length() (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 btree indexes -Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE -Bytea now supports string concatenation -New Bytea functions - position(), substring, trim, btrim, and length -New encode() function mode, 'escaped', converts minimally escaped - bytea to/from text -Make trim/ltrim/rtrim/btrim/lpad/rpad/translate() multibyte aware (Tatsuo) -Formats with the correct number of columns for UNICODE in psql (Patrice) -Add pg_database_encoding_max_length() (Tatsuo) -Add pg_client_encoding() function (Tatsuo) -Add LATIN5,6,7,8,9,10 support (Tatsuo) -Change LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo) -Add ISO 8859-5,6,7,8 support (Tatsuo) -Make mic2ascii() non-ASCII aware (Tatsuo) -Measure transaction times in milliseconds (Thomas) -now() returns time in milliseconds (Thomas) -New TIMEZONE WITHOUT TIMEZONE data types (Thomas) -Add ISO date/time specification with 'T', yyyy-mm-ddThh:mm:ss (Thomas) -New xid/int comparison functions (Hiroshi) -Fix TID sequential scans (Hiroshi) -Add precision to TIME, TIMESTAMP, and INVERVAL data types (Thomas) -Cachability fixes (Thomas, Tom) -PL/TCL now reports errorInfo (Vsevolod Lobko) -Modify type coersion logic to attempt binary-compatible functions first (Tom) -Allow optional () after current_user, session_user, user, etc. (Peter E) -Add compatibility functions to odbc.sql (Peter E) -Force new password prompt when changing user and database in psql (Tatsuo, Tom) -New /contrib/tsearch full text indexing (Oleg, Teodor Sigaev) -Allow better selectivity with Nan and infinities in NUMERIC (Tom) -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) - -Performance ------------ -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) -Load pg_hba.conf only on startup and SIGHUP (Bruce) -Rtree performance improvements (Kenneth Been) -Improve lock manager to reduce lock contention (Tom) -Btree splits more efficient (Tom) -Keep relcache entries for index access support functions (Tom) -Make ALTER TABLE RENAME COLUMN update column names of indexes (Brent Verner) - -Interfaces ----------- -JDBC - Return oid of INSERT (Ken K) - Hande more data types (Ken K) - Handle single quotes and newlines in strings (Ken K) - Handle NULL variables (Ken K) - Fix for timezone 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 Davies) - Databasemetadata.getColumn() performance improvement (Jeroen van Vianen) - Jdbc1 and jdbc2 merging (Anders Bengtsson) - Transaction performance improvements (Barry Lind) - Array fixes (Greg Zoller) - Serialize addition - Fix batch processing (Ren? Pijlman) - ExecSQL method reorganization (Anders Bengtsson) - GetColumn() fixes (Jeroen van Vianen) - Fix isWriteable() function (Ren? Pijlman) - Improved passage of jdbc2 conformance tests (Ren? 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) - DatabaseMetaData patch to show precision properly (Mark Lillywhite) - New getImported/getExported keys (Jason Davies) - MD5 password encryption support (Jeremy Wohl) - -ODBC - 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 configure 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) - -ECPG - EXECUTE ... INTO ... implemented - multiple row descriptor support (e.g. CARDINALITY) - Fix for GRANT parameters (Lee Kindness) - -Source Code ------------ -Configure, dynamic loader, and shared library fixes (Peter E) -Watcom fixes (Bernd Tegge) -QNX fixes -Cygwin, Win32 server fixes (Jason Tishler) -Cygwin, Win32 fixes for TCL, perl, Python, PlPython, psql, libpq, libpq++ (Jason Tishler, Gerhard H?ring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov) -Remove SEP_CHAR (Bruce) -Allow GIST to handle NULLs and multi-key indexes (Oleg Bartunov, Teodor - Sigaev, Tom) -New contrib/rtree_gist ((Oleg Bartunov, Teodor Sigaev) -Create temporary files into a separate directory (Bruce) -Delete orphanded temporary files on postmaster startup (Bruce) -Add unique index to some system tables (Tom) -New GUC hooks (Tom) -Add /contrib/dblink for remote database access (Joe Conway) -/contrib/ora2pg Oracle conversion utility (Gilles Darold) -Merge GUC and command line handling (Marko Kreen) -Remove EXTEND INDEX (Martijn van Oosterhout, Tom) -/contrib/xml XML conversion utility (John Gray) -Correct description of translate() function (Bruce) -/contrib/fulltextindex fixes (Christopher Kings-Lynne) -Fix for Win32 socket communication failures (Magnus, Mikhail Terekhov) -Hurd compile fix (Oliver Elphick) -New /contrib/fuzzystrmatch with lievnshtein and metaphone, soundex merged (Joe Conway) -Beos fixes (Cyril VELTER) -New functions in /contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() - (Marko Kreen) -System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom) -Rename config.h to pg_config.h (Peter E) -pg_log now pg_clog (Tom) -PL/Perl compile fixes (Peter E) -PL/Python now builds by default on some platforms (Peter E) -Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom) -Client header reorganization (Peter E) -Please SQL language manual pages into OS-specific directories (Peter E) -Better cleanup for semaphore resource failure (Tatsuo, Tom) -Remove compile-time limit on number of backends (Tom) -Enable SIGTERM, SIGQUIT to kill backends (Jan) -New pgjindent utility to indent java code (Bruce) -Replace strcasecmp() with strcmp() where appropriate (Peter E) -Make PL/PgSQL use the backends type coersion code (Tom) -pgindent fixes, new pgjindent for java (Bruce, Tom) -Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo) -AIX fixes (Tatsuo, Andreas) -Allow parellel makes (Peter E) - - - ------------------------------------------------------------------------ - Release 7.1.3 - ------------------------------------------------------------------------ - - -Release 7.1.3 (2001-08-15) - -Migration to v7.1.3 - -A dump/restore is not required for those running 7.1.X. + Release Notes + + Release 7.2 + +Overview + + This release improves PostgreSQL for use in high-volume applications. + + Major changes in this release: + + VACUUM + + 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. + + Transactions + + There is no longer a problem with installations that exceed four + billion transactions. + + OID's + + OID's are now optional. Users can now create tables without OID's + for cases where OID usage is excessive. + + Optimizer + + The system now computes histogram column statistics during + "ANALYZE", allowing much better optimizer choices. + + Security + + 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. + + Statistics + + Administrators can use the new table access statistics module to + get fine-grained information about table and index usage. + + Internationalization + + Program and library messages can now be displayed in several + languages. + + ---------------------------------------------------------------------- + +Migration to version 7.2 + + 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 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. + + ---------------------------------------------------------------------- Changes -------- -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) + Server Operation + + Create temporary files in a separate directory (Bruce) + Delete orphanded temporary files on postmaster startup (Bruce) + Added unique indexes to some system tables (Tom) + System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom) + 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 OID's 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) + + ---------------------------------------------------------------------- + + Performance + + 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) + + ---------------------------------------------------------------------- + + Privileges + + 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 (Helge 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 than 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) + + ---------------------------------------------------------------------- + + Queries + + 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 (Martijn van Oosterhout) + Fix problem with LIMIT and subqueries (Tom) + Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom) + Fix nested EXCEPT/INTERSECT (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 Kings-Lynne) + New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry) + Add ALTER TABLE / ADD UNIQUE (Christopher Kings-Lynne) + Allow column renaming in views + 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 (Brent 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) + + ---------------------------------------------------------------------- + + Utility Commands + + 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 available 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 when appropriate (Martijn van Oosterhout) + + ---------------------------------------------------------------------- + + 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 (Tatsuo) + 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 bytea 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 coersion logic to attempt binary-compatible functions first (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_salt() (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 closed 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) + + ---------------------------------------------------------------------- + + Internationalization + + Native language support in psql, pg_dump, libpq, and server (Peter E) + Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel 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) + + ---------------------------------------------------------------------- + + PL/pgSQL + + 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 (Bruce) + 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 + + New untrusted PL/Perl (Alex Pilosov) + PL/Perl is now built on some platforms even if libperl is not shared (Peter E) + + ---------------------------------------------------------------------- + + PL/Tcl + + Now reports errorInfo (Vsevolod Lobko) + Add spi_lastoid function (bob@redivi.com) + + ---------------------------------------------------------------------- + + PL/Python + + ...is new (Andrew Bosma) + + ---------------------------------------------------------------------- + + Psql + + \d displays indexes in unique, primary groupings (Christopher Kings-Lynne) + 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) + + ---------------------------------------------------------------------- + + Libpq + + New function PQescapeString() to escape quotes in command strings (Florian Weimer) + New function PQescapeBytea() escapes binary strings for use as SQL string literals + + ---------------------------------------------------------------------- + + JDBC + + 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 Davies) + DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen) + 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) + + ---------------------------------------------------------------------- + + ODBC + + 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) + + ---------------------------------------------------------------------- + + ECPG + + EXECUTE ... INTO implemented + multiple row descriptor support (e.g. CARDINALITY) + Fix for GRANT parameters (Lee Kindness) + Fix INITIALLY DEFERRED bug + Various bug fixes (Michael, Christof Petig) + + ---------------------------------------------------------------------- + + Misc. Interfaces + Python fix fetchone() (Gerhard Haring) + Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max) + Add Tcl COPY TO/FROM (ljb) + Prevent output of default index op class in pg_dump (Tom) + Fix libpgeasy memory leak (Bruce) - ------------------------------------------------------------------------ - Release 7.1.2 - ------------------------------------------------------------------------ + ---------------------------------------------------------------------- + Build and Install -Release 7.1.2 (2001-05-11) + 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) + + ---------------------------------------------------------------------- + + Source Code + + 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) + + ---------------------------------------------------------------------- + + Contrib + + 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 merged (Joe Conway) + Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov) + + ---------------------------------------------------------------------- + + Release 7.1.3 + + Release date: 2001-08-15 + + ---------------------------------------------------------------------- -One fix from 7.1.1. +Migration to version 7.1.3 -Migration to v7.1.2 + A dump/restore is *not* required for those running 7.1.X. -A dump/restore is not required for those running 7.1.X. + ---------------------------------------------------------------------- Changes -------- -Fix PL/PgSQL SELECTs when returning no rows -Fix for psql backslash core dump -Referential integrity permission fix -Optimizer fixes -pg_dump cleanups + 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) + + ---------------------------------------------------------------------- - ------------------------------------------------------------------------ - Release 7.1.1 - ------------------------------------------------------------------------ + Release 7.1.2 + Release date: 2001-05-11 -Release 7.1.1 (2001-05-05) + This has one fix from 7.1.1. -This has a variety of fixes from 7.1. + ---------------------------------------------------------------------- -Migration to v7.1.1 +Migration to version 7.1.2 -A dump/restore is not required for those running 7.1. + A dump/restore is *not* required for those running 7.1.X. + + ---------------------------------------------------------------------- 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) + Fix PL/PgSQL SELECTs when returning no rows + Fix for psql backslash core dump + Referential integrity permission fix + Optimizer fixes + pg_dump cleanups + + + ---------------------------------------------------------------------- + Release 7.1.1 - ------------------------------------------------------------------------ - Release 7.1 - ------------------------------------------------------------------------ + Release date: 2001-05-05 + This has a variety of fixes from 7.1. -Release 7.1 (2001-04-13) + ---------------------------------------------------------------------- +Migration to version 7.1.1 -This release focuses on removing limitations that have existed in the -PostgreSQL code for many years. + A dump/restore is *not* required for those running 7.1. -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. +Changes - 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. + 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) + - 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. + Release 7.1 - 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. + Release date: 2001-04-13 -Migration to 7.1 + This release focuses on removing limitations that have existed in the + PostgreSQL code for many years. - A dump/restore using pg_dump is required for those wishing to migrate - data from any previous release. + 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 + 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. + Outer Joins -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) -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) -New to_char(interval, text) function (Karel) - -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/Mac OSX port (Peter Bierman, Bruce Hartzler, Tom) -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 - - - - ------------------------------------------------------------------------ - Release 7.0.3 - ------------------------------------------------------------------------ - - -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.*. + 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 version 7.1 + + A dump/restore using pg_dump is required for those wishing to migrate data + from any previous release. + + ---------------------------------------------------------------------- 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 - ------------------------------------------------------------------------ - - -Release 7.0.2 (2000-06-05) - -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.*. + + 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) + 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/Mac OSX 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 + + + ---------------------------------------------------------------------- + + Release 7.0.3 + + Release date: 2000-11-11 + + This has a variety of fixes from 7.0.2. + + ---------------------------------------------------------------------- + +Migration to version 7.0.3 + + A dump/restore is *not* required for those running 7.0.*. + + ---------------------------------------------------------------------- Changes -------- -Added documentation to tarball. + 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 + + Release date: 2000-06-05 + + This is a repackaging of 7.0.1 with added documentation. + + ---------------------------------------------------------------------- + +Migration to version 7.0.2 + + A dump/restore is *not* required for those running 7.*. + + ---------------------------------------------------------------------- + +Changes + + Added documentation to tarball. + + + ---------------------------------------------------------------------- + + Release 7.0.1 + Release date: 2000-06-01 - ------------------------------------------------------------------------ - Release 7.0.1 - ------------------------------------------------------------------------ - + This is a cleanup release for 7.0. -Release 7.0.1 (2000-06-01) + ---------------------------------------------------------------------- -This is basically a cleanup release for 7.0.1 +Migration to version 7.0.1 -Migration to v7.0.1 + A dump/restore is *not* required for those running 7.0. -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) -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) - - - - ------------------------------------------------------------------------ - Release 7.0 - ------------------------------------------------------------------------ - - -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, + + 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) + 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) + + + ---------------------------------------------------------------------- + + Release 7.0 + + Release date: 2000-05-08 + + This release contains improvements in many areas, demonstrating the + continued growth of PostgreSQL. There are more improvements and fixes in + 7.0 than in any previous release. The developers have confidence that this + is the best release yet; we do our best to put out only solid releases, and this one is no exception. - -Major changes in this release: - + + Major changes in this release: + 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. - + + 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. - + + Continuing on work started a year ago, the optimizer has been + improved, allowing better query plan selection and faster + 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. - - -Bug Fixes ---------- -Prevent function calls with more than maximum number of arguments (Tom) -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) -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) -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) -Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom) -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) -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) -Update jdbc protocol to 2.0 (Jens Glaser) -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) -Function name overloading for dynamically-loaded C functions (Frankpitt) -Add CmdTuples() to libpq++(Vince) -New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan) -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) -Add FOREIGN KEY ... MATCH <unspecified> 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) -Add DEC and SESSION_USER as reserved words (Thomas) -Require SELECT DISTINCT target list to have all ORDER BY columns (Tom) -Add Oracle's COMMENT ON command (Mike Mascari) -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) -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) -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) -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) -Vacuumdb script now supports --all option (Peter E) -ecpg new portable FETCH syntax -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) -Allow configuration of maximum number of index keys and arguments (Bruce) -Allow unprivileged users to change their passwords (Peter E) -Password authentication enabled; required for new users (Peter E) -Disallow dropping a user who owns a database (Peter E) -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) -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() - conversion functions (Karel Zak <zakkr@zf.jcu.cz>) -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) -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) -Add btree indexing of boolean values, >= and <= (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) -Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas) -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) -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 -Add ecpg descriptors (Christof, Michael) -Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl -Allow casts with length, like foo::char(8) -New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo) -Add support for SJIS user defined characters (Tatsuo) -Larger views/rules supported -Make libpq's PQconndefaults() thread-safe (Tom) -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) -SET command options no longer require quotes -Update pgaccess to 0.98.6 -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) - -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) -Fix for netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 - (Oleg Sharoiko) -Add btree index on NUMERIC(Jan) -Perl fix for large objects containing NUL characters (Douglas Thomson) -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) -New C-routines to implement a BIT and BIT VARYING type in /contrib - (Adriaan Joubert) -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 - GROUP BY f1; (Tom) -Allow LOCALE to use indexes in regular expression searches(Tom) -Allow creation of functional indexes to use default types - -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) -Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom) -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) -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. -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) -Change #include's to use <> and "" as appropriate (Bruce) -Enable WIN32 compilation of libpq -Alpha spinlock fix from Uncle George -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 -Update for QNX (Dr. Andreas Kardos) -New platform-specific regression handling (Tom) -Rename oid8 -> oidvector and int28 -> 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 -Add SQL_ASCII test case to the regression test (Tatsuo) -configure --with-mb now deprecated (Tatsuo) -NT fixes -NetBSD fixes Johnny C. Lam -Fixes for Alpha compiles -New multibyte encodings - - - - ------------------------------------------------------------------------ - Release 6.5.3 - ------------------------------------------------------------------------ - - -Release 6.5.3 (1999-10-13) - -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. - -Migration to v6.5.3 - -A dump/restore is not required for those running 6.5.*. -Changes -------- -Updated version of pgaccess 0.98 -NT-specific patch + psql, our interactive terminal monitor, has been updated with a + variety of new features. See the psql manual page for details. + Join Syntax + SQL92 join syntax is now supported, though only as INNER JOINs for + this release. JOIN, NATURAL JOIN, JOIN/USING, JOIN/ON are + available, as are column correlation names. - ------------------------------------------------------------------------ - Release 6.5.2 - ------------------------------------------------------------------------ + ---------------------------------------------------------------------- +Migration to version 7.0 -Release 6.5.2 (1999-09-15) + A dump/restore using pg_dump is required for those wishing to migrate data + from any previous release of PostgreSQL. For those upgrading from 6.5.*, + you may instead use pg_upgrade to upgrade to this release; however, a full + dump/reload installation is always the most robust method for upgrades. -This is basically a cleanup release for 6.5.1. We have fixed a variety of -problems reported by 6.5.1 users. + Interface and compatibility issues to consider for the new release + include: -Migration to v6.5.2 + * The date/time types datetime and timespan have been superseded by the + SQL92-defined types timestamp and interval. Although there has been + some effort to ease the transition by allowing PostgreSQL to recognize + the deprecated type names and translate them to the new type names, + this mechanism may not be completely transparent to your existing + application. -A dump/restore is not required for those running 6.5.*. + * The optimizer has been substantially improved in the area of query + cost estimation. In some cases, this will result in decreased query + times as the optimizer makes a better choice for the preferred plan. + However, in a small number of cases, usually involving pathological + distributions of data, your query times may go up. If you are dealing + with large amounts of data, you may want to check your queries to + verify performance. + + * The JDBC and ODBC interfaces have been upgraded and extended. + + * The string function CHAR_LENGTH is now a native function. Previous + versions translated this into a call to LENGTH, which could result in + ambiguity with other types implementing LENGTH such as the geometric + types. + + ---------------------------------------------------------------------- Changes -------- -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 - - - - ------------------------------------------------------------------------ - Release 6.5.1 - ------------------------------------------------------------------------ - - -Release 6.5.1 (1999-07-15) - -This is basically a cleanup release for 6.5. We have fixed a variety of -problems reported by 6.5 users. - -Migration to v6.5.1 - -A dump/restore is not required for those running 6.5. + + Bug Fixes + --------- + Prevent function calls exceeding maximum number of arguments (Tom) + 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) + 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 propagating system table changes to other backends (Tom) + Improve propagating user table changes to other backends (Tom) + Fix handling of temp tables in complex situations (Bruce, Tom) + Allow table locking at table open, 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) + Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom) + 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 interface + 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) + 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) + Update jdbc protocol to 2.0 (Jens Glaser ) + 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 for variable with no NULL indicator (Christof) + Allow ^C to cancel COPY command (Massimo) + Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo) + Function name overloading for dynamically-loaded C functions (Frankpitt) + Add CmdTuples() to libpq++(Vince) + New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan) + 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) + Add FOREIGN KEY ... MATCH 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) + Require SELECT DISTINCT target list to have all ORDER BY columns (Tom) + Add Oracle's COMMENT ON command (Mike Mascari ) + 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) + 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 for vacuum (Peter E) + 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) + 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) + Vacuumdb script now supports --all option (Peter E) + ecpg new portable FETCH syntax + 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) + Allow configuration of maximum number of index keys and arguments (Bruce) + Allow unprivileged users to change their passwords (Peter E) + Password authentication enabled; required for new users (Peter E) + Disallow dropping a user who owns a database (Peter E) + 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) + 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() + conversion functions (Karel Zak ) + 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) + 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) + Add btree indexing of boolean values, >= and <= (Don Baccus) + Print current line number when COPY FROM fails (Massimo) + Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas) + Add DEC as synonym for DECIMAL (Thomas) + Add SESSION_USER as SQL92 keyword, same as CURRENT_USER (Thomas) + Implement SQL92 column aliases (aka correlation names) (Thomas) + Implement SQL92 join syntax (Thomas) + 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 + Add ecpg descriptors (Christof, Michael) + Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl + Allow casts with length, like foo::char(8) + New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo) + Add support for SJIS user defined characters (Tatsuo) + Larger views/rules supported + Make libpq's PQconndefaults() thread-safe (Tom) + 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) + SET command options no longer require quotes + Update pgaccess to 0.98.6 + 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) + + 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) + netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko) + Add btree index on NUMERIC (Jan) + Perl fix for large objects containing NUL characters (Douglas Thomson) + 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) + Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert) + 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 ] (Thomas) + 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) + Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas) + Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas) + Add exp() and ln() for NUMERIC type + Rename NUMERIC power() to pow() (Thomas) + Improved TRANSLATE() function (Edwin Ramirez, Tom) + Allow X=-Y operators (Tom) + Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom) + Allow LOCALE to use indexes in regular expression searches (Tom) + Allow creation of functional indexes to use default types + + 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 multibyte 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) + Use secondary columns 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) + Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom) + 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) + 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 + 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) + Change #include's to use <> and "" as appropriate (Bruce) + Enable WIN32 compilation of libpq + Alpha spinlock fix from Uncle George + 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 + Update for QNX (Dr. Andreas Kardos) + New platform-specific regression handling (Tom) + Rename oid8 -> oidvector and int28 -> 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 + Add SQL_ASCII test case to the regression test (Tatsuo) + configure --with-mb now deprecated (Tatsuo) + NT fixes + NetBSD fixes (Johnny C. Lam ) + Fixes for Alpha compiles + New multibyte encodings + + + ---------------------------------------------------------------------- + + Release 6.5.3 + + Release date: 1999-10-13 + + 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. + + ---------------------------------------------------------------------- + +Migration to version 6.5.3 + + A dump/restore is *not* required for those running 6.5.*. + + ---------------------------------------------------------------------- Changes -------- -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) + Updated version of pgaccess 0.98 + NT-specific patch + Fix dumping rules on inherited tables + + ---------------------------------------------------------------------- - ------------------------------------------------------------------------ - Release 6.5 - ------------------------------------------------------------------------ + Release 6.5.2 + Release date: 1999-09-15 -Release 6.5 (1999-06-09) - -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. - -Migration to v6.5 - -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. + This is basically a cleanup release for 6.5.1. We have fixed a variety of + problems reported by 6.5.1 users. -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 +Migration to version 6.5.2 -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. + A dump/restore is *not* required for those running 6.5.*. -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. +Changes + + 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 indexes(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 + + + ---------------------------------------------------------------------- + + Release 6.5.1 + + Release date: 1999-07-15 + + This is basically a cleanup release for 6.5. We have fixed a variety of + problems reported by 6.5 users. + + ---------------------------------------------------------------------- + +Migration to version 6.5.1 + + A dump/restore is *not* required for those running 6.5. + + ---------------------------------------------------------------------- - 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 +Changes + + 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) + + + ---------------------------------------------------------------------- + + Release 6.5 + + Release date: 1999-06-09 + + 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 + consistent 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 Windows + NT/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 + PostgreSQL source tree via anonymous CVS and CVSup. + + ---------------------------------------------------------------------- + +Migration to version 6.5 + + A dump/restore using pg_dump is required for those wishing to migrate data + from any previous release of PostgreSQL. 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 PostgreSQL and other environments. + + Keep the above in mind if you are using "contrib/refint.*" triggers for + referential integrity. Additional techniques 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. - - -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) -Fix so \d shows proper length for char()/varchar()(Ryan) -Fix tutorial code(Clark) -Improve destroyuser checking(Oliver) -Fix for Kerberos(Rodney McDuff) -Fix for dropping database while dirty buffers(Bruce) -Fix so sequence nextval() can be case-sensitive(Bruce) -Fix !!= operator -Drop buffers before destroying database files(Bruce) -Fix case where executor evaluates functions twice(Tatsuo) -Allow sequence nextval actions to be case-sensitive(Bruce) -Fix optimizer indexing not working for negative numbers(Bruce) -Fix for memory leak in executor with fjIsNull -Fix for aggregate memory leaks(Erik Riedel) -Allow username containing a dash GRANT permissions -Cleanup of NULL in inet types -Clean up system table bugs(Tom) -Fix problems of PAGER and \? command(Masaaki Sakaida) -Reduce default multi-segment file size limit to 1GB(Peter) -Fix for dumping of CREATE OPERATOR(Tom) -Fix for backward scanning of cursors(Hiroshi Inoue) -Fix for COPY FROM STDIN when using \i(Tom) -Fix for subselect is compared inside an expression(Jan) -Fix handling of error reporting while returning rows(Tom) -Fix problems with reference to array types(Tom,Jan) -Prevent UPDATE SET oid(Jan) -Fix pg_dump so -t option can handle case-sensitive tablenames -Fixes for GROUP BY in special cases(Tom, Jan) -Fix for memory leak in failed queries(Tom) -DEFAULT now supports mixed-case identifiers(Tom) -Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde) -Disable use of pg_dump with both -o and -d options(Bruce) -Allow pg_dump to properly dump GROUP permissions(Bruce) -Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan) -Fix for computations in views(Jan) -Fix for aggregates on array indexes(Tom) -Fix for DEFAULT handles single quotes in value requiring too many quotes -Fix security problem with non-super users importing/exporting large objects(Tom) -Rollback of transaction that creates table cleaned up properly(Tom) -Fix to allow long table and column names to generate proper serial names(Tom) - -Enhancements ------------- -Add "vacuumdb" utility -Speed up libpq by allocating memory better(Tom) -EXPLAIN all indices used(Tom) -Implement CASE, COALESCE, NULLIF expression(Thomas) -New pg_dump table output format(Constantin) -Add string min()/max() functions(Thomas) -Extend new type coersion techniques to aggregates(Thomas) -New moddatetime contrib(Terry) -Update to pgaccess 0.96(Constantin) -Add routines for single-byte "char" type(Thomas) -Improved substr() function(Thomas) -Improved multi-byte handling(Tatsuo) -Multi-version concurrency control/MVCC(Vadim) -New Serialized mode(Vadim) -Fix for tables over 2gigs(Peter) -New SET TRANSACTION ISOLATION LEVEL(Vadim) -New LOCK TABLE IN ... MODE(Vadim) -Update ODBC driver(Byron) -New NUMERIC data type(Jan) -New SELECT FOR UPDATE(Vadim) -Handle "NaN" and "Infinity" for input values(Jan) -Improved date/year handling(Thomas) -Improved handling of backend connections(Magnus) -New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo) -New TCL_ARRAYS option(Massimo) -New INTERSECT and EXCEPT(Stefan) -New pg_index.indisprimary for primary key tracking(D'Arcy) -New pg_dump option to allow dropping of tables before creation(Brook) -Speedup of row output routines(Tom) -New READ COMMITTED isolation level(Vadim) -New TEMP tables/indexes(Bruce) -Prevent sorting if result is already sorted(Jan) -New memory allocation optimization(Jan) -Allow psql to do \p\g(Bruce) -Allow multiple rule actions(Jan) -Added LIMIT/OFFSET functionality(Jan) -Improve optimizer when joining a large number of tables(Bruce) -New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas) -New intro to backend processing from S. Simkovics' Master's Thesis (Stefan) -Improved int8 support(Ryan Bradetich, Thomas, Tom) -New routines to convert between int8 and text/varchar types(Thomas) -New bushy plans, where meta-tables are joined(Bruce) -Enable right-hand queries by default(Bruce) -Allow reliable maximum number of backends to be set at configure time - (--with-maxbackends and postmaster switch (-N backends))(Tom) -GEQO default now 10 tables because of optimizer speedups(Tom) -Allow NULL=Var for MS-SQL portability(Michael, Bruce) -Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand) -Allow psql \d on a view show query(Ryan) -Speedup for LIKE(Bruce) -Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael) -JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter) -Make % operator have precedence like /(Bruce) -Add new postgres -O option to allow system table structure changes(Bruce) -Update contrib/pginterface/findoidjoins script(Tom) -Major speedup in vacuum of deleted rows with indexes(Vadim) -Allow non-SQL functions to run different versions based on arguments(Tom) -Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida) -Add version number in start-up banners for psql(Masaaki Sakaida) -New contrib/vacuumlo removes large objects not referenced(Peter) -New initialization for table sizes so non-vacuumed tables perform better(Tom) -Improve error messages when a connection is rejected(Tom) -Support for arrays of char() and varchar() fields(Massimo) -Overhaul of hash code to increase reliability and performance(Tom) -Update to PyGreSQL 2.4(D'Arcy) -Changed debug options so -d4 and -d5 produce different node displays(Jan) -New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan) -Better optimization statistics for system table access(Tom) -Better handling of non-default block sizes(Massimo) -Improve GEQO optimizer memory consumption(Tom) -UNION now suppports ORDER BY of columns not in target list(Jan) -Major libpq++ improvements(Vince Vielhaber) -pg_dump now uses -z(ACL's) as default(Bruce) -backend cache, memory speedups(Tom) -have pg_dump do everything in one snapshot transaction(Vadim) -fix for large object memory leakage, fix for pg_dumping(Tom) -INET type now respects netmask for comparisons -Make VACUUM ANALYZE only use a readlock(Vadim) -Allow VIEWs on UNIONS(Jan) -pg_dump now can generate consistent snapshots on active databases(Vadim) - -Source Tree Changes -------------------- -Improve port matching(Tom) -Portability fixes for SunOS -Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak) -New port to Cobalt Qube(Mips) running Linux(Tatsuo) -Port to NetBSD/m68k(Mr. Mutsuki Nakajima) -Port to NetBSD/sun3(Mr. Mutsuki Nakajima) -Port to NetBSD/macppc(Toshimi Aoki) -Fix for tcl/tk configuration(Vince) -Removed CURRENT keyword for rule queries(Jan) -NT dynamic loading now works(Daniel Horak) -Add ARM32 support(Andrew McMurry) -Better support for HPUX 11 and Unixware -Improve file handling to be more uniform, prevent file descriptor leak(Tom) -New install commands for plpgsql(Jan) - - - - ------------------------------------------------------------------------ - Release 6.4.2 - ------------------------------------------------------------------------ - - -Release 6.4.2 (1998-12-20) - -The 6.4.1 release was improperly packaged. This also has one additional bug -fix. - -Migration to v6.4.2 - -A dump/restore is not required for those running 6.4.*. + 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. + + ---------------------------------------------------------------------- + +Changes + + 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 coercion 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) + Fix so \d shows proper length for char()/varchar()(Ryan) + Fix tutorial code(Clark) + Improve destroyuser checking(Oliver) + Fix for Kerberos(Rodney McDuff) + Fix for dropping database while dirty buffers(Bruce) + Fix so sequence nextval() can be case-sensitive(Bruce) + Fix !!= operator + Drop buffers before destroying database files(Bruce) + Fix case where executor evaluates functions twice(Tatsuo) + Allow sequence nextval actions to be case-sensitive(Bruce) + Fix optimizer indexing not working for negative numbers(Bruce) + Fix for memory leak in executor with fjIsNull + Fix for aggregate memory leaks(Erik Riedel) + Allow username containing a dash GRANT permissions + Cleanup of NULL in inet types + Clean up system table bugs(Tom) + Fix problems of PAGER and \? command(Masaaki Sakaida) + Reduce default multi-segment file size limit to 1GB(Peter) + Fix for dumping of CREATE OPERATOR(Tom) + Fix for backward scanning of cursors(Hiroshi Inoue) + Fix for COPY FROM STDIN when using \i(Tom) + Fix for subselect is compared inside an expression(Jan) + Fix handling of error reporting while returning rows(Tom) + Fix problems with reference to array types(Tom,Jan) + Prevent UPDATE SET oid(Jan) + Fix pg_dump so -t option can handle case-sensitive tablenames + Fixes for GROUP BY in special cases(Tom, Jan) + Fix for memory leak in failed queries(Tom) + DEFAULT now supports mixed-case identifiers(Tom) + Fix for multi-segment uses of DROP/RENAME table, indexes(Ole Gjerde) + Disable use of pg_dump with both -o and -d options(Bruce) + Allow pg_dump to properly dump GROUP permissions(Bruce) + Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan) + Fix for computations in views(Jan) + Fix for aggregates on array indexes(Tom) + Fix for DEFAULT handles single quotes in value requiring too many quotes + Fix security problem with non-super users importing/exporting large objects(Tom) + Rollback of transaction that creates table cleaned up properly(Tom) + Fix to allow long table and column names to generate proper serial names(Tom) + + Enhancements + ------------ + Add "vacuumdb" utility + Speed up libpq by allocating memory better(Tom) + EXPLAIN all indexes used(Tom) + Implement CASE, COALESCE, NULLIF expression(Thomas) + New pg_dump table output format(Constantin) + Add string min()/max() functions(Thomas) + Extend new type coercion techniques to aggregates(Thomas) + New moddatetime contrib(Terry) + Update to pgaccess 0.96(Constantin) + Add routines for single-byte "char" type(Thomas) + Improved substr() function(Thomas) + Improved multibyte handling(Tatsuo) + Multi-version concurrency control/MVCC(Vadim) + New Serialized mode(Vadim) + Fix for tables over 2gigs(Peter) + New SET TRANSACTION ISOLATION LEVEL(Vadim) + New LOCK TABLE IN ... MODE(Vadim) + Update ODBC driver(Byron) + New NUMERIC data type(Jan) + New SELECT FOR UPDATE(Vadim) + Handle "NaN" and "Infinity" for input values(Jan) + Improved date/year handling(Thomas) + Improved handling of backend connections(Magnus) + New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo) + New TCL_ARRAYS option(Massimo) + New INTERSECT and EXCEPT(Stefan) + New pg_index.indisprimary for primary key tracking(D'Arcy) + New pg_dump option to allow dropping of tables before creation(Brook) + Speedup of row output routines(Tom) + New READ COMMITTED isolation level(Vadim) + New TEMP tables/indexes(Bruce) + Prevent sorting if result is already sorted(Jan) + New memory allocation optimization(Jan) + Allow psql to do \p\g(Bruce) + Allow multiple rule actions(Jan) + Added LIMIT/OFFSET functionality(Jan) + Improve optimizer when joining a large number of tables(Bruce) + New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas) + New intro to backend processing from S. Simkovics' Master's Thesis (Stefan) + Improved int8 support(Ryan Bradetich, Thomas, Tom) + New routines to convert between int8 and text/varchar types(Thomas) + New bushy plans, where meta-tables are joined(Bruce) + Enable right-hand queries by default(Bruce) + Allow reliable maximum number of backends to be set at configure time + (--with-maxbackends and postmaster switch (-N backends))(Tom) + GEQO default now 10 tables because of optimizer speedups(Tom) + Allow NULL=Var for MS-SQL portability(Michael, Bruce) + Modify contrib check_primary_key() so either "automatic" or "dependent"(Anand) + Allow psql \d on a view show query(Ryan) + Speedup for LIKE(Bruce) + Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael) + JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter) + Make % operator have precedence like /(Bruce) + Add new postgres -O option to allow system table structure changes(Bruce) + Update contrib/pginterface/findoidjoins script(Tom) + Major speedup in vacuum of deleted rows with indexes(Vadim) + Allow non-SQL functions to run different versions based on arguments(Tom) + Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida) + Add version number in start-up banners for psql(Masaaki Sakaida) + New contrib/vacuumlo removes large objects not referenced(Peter) + New initialization for table sizes so non-vacuumed tables perform better(Tom) + Improve error messages when a connection is rejected(Tom) + Support for arrays of char() and varchar() fields(Massimo) + Overhaul of hash code to increase reliability and performance(Tom) + Update to PyGreSQL 2.4(D'Arcy) + Changed debug options so -d4 and -d5 produce different node displays(Jan) + New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan) + Better optimization statistics for system table access(Tom) + Better handling of non-default block sizes(Massimo) + Improve GEQO optimizer memory consumption(Tom) + UNION now suppports ORDER BY of columns not in target list(Jan) + Major libpq++ improvements(Vince Vielhaber) + pg_dump now uses -z(ACL's) as default(Bruce) + backend cache, memory speedups(Tom) + have pg_dump do everything in one snapshot transaction(Vadim) + fix for large object memory leakage, fix for pg_dumping(Tom) + INET type now respects netmask for comparisons + Make VACUUM ANALYZE only use a readlock(Vadim) + Allow VIEWs on UNIONS(Jan) + pg_dump now can generate consistent snapshots on active databases(Vadim) + + Source Tree Changes + ------------------- + Improve port matching(Tom) + Portability fixes for SunOS + Add NT/Win32 backend port and enable dynamic loading(Magnus and Daniel Horak) + New port to Cobalt Qube(Mips) running Linux(Tatsuo) + Port to NetBSD/m68k(Mr. Mutsuki Nakajima) + Port to NetBSD/sun3(Mr. Mutsuki Nakajima) + Port to NetBSD/macppc(Toshimi Aoki) + Fix for tcl/tk configuration(Vince) + Removed CURRENT keyword for rule queries(Jan) + NT dynamic loading now works(Daniel Horak) + Add ARM32 support(Andrew McMurry) + Better support for HPUX 11 and Unixware + Improve file handling to be more uniform, prevent file descriptor leak(Tom) + New install commands for plpgsql(Jan) + + + ---------------------------------------------------------------------- + + Release 6.4.2 + + Release date: 1998-12-20 + + The 6.4.1 release was improperly packaged. This also has one additional + bug fix. + + ---------------------------------------------------------------------- + +Migration to version 6.4.2 + + A dump/restore is *not* required for those running 6.4.*. + + ---------------------------------------------------------------------- Changes -------- -Fix for datetime constant problem on some platforms(Thomas) + Fix for datetime constant problem on some platforms(Thomas) + ---------------------------------------------------------------------- - ------------------------------------------------------------------------ - Release 6.4.1 - ------------------------------------------------------------------------ + Release 6.4.1 + Release date: 1998-12-18 -Release 6.4.1 (1998-12-18) + This is basically a cleanup release for 6.4. We have fixed a variety of + problems reported by 6.4 users. -This is basically a cleanup release for 6.4. We have fixed a variety of -problems reported by 6.4 users. + ---------------------------------------------------------------------- -Migration to v6.4.1 +Migration to version 6.4.1 -A dump/restore is not required for those running 6.4. + A dump/restore is *not* required for those running 6.4. + + ---------------------------------------------------------------------- Changes -------- -Add pg_dump -N flag to force double quotes around identifiers. This is - the default(Thomas) -Fix for NOT in where clause causing crash(Bruce) -EXPLAIN VERBOSE coredump fix(Vadim) -Fix shared-library problems on Linux -Fix test for table existance to allow mixed-case and whitespace in - the table name(Thomas) -Fix a couple of pg_dump bugs -Configure matches template/.similar entries better(Tom) -Change builtin function names from SPI_* to spi_* -OR WHERE clause fix(Vadim) -Fixes for mixed-case table names(Billy) -contrib/linux/postgres.init.csh/sh fix(Thomas) -libpq memory overrun fix -SunOS fixes(Tom) -Change exp() behavior to generate error on underflow(Thomas) -pg_dump fixes for memory leak, inheritance constraints, layout change -update pgaccess to 0.93 -Fix prototype for 64-bit platforms -Multi-byte fixes(Tatsuo) -New ecpg man page -Fix memory overruns(Tatsuo) -Fix for lo_import() crash(Bruce) -Better search for install program(Tom) -Timezone fixes(Tom) -HPUX fixes(Tom) -Use implicit type coersion for matching DEFAULT values(Thomas) -Add routines to help with single-byte (internal) character type(Thomas) -Compilation of libpq for Win32 fixes(Magnus) -Upgrade to PyGreSQL 2.2(D'Arcy) - - - - ------------------------------------------------------------------------ - Release 6.4 - ------------------------------------------------------------------------ - - -Release 6.4 (1998-10-30) - -There are many new features and improvements in this release. Thanks to our -developers and maintainers, nearly every aspect of the system has received -some attention since the previous release. Here is a brief, incomplete -summary: - - * Views and rules are now functional thanks to extensive new code in the - rewrite rules system from Jan Wieck. He also wrote a chapter on it for - the Programmer's Guide. - - * Jan also contributed a second procedural language, PL/pgSQL, to go with - the original PL/pgTCL procedural language he contributed last release. - - * We have optional multiple-byte character set support from Tatsuo Iishi - to complement our existing locale support. - - * Client/server communications has been cleaned up, with better support - for asynchronous messages and interrupts thanks to Tom Lane. - - * The parser will now perform automatic type coersion to match arguments - to available operators and functions, and to match columns and - expressions with target columns. This uses a generic mechanism which - supports the type extensibility features of Postgres. There is a new - chapter in the User's Guide which covers this topic. - - * Three new data types have been added. Two types, inet and cidr, support - various forms of IP network, subnet, and machine addressing. There is - now an 8-byte integer type available on some platforms. See the chapter - on data types in the User's Guide for details. A fourth type, serial, - is now supported by the parser as an amalgam of the int4 type, a - sequence, and a unique index. - - * Several more SQL92-compatible syntax features have been added, - including INSERT DEFAULT VALUES - - * The automatic configuration and installation system has received some - attention, and should be more robust for more platforms than it has - ever been. - -Migration to 6.4 - -A dump/restore using pg_dump or pg_dumpall is required for those wishing to -migrate data from any previous release of Postgres. - - -Bug Fixes ---------- -Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) -Remove char2-16 data types, use char/varchar(Darren) -Pqfn not handles a NOTICE message(Anders) -Reduced busywaiting overhead for spinlocks with many backends (dg) -Stuck spinlock detection (dg) -Fix up "ISO-style" timespan decoding and encoding(Thomas) -Fix problem with table drop after rollback of transaction(Vadim) -Change error message and remove non-functional update message(Vadim) -Fix for COPY array checking -Fix for SELECT 1 UNION SELECT NULL -Fix for buffer leaks in large object calls(Pascal) -Change owner from oid to int4 type(Bruce) -Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim() -Fix for shared invalidation cache overflow(Massimo) -Prevent file descriptor leaks in failed COPY's(Bruce) -Fix memory leak in libpgtcl's pg_select(Constantin) -Fix problems with username/passwords over 8 characters(Tom) -Fix problems with handling of asynchronous NOTIFY in backend(Tom) -Fix of many bad system table entries(Tom) - -Enhancements ------------- -Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael) -Show the index used in an EXPLAIN(Zeugswetter) -EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan) -Multi-byte awareness of many data types and functions, via configure(Tatsuo) -New configure --with-mb option(Tatsuo) -New initdb --pgencoding option(Tatsuo) -New createdb -E multibyte option(Tatsuo) -Select version(); now returns PostgreSQL version(Jeroen) -Libpq now allows asynchronous clients(Tom) -Allow cancel from client of backend query(Tom) -Psql now cancels query with Control-C(Tom) -Libpq users need not issue dummy queries to get NOTIFY messages(Tom) -NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom) -PGresult struct now includes associated error message, if any(Tom) -Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas) -Add routines to convert between varchar and bpchar(Thomas) -Add routines to allow sizing of varchar and bpchar into target columns(Thomas) -Add bit flags to support timezonehour and minute in data retrieval(Thomas) -Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas) -Fixes for unary minus parsing with leading spaces(Thomas) -Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas) -Check for and properly ignore FOREIGN KEY column constraints(Thomas) -Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas) -Enable HAVING clause but no fixes elsewhere yet. -Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas) -Save string type if specified for DEFAULT clause handling(Thomas) -Coerce operations involving different data types(Thomas) -Allow some index use for columns of different types(Thomas) -Add capabilities for automatic type conversion(Thomas) -Cleanups for large objects, so file is truncated on open(Peter) -Readline cleanups(Tom) -Allow psql \f \ to make spaces as delimiter(Bruce) -Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce) -Msql compatibility library in /contrib(Aldrin) -Remove the requirement that ORDER/GROUP BY clause identifiers be -included in the target list(David) -Convert columns to match columns in UNION clauses(Thomas) -Remove fork()/exec() and only do fork()(Bruce) -Jdbc cleanups(Peter) -Show backend status on ps command line(only works on some platforms)(Bruce) -Pg_hba.conf now has a sameuser option in the database field -Make lo_unlink take oid param, not int4 -New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce) -Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom) -libpgtcl cleanups(Tom) -Add -error option to libpgtcl's pg_result command(Tom) -New locale patch, see docs/README/locale(Oleg) -Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb) -New contrib/lo code for large object orphan removal(Peter) -New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes -feature, see /doc/README.mb(Tatsuo) -/contrib/noupdate code to revoke update permission on a column -Libpq can now be compiled on win32(Magnus) -Add PQsetdbLogin() in libpq -New 8-byte integer type, checked by configure for OS support(Thomas) -Better support for quoted table/column names(Thomas) -Surround table and column names with double-quotes in pg_dump(Thomas) -PQreset() now works with passwords(Tom) -Handle case of GROUP BY target list column number out of range(David) -Allow UNION in subselects -Add auto-size to screen to \d? commands(Bruce) -Use UNION to show all \d? results in one query(Bruce) -Add \d? field search feature(Bruce) -Pg_dump issues fewer \connect requests(Tom) -Make pg_dump -z flag work better, document it in manual page(Tom) -Add HAVING clause with full support for subselects and unions(Stephan) -Full text indexing routines in contrib/fulltextindex(Maarten) -Transaction ids now stored in shared memory(Vadim) -New PGCLIENTENCODING when issuing COPY command(Tatsuo) -Support for SQL92 syntax "SET NAMES"(Tatsuo) -Support for LATIN2-5(Tatsuo) -Add UNICODE regression test case(Tatsuo) -Lock manager cleanup, new locking modes for LLL(Vadim) -Allow index use with OR clauses(Bruce) -Allows "SELECT NULL ORDER BY 1;" -Explain VERBOSE prints the plan, and now pretty-prints the plan to -the postmaster log file(Bruce) -Add Indices display to \d command(Bruce) -Allow GROUP BY on functions(David) -New pg_class.relkind for large objects(Bruce) -New way to send libpq NOTICE messages to a different location(Tom) -New \w write command to psql(Bruce) -New /contrib/findoidjoins scans oid columns to find join relationships(Bruce) -Allow binary-compatible indices to be considered when checking for valid -indices for restriction clauses containing a constant(Thomas) -New ISBN/ISSN code in /contrib/isbn_issn -Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) -New rewrite system fixes many problems with rules and views(Jan) - * Rules on relations work - * Event qualifications on insert/update/delete work - * New OLD variable to reference CURRENT, CURRENT will be remove in future - * Update rules can reference NEW and OLD in rule qualifications/actions - * Insert/update/delete rules on views work - * Multiple rule actions are now supported, surrounded by parentheses - * Regular users can create views/rules on tables they have RULE permits - * Rules and views inherit the permissions on the creator - * No rules at the column level - * No UPDATE NEW/OLD rules - * New pg_tables, pg_indexes, pg_rules and pg_views system views - * Only a single action on SELECT rules - * Total rewrite overhaul, perhaps for 6.5 - * handle subselects - * handle aggregates on views - * handle insert into select from view works -System indexes are now multi-key(Bruce) -Oidint2, oidint4, and oidname types are removed(Bruce) -Use system cache for more system table lookups(Bruce) -New backend programming language PL/pgSQL in backend/pl(Jan) -New SERIAL data type, auto-creates sequence/index(Thomas) -Enable assert checking without a recompile(Massimo) -User lock enhancements(Massimo) -New setval() command to set sequence value(Massimo) -Auto-remove unix socket file on start-up if no postmaster running(Massimo) -Conditional trace package(Massimo) -New UNLISTEN command(Massimo) -Psql and libpq now compile under win32 using win32.mak(Magnus) -Lo_read no longer stores trailing NULL(Bruce) -Identifiers are now truncated to 31 characters internally(Bruce) -Createuser options now availble on the command line -Code for 64-bit integer supported added, configure tested, int8 type(Thomas) -Prevent file descriptor leaf from failed COPY(Bruce) -New pg_upgrade command(Bruce) -Updated /contrib directories(Massimo) -New CREATE TABLE DEFAULT VALUES statement available(Thomas) -New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas) -New DECLARE and FETCH feature(Thomas) -libpq's internal structures now not exported(Tom) -Allow up to 8 key indexes(Bruce) -Remove ARCHIVE keyword, that is no longer used(Thomas) -pg_dump -n flag to supress quotes around indentifiers -disable system columns for views(Jan) -new INET and CIDR types for network addresses(TomH, Paul) -no more double quotes in psql output -pg_dump now dumps views(Terry) -new SET QUERY_LIMIT(Tatsuo,Jan) - -Source Tree Changes -------------------- -/contrib cleanup(Jun) -Inline some small functions called for every row(Bruce) -Alpha/linux fixes -Hp/UX cleanups(Tom) -Multi-byte regression tests(Soonmyung.) -Remove --disabled options from configure -Define PGDOC to use POSTGRESDIR by default -Make regression optional -Remove extra braces code to pgindent(Bruce) -Add bsdi shared library support(Bruce) -New --without-CXX support configure option(Brook) -New FAQ_CVS -Update backend flowchart in tools/backend(Bruce) -Change atttypmod from int16 to int32(Bruce, Tom) -Getrusage() fix for platforms that do not have it(Tom) -Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page -NS32K platform fixes(Phil Nelson, John Buller) -Sco 7/UnixWare 2.x fixes(Billy,others) -Sparc/Solaris 2.5 fixes(Ryan) -Pgbuiltin.3 is obsolete, move to doc files(Thomas) -Even more documention(Thomas) -Nextstep support(Jacek) -Aix support(David) -pginterface manual page(Bruce) -shared libraries all have version numbers -merged all OS-specific shared library defines into one file -smarter TCL/TK configuration checking(Billy) -smarter perl configuration(Brook) -configure uses supplied install-sh if no install script found(Tom) -new Makefile.shlib for shared library configuration(Tom) - - - - ------------------------------------------------------------------------ - Release 6.3.2 - ------------------------------------------------------------------------ - - -Release 6.3.2 (1998-04-07) - -This is a bugfix release for 6.3.x. Refer to the release notes for v6.3 for -a more complete summary of new features. - -Summary: - - * Repairs automatic configuration support for some platforms, including - Linux, from breakage inadvertently introduced in v6.3.1. - - * Correctly handles function calls on the left side of BETWEEN and LIKE - clauses. - -A dump/restore is NOT required for those running 6.3 or 6.3.1. A 'make -distclean', 'make', and 'make install' is all that is required. This last -step should be performed while the postmaster is not running. You should -re-link any custom applications that use Postgres libraries. - -For upgrades from pre-v6.3 installations, refer to the installation and -migration instructions for v6.3. + Add pg_dump -N flag to force double quotes around identifiers. This is + the default(Thomas) + Fix for NOT in where clause causing crash(Bruce) + EXPLAIN VERBOSE coredump fix(Vadim) + Fix shared-library problems on Linux + Fix test for table existance to allow mixed-case and whitespace in + the table name(Thomas) + Fix a couple of pg_dump bugs + Configure matches template/.similar entries better(Tom) + Change builtin function names from SPI_* to spi_* + OR WHERE clause fix(Vadim) + Fixes for mixed-case table names(Billy) + contrib/linux/postgres.init.csh/sh fix(Thomas) + libpq memory overrun fix + SunOS fixes(Tom) + Change exp() behavior to generate error on underflow(Thomas) + pg_dump fixes for memory leak, inheritance constraints, layout change + update pgaccess to 0.93 + Fix prototype for 64-bit platforms + Multibyte fixes(Tatsuo) + New ecpg man page + Fix memory overruns(Tatsuo) + Fix for lo_import() crash(Bruce) + Better search for install program(Tom) + Timezone fixes(Tom) + HPUX fixes(Tom) + Use implicit type coercion for matching DEFAULT values(Thomas) + Add routines to help with single-byte (internal) character type(Thomas) + Compilation of libpq for Win32 fixes(Magnus) + Upgrade to PyGreSQL 2.2(D'Arcy) + + ---------------------------------------------------------------------- + + Release 6.4 + + Release date: 1998-10-30 + + There are *many* new features and improvements in this release. Thanks to + our developers and maintainers, nearly every aspect of the system has + received some attention since the previous release. Here is a brief, + incomplete summary: + + * Views and rules are now functional thanks to extensive new code in the + rewrite rules system from Jan Wieck. He also wrote a chapter on it for + the Programmer's Guide. + + * Jan also contributed a second procedural language, PL/pgSQL, to go + with the original PL/pgTCL procedural language he contributed last + release. + + * We have optional multiple-byte character set support from Tatsuo Iishi + to complement our existing locale support. + + * Client/server communications has been cleaned up, with better support + for asynchronous messages and interrupts thanks to Tom Lane. + + * The parser will now perform automatic type coercion to match arguments + to available operators and functions, and to match columns and + expressions with target columns. This uses a generic mechanism which + supports the type extensibility features of PostgreSQL. There is a new + chapter in the User's Guide which covers this topic. + + * Three new data types have been added. Two types, inet and cidr, + support various forms of IP network, subnet, and machine addressing. + There is now an 8-byte integer type available on some platforms. See + the chapter on data types in the User's Guide for details. A fourth + type, serial, is now supported by the parser as an amalgam of the int4 + type, a sequence, and a unique index. + + * Several more SQL92-compatible syntax features have been added, + including "INSERT DEFAULT VALUES" + + * The automatic configuration and installation system has received some + attention, and should be more robust for more platforms than it has + ever been. + + ---------------------------------------------------------------------- + +Migration to version 6.4 + + A dump/restore using pg_dump or pg_dumpall is required for those wishing + to migrate data from any previous release of PostgreSQL. + + ---------------------------------------------------------------------- Changes -------- -Configure detection improvements for tcl/tk(Brook Milligan, Alvin) -Manual page improvements(Bruce) -BETWEEN and LIKE fix(Thomas) -fix for psql \connect used by pg_dump(Oliver Elphick) -New odbc driver -pgaccess, version 0.86 -qsort removed, now uses libc version, cleanups(Jeroen) -fix for buffer over-runs detected(Maurice Gittens) -fix for buffer overrun in libpgtcl(Randy Kunkee) -fix for UNION with DISTINCT or ORDER BY(Bruce) -gettimeofday configure check(Doug Winterburn) -Fix "indexes not used" bug(Vadim) -docs additions(Thomas) -Fix for backend memory leak(Bruce) -libreadline cleanup(Erwan MAS) -Remove DISTDIR(Bruce) -Makefile dependency cleanup(Jeroen van Vianen) -ASSERT fixes(Bruce) + Bug Fixes + --------- + Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) + Remove char2-16 data types, use char/varchar(Darren) + Pqfn not handles a NOTICE message(Anders) + Reduced busywaiting overhead for spinlocks with many backends (dg) + Stuck spinlock detection (dg) + Fix up "ISO-style" timespan decoding and encoding(Thomas) + Fix problem with table drop after rollback of transaction(Vadim) + Change error message and remove non-functional update message(Vadim) + Fix for COPY array checking + Fix for SELECT 1 UNION SELECT NULL + Fix for buffer leaks in large object calls(Pascal) + Change owner from oid to int4 type(Bruce) + Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim() + Fix for shared invalidation cache overflow(Massimo) + Prevent file descriptor leaks in failed COPY's(Bruce) + Fix memory leak in libpgtcl's pg_select(Constantin) + Fix problems with username/passwords over 8 characters(Tom) + Fix problems with handling of asynchronous NOTIFY in backend(Tom) + Fix of many bad system table entries(Tom) + + Enhancements + ------------ + Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael) + Show the index used in an EXPLAIN(Zeugswetter) + EXPLAIN invokes rule system and shows plan(s) for rewritten queries(Jan) + Multibyte awareness of many data types and functions, via configure(Tatsuo) + New configure --with-mb option(Tatsuo) + New initdb --pgencoding option(Tatsuo) + New createdb -E multibyte option(Tatsuo) + Select version(); now returns PostgreSQL version(Jeroen) + Libpq now allows asynchronous clients(Tom) + Allow cancel from client of backend query(Tom) + Psql now cancels query with Control-C(Tom) + Libpq users need not issue dummy queries to get NOTIFY messages(Tom) + NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom) + PGresult struct now includes associated error message, if any(Tom) + Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas) + Add routines to convert between varchar and bpchar(Thomas) + Add routines to allow sizing of varchar and bpchar into target columns(Thomas) + Add bit flags to support timezonehour and minute in data retrieval(Thomas) + Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas) + Fixes for unary minus parsing with leading spaces(Thomas) + Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas) + Check for and properly ignore FOREIGN KEY column constraints(Thomas) + Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas) + Enable HAVING clause but no fixes elsewhere yet. + Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas) + Save string type if specified for DEFAULT clause handling(Thomas) + Coerce operations involving different data types(Thomas) + Allow some index use for columns of different types(Thomas) + Add capabilities for automatic type conversion(Thomas) + Cleanups for large objects, so file is truncated on open(Peter) + Readline cleanups(Tom) + Allow psql \f \ to make spaces as delimiter(Bruce) + Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce) + Msql compatibility library in /contrib(Aldrin) + Remove the requirement that ORDER/GROUP BY clause identifiers be + included in the target list(David) + Convert columns to match columns in UNION clauses(Thomas) + Remove fork()/exec() and only do fork()(Bruce) + Jdbc cleanups(Peter) + Show backend status on ps command line(only works on some platforms)(Bruce) + Pg_hba.conf now has a sameuser option in the database field + Make lo_unlink take oid param, not int4 + New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce) + Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom) + libpgtcl cleanups(Tom) + Add -error option to libpgtcl's pg_result command(Tom) + New locale patch, see docs/README/locale(Oleg) + Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb) + New contrib/lo code for large object orphan removal(Peter) + New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes + feature, see /doc/README.mb(Tatsuo) + /contrib/noupdate code to revoke update permission on a column + Libpq can now be compiled on win32(Magnus) + Add PQsetdbLogin() in libpq + New 8-byte integer type, checked by configure for OS support(Thomas) + Better support for quoted table/column names(Thomas) + Surround table and column names with double-quotes in pg_dump(Thomas) + PQreset() now works with passwords(Tom) + Handle case of GROUP BY target list column number out of range(David) + Allow UNION in subselects + Add auto-size to screen to \d? commands(Bruce) + Use UNION to show all \d? results in one query(Bruce) + Add \d? field search feature(Bruce) + Pg_dump issues fewer \connect requests(Tom) + Make pg_dump -z flag work better, document it in manual page(Tom) + Add HAVING clause with full support for subselects and unions(Stephan) + Full text indexing routines in contrib/fulltextindex(Maarten) + Transaction ids now stored in shared memory(Vadim) + New PGCLIENTENCODING when issuing COPY command(Tatsuo) + Support for SQL92 syntax "SET NAMES"(Tatsuo) + Support for LATIN2-5(Tatsuo) + Add UNICODE regression test case(Tatsuo) + Lock manager cleanup, new locking modes for LLL(Vadim) + Allow index use with OR clauses(Bruce) + Allows "SELECT NULL ORDER BY 1;" + Explain VERBOSE prints the plan, and now pretty-prints the plan to + the postmaster log file(Bruce) + Add indexes display to \d command(Bruce) + Allow GROUP BY on functions(David) + New pg_class.relkind for large objects(Bruce) + New way to send libpq NOTICE messages to a different location(Tom) + New \w write command to psql(Bruce) + New /contrib/findoidjoins scans oid columns to find join relationships(Bruce) + Allow binary-compatible indexes to be considered when checking for valid + Indexes for restriction clauses containing a constant(Thomas) + New ISBN/ISSN code in /contrib/isbn_issn + Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) + New rewrite system fixes many problems with rules and views(Jan) + * Rules on relations work + * Event qualifications on insert/update/delete work + * New OLD variable to reference CURRENT, CURRENT will be remove in future + * Update rules can reference NEW and OLD in rule qualifications/actions + * Insert/update/delete rules on views work + * Multiple rule actions are now supported, surrounded by parentheses + * Regular users can create views/rules on tables they have RULE permits + * Rules and views inherit the permissions on the creator + * No rules at the column level + * No UPDATE NEW/OLD rules + * New pg_tables, pg_indexes, pg_rules and pg_views system views + * Only a single action on SELECT rules + * Total rewrite overhaul, perhaps for 6.5 + * handle subselects + * handle aggregates on views + * handle insert into select from view works + System indexes are now multi-key(Bruce) + Oidint2, oidint4, and oidname types are removed(Bruce) + Use system cache for more system table lookups(Bruce) + New backend programming language PL/pgSQL in backend/pl(Jan) + New SERIAL data type, auto-creates sequence/index(Thomas) + Enable assert checking without a recompile(Massimo) + User lock enhancements(Massimo) + New setval() command to set sequence value(Massimo) + Auto-remove unix socket file on start-up if no postmaster running(Massimo) + Conditional trace package(Massimo) + New UNLISTEN command(Massimo) + Psql and libpq now compile under win32 using win32.mak(Magnus) + Lo_read no longer stores trailing NULL(Bruce) + Identifiers are now truncated to 31 characters internally(Bruce) + Createuser options now availble on the command line + Code for 64-bit integer supported added, configure tested, int8 type(Thomas) + Prevent file descriptor leaf from failed COPY(Bruce) + New pg_upgrade command(Bruce) + Updated /contrib directories(Massimo) + New CREATE TABLE DEFAULT VALUES statement available(Thomas) + New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas) + New DECLARE and FETCH feature(Thomas) + libpq's internal structures now not exported(Tom) + Allow up to 8 key indexes(Bruce) + Remove ARCHIVE keyword, that is no longer used(Thomas) + pg_dump -n flag to supress quotes around indentifiers + disable system columns for views(Jan) + new INET and CIDR types for network addresses(TomH, Paul) + no more double quotes in psql output + pg_dump now dumps views(Terry) + new SET QUERY_LIMIT(Tatsuo,Jan) + + Source Tree Changes + ------------------- + /contrib cleanup(Jun) + Inline some small functions called for every row(Bruce) + Alpha/linux fixes + Hp/UX cleanups(Tom) + Multibyte regression tests(Soonmyung.) + Remove --disabled options from configure + Define PGDOC to use POSTGRESDIR by default + Make regression optional + Remove extra braces code to pgindent(Bruce) + Add bsdi shared library support(Bruce) + New --without-CXX support configure option(Brook) + New FAQ_CVS + Update backend flowchart in tools/backend(Bruce) + Change atttypmod from int16 to int32(Bruce, Tom) + Getrusage() fix for platforms that do not have it(Tom) + Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page + NS32K platform fixes(Phil Nelson, John Buller) + Sco 7/UnixWare 2.x fixes(Billy,others) + Sparc/Solaris 2.5 fixes(Ryan) + Pgbuiltin.3 is obsolete, move to doc files(Thomas) + Even more documention(Thomas) + Nextstep support(Jacek) + Aix support(David) + pginterface manual page(Bruce) + shared libraries all have version numbers + merged all OS-specific shared library defines into one file + smarter TCL/TK configuration checking(Billy) + smarter perl configuration(Brook) + configure uses supplied install-sh if no install script found(Tom) + new Makefile.shlib for shared library configuration(Tom) + + ---------------------------------------------------------------------- + + Release 6.3.2 + + Release date: 1998-04-07 + + This is a bug-fix release for 6.3.x. Refer to the release notes for + version 6.3 for a more complete summary of new features. + + Summary: + + * Repairs automatic configuration support for some platforms, including + Linux, from breakage inadvertently introduced in version 6.3.1. + + * Correctly handles function calls on the left side of BETWEEN and LIKE + clauses. + + A dump/restore is NOT required for those running 6.3 or 6.3.1. A make + distclean, make, and make install is all that is required. This last step + should be performed while the postmaster is not running. You should + re-link any custom applications that use PostgreSQL libraries. + + For upgrades from pre-6.3 installations, refer to the installation and + migration instructions for version 6.3. + + ---------------------------------------------------------------------- + +Changes + Configure detection improvements for tcl/tk(Brook Milligan, Alvin) + Manual page improvements(Bruce) + BETWEEN and LIKE fix(Thomas) + fix for psql \connect used by pg_dump(Oliver Elphick) + New odbc driver + pgaccess, version 0.86 + qsort removed, now uses libc version, cleanups(Jeroen) + fix for buffer over-runs detected(Maurice Gittens) + fix for buffer overrun in libpgtcl(Randy Kunkee) + fix for UNION with DISTINCT or ORDER BY(Bruce) + gettimeofday configure check(Doug Winterburn) + Fix "indexes not used" bug(Vadim) + docs additions(Thomas) + Fix for backend memory leak(Bruce) + libreadline cleanup(Erwan MAS) + Remove DISTDIR(Bruce) + Makefile dependency cleanup(Jeroen van Vianen) + ASSERT fixes(Bruce) + - ------------------------------------------------------------------------ - Release 6.3.1 - ------------------------------------------------------------------------ + ---------------------------------------------------------------------- + Release 6.3.1 -Release 6.3.1 (1998-03-23) + Release date: 1998-03-23 -Summary: + Summary: - * Additional support for multi-byte character sets. + * Additional support for multibyte character sets. - * Repair byte ordering for mixed-endian clients and servers. + * Repair byte ordering for mixed-endian clients and servers. - * Minor updates to allowed SQL syntax. + * Minor updates to allowed SQL syntax. - * Improvements to the configuration autodetection for installation. + * Improvements to the configuration autodetection for installation. -A dump/restore is NOT required for those running 6.3. A 'make distclean', -'make', and 'make install' is all that is required. This last step should be -performed while the postmaster is not running. You should re-link any custom -applications that use Postgres libraries. + A dump/restore is NOT required for those running 6.3. A make distclean, + make, and make install is all that is required. This last step should be + performed while the postmaster is not running. You should re-link any + custom applications that use PostgreSQL libraries. -For upgrades from pre-v6.3 installations, refer to the installation and -migration instructions for v6.3. + For upgrades from pre-6.3 installations, refer to the installation and + migration instructions for version 6.3. + ---------------------------------------------------------------------- Changes -------- -ecpg cleanup/fixes, now version 1.1(Michael Meskes) -pg_user cleanup(Bruce) -large object fix for pg_dump and tclsh (alvin) -LIKE fix for multiple adjacent underscores -fix for redefining builtin functions(Thomas) -ultrix4 cleanup -upgrade to pg_access 0.83 -updated CLUSTER manual page -multi-byte character set support, see doc/README.mb(Tatsuo) -configure --with-pgport fix -pg_ident fix -big-endian fix for backend communications(Kataoka) -SUBSTR() and substring() fix(Jan) -several jdbc fixes(Peter) -libpgtcl improvements, see libptcl/README(Randy Kunkee) -Fix for "Datasize = 0" error(Vadim) -Prevent \do from wrapping(Bruce) -Remove duplicate Russian character set entries -Sunos4 cleanup -Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas) -CREATE SEQUENCE options to allow a negative integer(Thomas) -Add "PASSWORD" as an allowed column identifier(Thomas) -Add checks for UNION target fields(Bruce) -Fix Alpha port(Dwayne Bailey) -Fix for text arrays containing quotes(Doug Gibson) -Solaris compile fix(Albert Chin-A-Young) -Better identify tcl and tk libs and includes(Bruce) - - - - ------------------------------------------------------------------------ - Release 6.3 - ------------------------------------------------------------------------ - - -Release 6.3 (1998-03-01) - -There are many new features and improvements in this release. Here is a -brief, incomplete summary: - - * Many new SQL features, including full SQL92 subselect capability - (everything is here but target-list subselects). - - * Support for client-side environment variables to specify time zone and - date style. - - * Socket interface for client/server connection. This is the default now - so you may need to start postmaster with the "-i" flag. - - * Better password authorization mechanisms. Default table permissions - have changed. - - * Old-style "time travel" has been removed. Performance has been - improved. + + ecpg cleanup/fixes, now version 1.1(Michael Meskes) + pg_user cleanup(Bruce) + large object fix for pg_dump and tclsh (alvin) + LIKE fix for multiple adjacent underscores + fix for redefining builtin functions(Thomas) + ultrix4 cleanup + upgrade to pg_access 0.83 + updated CLUSTER manual page + multibyte character set support, see doc/README.mb(Tatsuo) + configure --with-pgport fix + pg_ident fix + big-endian fix for backend communications(Kataoka) + SUBSTR() and substring() fix(Jan) + several jdbc fixes(Peter) + libpgtcl improvements, see libptcl/README(Randy Kunkee) + Fix for "Datasize = 0" error(Vadim) + Prevent \do from wrapping(Bruce) + Remove duplicate Russian character set entries + Sunos4 cleanup + Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas) + CREATE SEQUENCE options to allow a negative integer(Thomas) + Add "PASSWORD" as an allowed column identifier(Thomas) + Add checks for UNION target fields(Bruce) + Fix Alpha port(Dwayne Bailey) + Fix for text arrays containing quotes(Doug Gibson) + Solaris compile fix(Albert Chin-A-Young) + Better identify tcl and tk libs and includes(Bruce) + + + ---------------------------------------------------------------------- + + Release 6.3 + + Release date: 1998-03-01 + + There are *many* new features and improvements in this release. Here is a + brief, incomplete summary: + + * Many new SQL features, including full SQL92 subselect capability + (everything is here but target-list subselects). + + * Support for client-side environment variables to specify time zone and + date style. + + * Socket interface for client/server connection. This is the default now + so you may need to start postmaster with the "-i" flag. + + * Better password authorization mechanisms. Default table permissions + have changed. + + * Old-style time travel has been removed. Performance has been improved. Note: Bruce Momjian wrote the following notes to introduce the new release. -There are some general 6.3 issues that I want to mention. These are only the -big items that can not be described in one sentence. A review of the -detailed changes list is still needed. - -First, we now have subselects. Now that we have them, I would like to -mention that without subselects, SQL is a very limited language. Subselects -are a major feature, and you should review your code for places where -subselects provide a better solution for your queries. I think you will find -that there are more uses for subselects than you may think. Vadim has put us -on the big SQL map with subselects, and fully functional ones too. The only -thing you can't do with subselects is to use them in the target list. - -Second, 6.3 uses unix domain sockets rather than TCP/IP by default. To -enable connections from other machines, you have to use the new postmaster --i option, and of course edit pg_hba.conf. Also, for this reason, the format -of pg_hba.conf has changed. - -Third, char() fields will now allow faster access than varchar() or text. -Specifically, the text and varchar() have a penalty for access to any -columns after the first column of this type. char() used to also have this -access penalty, but it no longer does. This may suggest that you redesign -some of your tables, especially if you have short character columns that you -have defined as varchar() or text. This and other changes make 6.3 even -faster than earlier releases. - -We now have passwords definable independent of any Unix file. There are new -SQL USER commands. See the pg_hba.conf manual page for more information. -There is a new table, pg_shadow, which is used to store user information and -user passwords, and it by default only SELECT-able by the postgres -super-user. pg_user is now a view of pg_shadow, and is SELECT-able by -PUBLIC. You should keep using pg_user in your application without changes. - -User-created tables now no longer have SELECT permission to PUBLIC by -default. This was done because the ANSI standard requires it. You can of -course GRANT any permissions you want after the table is created. System -tables continue to be SELECT-able by PUBLIC. - -We also have real deadlock detection code. No more sixty-second timeouts. -And the new locking code implements a FIFO better, so there should be less -resource starvation during heavy use. - -Many complaints have been made about inadequate documenation in previous -releases. Thomas has put much effort into many new manuals for this release. -Check out the doc/ directory. - -For performance reasons, time travel is gone, but can be implemented using -triggers (see pgsql/contrib/spi/README). Please check out the new \d command -for types, operators, etc. Also, views have their own permissions now, not -based on the underlying tables, so permissions on them have to be set -separately. Check /pgsql/interfaces for some new ways to talk to Postgres. - -This is the first release that really required an explanation for existing -users. In many ways, this was necessary because the new release removes many -limitations, and the work-arounds people were using are no longer needed. - -Migration to v6.3 - -A dump/restore using pg_dump or pg_dumpall is required for those wishing to -migrate data from any previous release of Postgres. - - -Bug Fixes ---------- -Fix binary cursors broken by MOVE implementation(Vadim) -Fix for tcl library crash(Jan) -Fix for array handling, from Gerhard Hintermayer -Fix acl error, and remove duplicate pqtrace(Bruce) -Fix psql \e for empty file(Bruce) -Fix for textcat on varchar() fields(Bruce) -Fix for DBT Sendproc (Zeugswetter Andres) -Fix vacuum analyze syntax problem(Bruce) -Fix for international identifiers(Tatsuo) -Fix aggregates on inherited tables(Bruce) -Fix substr() for out-of-bounds data -Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce) -Fix notty output to show status result. -q option still turns it off(Bruce) -Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce) -Fix cluster(Bruce) -Fix for PQtrace start/stop several times(Bruce) -Fix a variety of locking problems like newer lock waiters getting - lock before older waiters, and having readlock people not share - locks if a writer is waiting for a lock, and waiting writers not - getting priority over waiting readers(Bruce) -Fix crashes in psql when executing queries from external files(James) -Fix problem with multiple order by columns, with the first one having - NULL values(Jeroen) -Use correct hash table support functions for float8 and int4(Thomas) -Re-enable JOIN= option in CREATE OPERATOR statement (Thomas) -Change precedence for boolean operators to match expected behavior(Thomas) -Generate elog(ERROR) on over-large integer(Bruce) -Allow multiple-argument functions in constraint clauses(Thomas) -Check boolean input literals for 'true','false','yes','no','1','0' - and throw elog(ERROR) if unrecognized(Thomas) -Major large objects fix -Fix for GROUP BY showing duplicates(Vadim) -Fix for index scans in MergeJion(Vadim) - -Enhancements ------------- -Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas) -New User Manual(Thomas, others) -Speedup by inlining some frequently-called functions -Real deadlock detection, no more timeouts(Bruce) -Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, - CURRENT_USER(Thomas) -Modify constraint syntax to be SQL92-compliant(Thomas) -Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas) -Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas) -Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas) -Allow Postgres-style casting ("::") of non-constants(Thomas) -Add support for SQL3 TRUE and FALSE boolean constants(Thomas) -Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas) -Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas) -Allow SQL92 delimited identifiers(Thomas) -Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas) -Support SQL92 syntax for type coercion of literal strings - (e.g. "DATETIME 'now'")(Thomas) -Add conversions for int2, int4, and OID types to and from text(Thomas) -Use shared lock when building indices(Vadim) -Free memory allocated for an user query inside transaction block after - this query is done, was turned off in <= 6.2.1(Vadim) -New SQL statement CREATE PROCEDURAL LANGUAGE(Jan) -New Postgres Procedural Language (PL) backend interface(Jan) -Rename pg_dump -H option to -h(Bruce) -Add Java support for passwords, European dates(Peter) -Use indices for LIKE and ~, !~ operations(Bruce) -Add hash functions for datetime and timespan(Thomas) -Time Travel removed(Vadim, Bruce) -Add paging for \d and \z, and fix \i(Bruce) -Add Unix domain socket support to backend and to frontend library(Goran) -Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas) -Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas) -Augment support for SQL92 SET TIME ZONE...(Thomas) -SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas) -Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas) -Enable SET TIME ZONE using TZ environment variable(Thomas) -Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas) -Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO - frontend library initialization environment variables(Thomas) -Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas) -Add pg_description table for info on tables, columns, operators, types, and - aggregates(Bruce) -Increase 16 char limit on system table/index names to 32 characters(Bruce) -Rename system indices(Bruce) -Add 'GERMAN' option to SET DATESTYLE(Thomas) -Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas) -Allow fractional values for delta times (e.g. '2.5 days')(Thomas) -Validate numeric input more carefully for delta times(Thomas) -Implement day of year as possible input to date_part()(Thomas) -Define timespan_finite() and text_timespan() functions(Thomas) -Remove archive stuff(Bruce) -Allow for a pg_password authentication database that is separate from - the system password file(Todd) -Dump ACLs, GRANT, REVOKE permissions(Matt) -Define text, varchar, and bpchar string length functions(Thomas) -Fix Query handling for inheritance, and cost computations(Bruce) -Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas) -Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas) -Implement UNIONs for SELECT(Bruce) -Add UNION, GROUP, DISTINCT to INSERT(Bruce) -varchar() stores only necessary bytes on disk(Bruce) -Fix for BLOBs(Peter) -Mega-Patch for JDBC...see README_6.3 for list of changes(Peter) -Remove unused "option" from PQconnectdb() -New LOCK command and lock manual page describing deadlocks(Bruce) -Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce) -Enhance psql \z to show sequences(Bruce) -Show NOT NULL and DEFAULT in psql \d table(Bruce) -New psql .psqlrc file start-up(Andrew) -Modify sample start-up script in contrib/linux to show syslog(Thomas) -New types for IP and MAC addresses in contrib/ip_and_mac(TomH) -Unix system time conversions with date/time types in contrib/unixdate(Thomas) -Update of contrib stuff(Massimo) -Add Unix socket support to DBD::Pg(Goran) -New python interface (PyGreSQL 2.0)(D'Arcy) -New frontend/backend protocol has a version number, network byte order(Phil) -Security features in pg_hba.conf enhanced and documented, many cleanups(Phil) -CHAR() now faster access than VARCHAR() or TEXT -ecpg embedded SQL preprocessor -Reduce system column overhead(Vadmin) -Remove pg_time table(Vadim) -Add pg_type attribute to identify types that need length (bpchar, varchar) -Add report of offending line when COPY command fails -Allow VIEW permissions to be set separately from the underlying tables. - For security, use GRANT/REVOKE on views as appropriate(Jan) -Tables now have no default GRANT SELECT TO PUBLIC. You must - explicitly grant such permissions. -Clean up tutorial examples(Darren) - -Source Tree Changes -------------------- -Add new html development tools, and flow chart in /tools/backend -Fix for SCO compiles -Stratus computer port Robert Gillies -Added support for shlib for BSD44_derived & i386_solaris -Make configure more automated(Brook) -Add script to check regression test results -Break parser functions into smaller files, group together(Bruce) -Rename heap_create to heap_create_and_catalog, rename heap_creatr - to heap_create()(Bruce) -Sparc/Linux patch for locking(TomS) -Remove PORTNAME and reorganize port-specific stuff(Marc) -Add optimizer README file(Bruce) -Remove some recursion in optimizer and clean up some code there(Bruce) -Fix for NetBSD locking(Henry) -Fix for libptcl make(Tatsuo) -AIX patch(Darren) -Change IS TRUE, IS FALSE, ... to expressions using "=" rather than - function calls to istrue() or isfalse() to allow optimization(Thomas) -Various fixes NetBSD/Sparc related(TomH) -Alpha linux locking(Travis,Ryan) -Change elog(WARN) to elog(ERROR)(Bruce) -FAQ for FreeBSD(Marc) -Bring in the PostODBC source tree as part of our standard distribution(Marc) -A minor patch for HP/UX 10 vs 9(Stan) -New pg_attribute.atttypmod for type-specific info like varchar length(Bruce) -Unixware patches(Billy) -New i386 'lock' for spin lock asm(Billy) -Support for multiplexed backends is removed -Start an OpenBSD port -Start an AUX port -Start a Cygnus port -Add string functions to regression suite(Thomas) -Expand a few function names formerly truncated to 16 characters(Thomas) -Remove un-needed malloc() calls and replace with palloc()(Bruce) - - - - ------------------------------------------------------------------------ - Release 6.2.1 - ------------------------------------------------------------------------ - - -Release 6.2.1 (1997-10-17) - -This is a bug-fix and usability release on v6.2. - -Summary: - - * Allow strings to span lines, per SQL92. - - * Include example trigger function for inserting user names on table - updates. - -This is a minor bug-fix release on v6.2. For upgrades from pre-v6.2 systems, -a full dump/reload is required. Refer to the v6.2 release notes for -instructions. - -Migration from v6.2 to v6.2.1 - -This is a minor bug-fix release. A dump/reload is not required from v6.2, -but is required from any release prior to v6.2. - -In upgrading from v6.2, if you choose to dump/reload you will find that -avg(money) is now calculated correctly. All other bug fixes take effect upon -updating the executables. - -Another way to avoid dump/reload is to use the following SQL command from -psql to update the existing system table: - - update pg_aggregate set aggfinalfn = 'cash_div_flt8' - where aggname = 'avg' and aggbasetype = 790; - -This will need to be done to every existing database, including template1. - + There are some general 6.3 issues that I want to mention. These are only + the big items that can not be described in one sentence. A review of the + detailed changes list is still needed. + + First, we now have subselects. Now that we have them, I would like to + mention that without subselects, SQL is a very limited language. + Subselects are a major feature, and you should review your code for places + where subselects provide a better solution for your queries. I think you + will find that there are more uses for subselects than you may think. + Vadim has put us on the big SQL map with subselects, and fully functional + ones too. The only thing you can't do with subselects is to use them in + the target list. + + Second, 6.3 uses Unix domain sockets rather than TCP/IP by default. To + enable connections from other machines, you have to use the new postmaster + -i option, and of course edit "pg_hba.conf". Also, for this reason, the + format of "pg_hba.conf" has changed. + + Third, char() fields will now allow faster access than varchar() or text. + Specifically, the text and varchar() have a penalty for access to any + columns after the first column of this type. char() used to also have this + access penalty, but it no longer does. This may suggest that you redesign + some of your tables, especially if you have short character columns that + you have defined as varchar() or text. This and other changes make 6.3 + even faster than earlier releases. + + We now have passwords definable independent of any Unix file. There are + new SQL USER commands. See the Administrator's Guide for more information. + There is a new table, pg_shadow, which is used to store user information + and user passwords, and it by default only SELECT-able by the postgres + super-user. pg_user is now a view of pg_shadow, and is SELECT-able by + PUBLIC. You should keep using pg_user in your application without changes. + + User-created tables now no longer have SELECT permission to PUBLIC by + default. This was done because the ANSI standard requires it. You can of + course GRANT any permissions you want after the table is created. System + tables continue to be SELECT-able by PUBLIC. + + We also have real deadlock detection code. No more sixty-second timeouts. + And the new locking code implements a FIFO better, so there should be less + resource starvation during heavy use. + + Many complaints have been made about inadequate documentation in previous + releases. Thomas has put much effort into many new manuals for this + release. Check out the doc/ directory. + + For performance reasons, time travel is gone, but can be implemented using + triggers (see "pgsql/contrib/spi/README"). Please check out the new \d + command for types, operators, etc. Also, views have their own permissions + now, not based on the underlying tables, so permissions on them have to be + set separately. Check "/pgsql/interfaces" for some new ways to talk to + PostgreSQL. + + This is the first release that really required an explanation for existing + users. In many ways, this was necessary because the new release removes + many limitations, and the work-arounds people were using are no longer + needed. + + ---------------------------------------------------------------------- + +Migration to version 6.3 + + A dump/restore using pg_dump or pg_dumpall is required for those wishing + to migrate data from any previous release of PostgreSQL. + + ---------------------------------------------------------------------- Changes -------- -Allow TIME and TYPE column names(Thomas) -Allow larger range of true/false as boolean values(Thomas) -Support output of "now" and "current"(Thomas) -Handle DEFAULT with INSERT of NULL properly(Vadim) -Fix for relation reference counts problem in buffer manager(Vadim) -Allow strings to span lines, like ANSI(Thomas) -Fix for backward cursor with ORDER BY(Vadim) -Fix avg(cash) computation(Thomas) -Fix for specifying a column twice in ORDER/GROUP BY(Vadim) -Documented new libpq function to return affected rows, PQcmdTuples(Bruce) -Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan) - - - - ------------------------------------------------------------------------ - Release 6.2 - ------------------------------------------------------------------------ - - -Release 6.2 (1997-10-02) - - -A dump/restore is required for those wishing to migrate data from previous -releases of Postgres. - -Migration from v6.1 to v6.2 - -This migration requires a complete dump of the 6.1 database and a restore of -the database in 6.2. - -Note that the pg_dump and pg_dumpall utility from 6.2 should be used to dump -the 6.1 database. - -Migration from v1.x to v6.2 - -Those migrating from earlier 1.* releases should first upgrade to 1.09 -because the COPY output format was improved from the 1.02 release. - - -Bug Fixes ---------- -Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce) -Fix compile errors on overflow due to shifts, unsigned, and bad prototypes - from Solaris(Diab Jerius) -Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas) -Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas) -Catch non-functional delete attempts(Vadim) -Change time function names to be more consistent(Michael Reifenberg) -Check for zero divides(Michael Reifenberg) -Fix very old bug which made tuples changed/inserted by a commnd - visible to the command itself (so we had multiple update of - updated tuples, etc)(Vadim) -Fix for SELECT null, 'fail' FROM pg_am (Patrick) -SELECT NULL as EMPTY_FIELD now allowed(Patrick) -Remove un-needed signal stuff from contrib/pginterface -Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim) -Fix time_cmp function (Vadim) -Fix handling of functions with non-attribute first argument in - WHERE clauses (Vadim) -Fix GROUP BY when order of entries is different from order - in target list (Vadim) -Fix pg_dump for aggregates without sfunc1 (Vadim) - -Enhancements ------------- -Default genetic optimizer GEQO parameter is now 8(Bruce) -Allow use parameters in target list having aggregates in functions(Vadim) -Added JDBC driver as an interface(Adrian & Peter) -pg_password utility -Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim) -Triggers implemented with CREATE TRIGGER (SQL3)(Vadim) -SPI (Server Programming Interface) allows execution of queries inside - C-functions (Vadim) -NOT NULL implemented (SQL92)(Robson Paniago de Miranda) -Include reserved words for string handling, outer joins, and unions(Thomas) -Implement extended comments ("/* ... */") using exclusive states(Thomas) -Add "//" single-line comments(Bruce) -Remove some restrictions on characters in operator names(Thomas) -DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas) -Add text concatenation operator and function (SQL92)(Thomas) -Support WITH TIME ZONE syntax (SQL92)(Thomas) -Support INTERVAL unit TO unit syntax (SQL92)(Thomas) -Define types DOUBLE PRECISION, INTERVAL, CHARACTER, - and CHARACTER VARYING (SQL92)(Thomas) -Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas) -Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas) -Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas) -Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas) -Add more reserved words, mostly for SQL92 compliance(Thomas) -Allow hh:mm:ss time entry for timespan/reltime types(Thomas) -Add center() routines for lseg, path, polygon(Thomas) -Add distance() routines for circle-polygon, polygon-polygon(Thomas) -Check explicitly for points and polygons contained within polygons - using an axis-crossing algorithm(Thomas) -Add routine to convert circle-box(Thomas) -Merge conflicting operators for different geometric data types(Thomas) -Replace distance operator "<===>" with "<->"(Thomas) -Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas) -Add routines for text trimming on both ends, substring, and string position(Thomas) -Added conversion routines circle(box) and poly(circle)(Thomas) -Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim) -Allow functions and operators on internally-identical types to succeed(Bruce) -Speed up backend start-up after profiling analysis(Bruce) -Inline frequently called functions for performance(Bruce) -Reduce open() calls(Bruce) -psql: Add PAGER for \h and \?,\C fix -Fix for psql pager when no tty(Bruce) -New entab utility(Bruce) -General trigger functions for referential integrity (Vadim) -General trigger functions for time travel (Vadim) -General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim) -MOVE implementation (Vadim) - -Source Tree Changes -------------------- -HPUX 10 patches (Vladimir Turin) -Added SCO support, (Daniel Harris) -mkLinux patches (Tatsuo Ishii) -Change geometric box terminology from "length" to "width"(Thomas) -Deprecate temporary unstored slope fields in geometric code(Thomas) -Remove restart instructions from INSTALL(Bruce) -Look in /usr/ucb first for install(Bruce) -Fix c++ copy example code(Thomas) -Add -o to psql manual page(Bruce) -Prevent relname unallocated string length from being copied into database(Bruce) -Cleanup for NAMEDATALEN use(Bruce) -Fix pg_proc names over 15 chars in output(Bruce) -Add strNcpy() function(Bruce) -remove some (void) casts that are unnecessary(Bruce) -new interfaces directory(Marc) -Replace fopen() calls with calls to fd.c functions(Bruce) -Make functions static where possible(Bruce) -enclose unused functions in #ifdef NOT_USED(Bruce) -Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas) -Changes for Digital Unix -Portability fix for pg_dumpall(Bruce) -Rename pg_attribute.attnvals to attdispersion(Bruce) -"intro/unix" manual page now "pgintro"(Bruce) -"built-in" manual page now "pgbuiltin"(Bruce) -"drop" manual page now "drop_table"(Bruce) -Add "create_trigger", "drop_trigger" manual pages(Thomas) -Add constraints regression test(Vadim & Thomas) -Add comments syntax regression test(Thomas) -Add PGINDENT and support program(Bruce) -Massive commit to run PGINDENT on all *.c and *.h files(Bruce) -Files moved to /src/tools directory(Bruce) -SPI and Trigger programming guides (Vadim & D'Arcy) - - - - ------------------------------------------------------------------------ - Release 6.1.1 - ------------------------------------------------------------------------ - - -Release 6.1.1 (1997-07-22) - -Migration from v6.1 to v6.1.1 - -This is a minor bug-fix release. A dump/reload is not required from v6.1, -but is required from any release prior to v6.1. Refer to the release notes -for v6.1 for more details. + Bug Fixes + --------- + Fix binary cursors broken by MOVE implementation(Vadim) + Fix for tcl library crash(Jan) + Fix for array handling, from Gerhard Hintermayer + Fix acl error, and remove duplicate pqtrace(Bruce) + Fix psql \e for empty file(Bruce) + Fix for textcat on varchar() fields(Bruce) + Fix for DBT Sendproc (Zeugswetter Andres) + Fix vacuum analyze syntax problem(Bruce) + Fix for international identifiers(Tatsuo) + Fix aggregates on inherited tables(Bruce) + Fix substr() for out-of-bounds data + Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce) + Fix notty output to show status result. -q option still turns it off(Bruce) + Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce) + Fix cluster(Bruce) + Fix for PQtrace start/stop several times(Bruce) + Fix a variety of locking problems like newer lock waiters getting + lock before older waiters, and having readlock people not share + locks if a writer is waiting for a lock, and waiting writers not + getting priority over waiting readers(Bruce) + Fix crashes in psql when executing queries from external files(James) + Fix problem with multiple order by columns, with the first one having + NULL values(Jeroen) + Use correct hash table support functions for float8 and int4(Thomas) + Re-enable JOIN= option in CREATE OPERATOR statement (Thomas) + Change precedence for boolean operators to match expected behavior(Thomas) + Generate elog(ERROR) on over-large integer(Bruce) + Allow multiple-argument functions in constraint clauses(Thomas) + Check boolean input literals for 'true','false','yes','no','1','0' + and throw elog(ERROR) if unrecognized(Thomas) + Major large objects fix + Fix for GROUP BY showing duplicates(Vadim) + Fix for index scans in MergeJion(Vadim) + + Enhancements + ------------ + Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas) + New User Manual(Thomas, others) + Speedup by inlining some frequently-called functions + Real deadlock detection, no more timeouts(Bruce) + Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, + CURRENT_USER(Thomas) + Modify constraint syntax to be SQL92-compliant(Thomas) + Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas) + Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas) + Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas) + Allow PostgreSQL-style casting ("::") of non-constants(Thomas) + Add support for SQL3 TRUE and FALSE boolean constants(Thomas) + Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas) + Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas) + Allow SQL92 delimited identifiers(Thomas) + Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas) + Support SQL92 syntax for type coercion of literal strings + (e.g. "DATETIME 'now'")(Thomas) + Add conversions for int2, int4, and OID types to and from text(Thomas) + Use shared lock when building indexes(Vadim) + Free memory allocated for an user query inside transaction block after + this query is done, was turned off in <= 6.2.1(Vadim) + New SQL statement CREATE PROCEDURAL LANGUAGE(Jan) + New PostgreSQL Procedural Language (PL) backend interface(Jan) + Rename pg_dump -H option to -h(Bruce) + Add Java support for passwords, European dates(Peter) + Use indexes for LIKE and ~, !~ operations(Bruce) + Add hash functions for datetime and timespan(Thomas) + Time Travel removed(Vadim, Bruce) + Add paging for \d and \z, and fix \i(Bruce) + Add Unix domain socket support to backend and to frontend library(Goran) + Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas) + Allow more SQL92 and/or PostgreSQL reserved words as column identifiers(Thomas) + Augment support for SQL92 SET TIME ZONE...(Thomas) + SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas) + Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas) + Enable SET TIME ZONE using TZ environment variable(Thomas) + Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas) + Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO + frontend library initialization environment variables(Thomas) + Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas) + Add pg_description table for info on tables, columns, operators, types, and + aggregates(Bruce) + Increase 16 char limit on system table/index names to 32 characters(Bruce) + Rename system indexes(Bruce) + Add 'GERMAN' option to SET DATESTYLE(Thomas) + Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas) + Allow fractional values for delta times (e.g. '2.5 days')(Thomas) + Validate numeric input more carefully for delta times(Thomas) + Implement day of year as possible input to date_part()(Thomas) + Define timespan_finite() and text_timespan() functions(Thomas) + Remove archive stuff(Bruce) + Allow for a pg_password authentication database that is separate from + the system password file(Todd) + Dump ACLs, GRANT, REVOKE permissions(Matt) + Define text, varchar, and bpchar string length functions(Thomas) + Fix Query handling for inheritance, and cost computations(Bruce) + Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas) + Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas) + Implement UNIONs for SELECT(Bruce) + Add UNION, GROUP, DISTINCT to INSERT(Bruce) + varchar() stores only necessary bytes on disk(Bruce) + Fix for BLOBs(Peter) + Mega-Patch for JDBC...see README_6.3 for list of changes(Peter) + Remove unused "option" from PQconnectdb() + New LOCK command and lock manual page describing deadlocks(Bruce) + Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce) + Enhance psql \z to show sequences(Bruce) + Show NOT NULL and DEFAULT in psql \d table(Bruce) + New psql .psqlrc file start-up(Andrew) + Modify sample start-up script in contrib/linux to show syslog(Thomas) + New types for IP and MAC addresses in contrib/ip_and_mac(TomH) + Unix system time conversions with date/time types in contrib/unixdate(Thomas) + Update of contrib stuff(Massimo) + Add Unix socket support to DBD::Pg(Goran) + New python interface (PyGreSQL 2.0)(D'Arcy) + New frontend/backend protocol has a version number, network byte order(Phil) + Security features in pg_hba.conf enhanced and documented, many cleanups(Phil) + CHAR() now faster access than VARCHAR() or TEXT + ecpg embedded SQL preprocessor + Reduce system column overhead(Vadmin) + Remove pg_time table(Vadim) + Add pg_type attribute to identify types that need length (bpchar, varchar) + Add report of offending line when COPY command fails + Allow VIEW permissions to be set separately from the underlying tables. + For security, use GRANT/REVOKE on views as appropriate(Jan) + Tables now have no default GRANT SELECT TO PUBLIC. You must + explicitly grant such permissions. + Clean up tutorial examples(Darren) + + Source Tree Changes + ------------------- + Add new html development tools, and flow chart in /tools/backend + Fix for SCO compiles + Stratus computer port Robert Gillies + Added support for shlib for BSD44_derived & i386_solaris + Make configure more automated(Brook) + Add script to check regression test results + Break parser functions into smaller files, group together(Bruce) + Rename heap_create to heap_create_and_catalog, rename heap_creatr + to heap_create()(Bruce) + Sparc/Linux patch for locking(TomS) + Remove PORTNAME and reorganize port-specific stuff(Marc) + Add optimizer README file(Bruce) + Remove some recursion in optimizer and clean up some code there(Bruce) + Fix for NetBSD locking(Henry) + Fix for libptcl make(Tatsuo) + AIX patch(Darren) + Change IS TRUE, IS FALSE, ... to expressions using "=" rather than + function calls to istrue() or isfalse() to allow optimization(Thomas) + Various fixes NetBSD/Sparc related(TomH) + Alpha linux locking(Travis,Ryan) + Change elog(WARN) to elog(ERROR)(Bruce) + FAQ for FreeBSD(Marc) + Bring in the PostODBC source tree as part of our standard distribution(Marc) + A minor patch for HP/UX 10 vs 9(Stan) + New pg_attribute.atttypmod for type-specific info like varchar length(Bruce) + Unixware patches(Billy) + New i386 'lock' for spin lock asm(Billy) + Support for multiplexed backends is removed + Start an OpenBSD port + Start an AUX port + Start a Cygnus port + Add string functions to regression suite(Thomas) + Expand a few function names formerly truncated to 16 characters(Thomas) + Remove un-needed malloc() calls and replace with palloc()(Bruce) + + ---------------------------------------------------------------------- + + Release 6.2.1 + + Release date: 1997-10-17 + + 6.2.1 is a bug-fix and usability release on 6.2. + + Summary: + + * Allow strings to span lines, per SQL92. + + * Include example trigger function for inserting user names on table + updates. + + This is a minor bug-fix release on 6.2. For upgrades from pre-6.2 systems, + a full dump/reload is required. Refer to the 6.2 release notes for + instructions. + + ---------------------------------------------------------------------- + +Migration from version 6.2 to version 6.2.1 + + This is a minor bug-fix release. A dump/reload is not required from + version 6.2, but is required from any release prior to 6.2. + + In upgrading from version 6.2, if you choose to dump/reload you will find + that avg(money) is now calculated correctly. All other bug fixes take + effect upon updating the executables. + + Another way to avoid dump/reload is to use the following SQL command from + "psql" to update the existing system table: + + update pg_aggregate set aggfinalfn = 'cash_div_flt8' + where aggname = 'avg' and aggbasetype = 790; + + This will need to be done to every existing database, including template1. + + ---------------------------------------------------------------------- Changes -------- -fix for SET with options (Thomas) -allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce) -new psql \connect option allows changing usernames without changing databases -fix for initdb --debug option(Yoshihiko Ichikawa)) -lextest cleanup(Bruce) -hash fixes(Vadim) -fix date/time month boundary arithmetic(Thomas) -fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo) -timestamp overhauled to use standard functions(Thomas) -other code cleanup in date/time routines(Thomas) -psql's \d now case-insensitive(Bruce) -psql's backslash commands can now have trailing semicolon(Bruce) -fix memory leak in psql when using \g(Bruce) -major fix for endian handling of communication to server(Thomas, Tatsuo) -Fix for Solaris assembler and include files(Yoshihiko Ichikawa) -allow underscores in usernames(Bruce) -pg_dumpall now returns proper status, portability fix(Bruce) - - - - ------------------------------------------------------------------------ - Release 6.1 - ------------------------------------------------------------------------ - - -Release 6.1 (1997-06-08) - - -The regression tests have been adapted and extensively modified for the v6.1 -release of Postgres. - -Three new data types (datetime, timespan, and circle) have been added to the -native set of Postgres types. Points, boxes, paths, and polygons have had -their output formats made consistant across the data types. The polygon -output in misc.out has only been spot-checked for correctness relative to -the original regression output. - -Postgres v6.1 introduces a new, alternate optimizer which uses genetic -algorithms. These algorithms introduce a random behavior in the ordering of -query results when the query contains multiple qualifiers or multiple tables -(giving the optimizer a choice on order of evaluation). Several regression -tests have been modified to explicitly order the results, and hence are -insensitive to optimizer choices. A few regression tests are for data types -which are inherently unordered (e.g. points and time intervals) and tests -involving those types are explicitly bracketed with set geqo to 'off' and -reset geqo. - -The interpretation of array specifiers (the curly braces around atomic -values) appears to have changed sometime after the original regression tests -were generated. The current ./expected/*.out files reflect this new -interpretation, which may not be correct! - -The float8 regression test fails on at least some platforms. This is due to -differences in implementations of pow() and exp() and the signaling -mechanisms used for overflow and underflow conditions. - -The "random" results in the random test should cause the "random" test to be -"failed", since the regression tests are evaluated using a simple diff. -However, "random" does not seem to produce random results on my test machine -(Linux/gcc/i686). - -Migration to v6.1 - -This migration requires a complete dump of the 6.0 database and a restore of -the database in 6.1. - -Those migrating from earlier 1.* releases should first upgrade to 1.09 -because the COPY output format was improved from the 1.02 release. - - -Bug Fixes ---------- -packet length checking in library routines -lock manager priority patch -check for under/over flow of float8(Bruce) -multi-table join fix(Vadim) -SIGPIPE crash fix(Darren) -large object fixes(Sven) -allow btree indexes to handle NULLs(Vadim) -timezone fixes(D'Arcy) -select SUM(x) can return NULL on no rows(Thomas) -internal optimizer, executor bug fixes(Vadim) -fix problem where inner loop in < or <= has no rows(Vadim) -prevent re-commuting join index clauses(Vadim) -fix join clauses for multiple tables(Vadim) -fix hash, hashjoin for arrays(Vadim) -fix btree for abstime type(Vadim) -large object fixes(Raymond) -fix buffer leak in hash indices (Vadim) -fix rtree for use in inner scan (Vadim) -fix gist for use in inner scan, cleanups (Vadim, Andrea) -avoid unnecessary local buffers allocation (Vadim, Massimo) -fix local buffers leak in transaction aborts (Vadim) -fix file manager memmory leaks, cleanups (Vadim, Massimo) -fix storage manager memmory leaks (Vadim) -fix btree duplicates handling (Vadim) -fix deleted tuples re-incarnation caused by vacuum (Vadim) -fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce) -many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor) - -Enhancements ------------- -attribute optimization statistics(Bruce) -much faster new btree bulk load code(Paul) -BTREE UNIQUE added to bulk load code(Vadim) -new lock debug code(Massimo) -massive changes to libpg++(Leo) -new GEQO optimizer speeds table multi-table optimization(Martin) -new WARN message for non-unique insert into unique key(Marc) -update x=-3, no spaces, now valid(Bruce) -remove case-sensitive identifier handling(Bruce,Thomas,Dan) -debug backend now pretty-prints tree(Darren) -new Oracle character functions(Edmund) -new plaintext password functions(Dan) -no such class or insufficient privilege changed to distinct messages(Dan) -new ANSI timestamp function(Dan) -new ANSI Time and Date types (Thomas) -move large chunks of data in backend(Martin) -multi-column btree indexes(Vadim) -new SET var TO value command(Martin) -update transaction status on reads(Dan) -new locale settings for character types(Oleg) -new SEQUENCE serial number generator(Vadim) -GROUP BY function now possible(Vadim) -re-organize regression test(Thomas,Marc) -new optimizer operation weights(Vadim) -new psql \z grant/permit option(Marc) -new MONEY data type(D'Arcy,Thomas) -tcp socket communication speed improved(Vadim) -new VACUUM option for attribute statistics, and for certain columns (Vadim) -many geometric type improvements(Thomas,Keith) -additional regression tests(Thomas) -new datestyle variable(Thomas,Vadim,Martin) -more comparison operators for sorting types(Thomas) -new conversion functions(Thomas) -new more compact btree format(Vadim) -allow pg_dumpall to preserve database ownership(Bruce) -new SET GEQO=# and R_PLANS variable(Vadim) -old (!GEQO) optimizer can use right-sided plans (Vadim) -typechecking improvement in SQL parser(Bruce) -new SET, SHOW, RESET commands(Thomas,Vadim) -new \connect database USER option -new destroydb -i option (Igor) -new \dt and \di psql commands (Darren) -SELECT "\n" now escapes newline (A. Duursma) -new geometry conversion functions from old format (Thomas) - -Source tree changes -------------------- -new configuration script(Marc) -readline configuration option added(Marc) -OS-specific configuration options removed(Marc) -new OS-specific template files(Marc) -no more need to edit Makefile.global(Marc) -re-arrange include files(Marc) -nextstep patches (Gregor Hoffleit) -removed WIN32-specific code(Bruce) -removed postmaster -e option, now only postgres -e option (Bruce) -merge duplicate library code in front/backends(Martin) -now works with eBones, international Kerberos(Jun) -more shared library support -c++ include file cleanup(Bruce) -warn about buggy flex(Bruce) -DG-UX, Ultrix, Irix, AIX portability fixes - - - - ------------------------------------------------------------------------ - Release 6.0 - ------------------------------------------------------------------------ - - -Release 6.0 (1997-01-29) - - -A dump/restore is required for those wishing to migrate data from previous -releases of Postgres. - -Migration from v1.09 to v6.0 - -This migration requires a complete dump of the 1.09 database and a restore -of the database in 6.0. - -Migration from pre-v1.09 to v6.0 - -Those migrating from earlier 1.* releases should first upgrade to 1.09 -because the COPY output format was improved from the 1.02 release. - - -Bug Fixes ---------- -ALTER TABLE bug - running postgress process needs to re-read table definition -Allow vacuum to be run on one table or entire database(Bruce) -Array fixes -Fix array over-runs of memory writes(Kurt) -Fix elusive btree range/non-range bug(Dan) -Fix for hash indexes on some types like time and date -Fix for pg_log size explosion -Fix permissions on lo_export()(Bruce) -Fix unitialized reads of memory(Kurt) -Fixed ALTER TABLE ... char(3) bug(Bruce) -Fixed a few small memory leaks -Fixed EXPLAIN handling of options and changed full_path option name -Fixed output of group acl permissions -Memory leaks (hunt and destroy with tools like Purify(Kurt) -Minor improvements to rules system -NOTIFY fixes -New asserts for run-checking -Overhauled parser/analyze code to properly report errors and increase speed -Pg_dump -d now handles NULL's properly(Bruce) -Prevent SELECT NULL from crashing server (Bruce) -Properly report errors when INSERT ... SELECT columns did not match -Properly report errors when insert column names were not correct -Psql \g filename now works(Bruce) -Psql fixed problem with multiple statements on one line with multiple outputs -Removed duplicate system oid's -SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce) -Several fixes for queries that crashed the backend -Starting quote in insert string errors(Bruce) -Submitting an empty query now returns empty status, not just " " query(Bruce) - -Enhancements ------------- -Add EXPLAIN manual page(Bruce) -Add UNIQUE index capability(Dan) -Add hostname/user level access control rather than just hostname and user -Add synonym of != for (Bruce) -Allow "select oid,* from table" -Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce) -Allow COPY from the frontend(Bryan) -Allow GROUP BY to use alias column name(Bruce) -Allow actual compression, not just reuse on the same page(Vadim) -Allow installation-configuration option to auto-add all local users(Bryan) -Allow libpq to distinguish between text value '' and null(Bruce) -Allow non-postgres users with createdb privs to destroydb's -Allow restriction on who can create C functions(Bryan) -Allow restriction on who can do backend COPY(Bryan) -Can shrink tables, pg_time and pg_log(Vadim & Erich) -Change debug level 2 to print queries only, changed debug heading layout(Bruce) -Change default decimal constant representation from float4 to float8(Bruce) -European date format now set when postmaster is started -Execute lowercase function names if not found with exact case -Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z' -Gist now included in the distrubution(Marc) -Idend authentication of local users(Bryan) -Implement BETWEEN qualifier(Bruce) -Implement IN qualifier(Bruce) -Libpq has PQgetisnull()(Bruce) -Libpq++ improvements -New options to initdb(Bryan) -Pg_dump allow dump of oid's(Bruce) -Pg_dump create indexes after tables are loaded for speed(Bruce) -Pg_dumpall dumps all databases, and the user table -Pginterface additions for NULL values(Bruce) -Prevent postmaster from being run as root -Psql \h and \? is now readable(Bruce) -Psql allow backslashed, semicolons anywhere on the line(Bruce) -Psql changed command prompt for lines in query or in quotes(Bruce) -Psql char(3) now displays as (bp)char in \d output(Bruce) -Psql return code now more accurate(Bryan?) -Psql updated help syntax(Bruce) -Re-visit and fix vacuum(Vadim) -Reduce size of regression diffs, remove timezone name difference(Bruce) -Remove compile-time parameters to enable binary distributions(Bryan) -Reverse meaning of HBA masks(Bryan) -Secure Authentication of local users(Bryan) -Speed up vacuum(Vadim) -Vacuum now had VERBOSE option(Bruce) - -Source tree changes -------------------- -All functions now have prototypes that are compared against the calls -Allow asserts to be disabled easly from Makefile.global(Bruce) -Change oid constants used in code to #define names -Decoupled sparc and solaris defines(Kurt) -Gcc -Wall compiles cleanly with warnings only from unfixable constructs -Major include file reorganization/reduction(Marc) -Make now stops on compile failure(Bryan) -Makefile restructuring(Bryan, Marc) -Merge bsdi_2_1 to bsdi(Bruce) -Monitor program removed -Name change from Postgres95 to PostgreSQL -New config.h file(Marc, Bryan) -PG_VERSION now set to 6.0 and used by postmaster -Portability additions, including Ultrix, DG/UX, AIX, and Solaris -Reduced the number of #define's, centeralized #define's -Remove duplicate OIDS in system tables(Dan) -Remove duplicate system catalog info or report mismatches(Dan) -Removed many os-specific #define's -Restructured object file generation/location(Bryan, Marc) -Restructured port-specific file locations(Bryan, Marc) -Unused/uninialized variables corrected - - - - ------------------------------------------------------------------------ - Release 1.09 - ------------------------------------------------------------------------ - - -Release v1.09 (1996-11-04) - -Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the -changes listed in 6.0 were actually included in the 1.02.1 to 1.09 -releases. - - - - ------------------------------------------------------------------------ - Release 1.02 - ------------------------------------------------------------------------ - - -Release 1.02 (1996-08-01) - -Migration from v1.02 to v1.02.1 - -Here is a new migration file for 1.02.1. It includes the 'copy' change and a -script to convert old ascii files. - Note: The following notes are for the benefit of users who want to - migrate databases from postgres95 1.01 and 1.02 to postgres95 - 1.02.1. + Allow TIME and TYPE column names(Thomas) + Allow larger range of true/false as boolean values(Thomas) + Support output of "now" and "current"(Thomas) + Handle DEFAULT with INSERT of NULL properly(Vadim) + Fix for relation reference counts problem in buffer manager(Vadim) + Allow strings to span lines, like ANSI(Thomas) + Fix for backward cursor with ORDER BY(Vadim) + Fix avg(cash) computation(Thomas) + Fix for specifying a column twice in ORDER/GROUP BY(Vadim) + Documented new libpq function to return affected rows, PQcmdTuples(Bruce) + Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan) + - If you are starting afresh with postgres95 1.02.1 and do not need - to migrate old databases, you do not need to read any further. + ---------------------------------------------------------------------- -In order to upgrade older postgres95 version 1.01 or 1.02 databases to -version 1.02.1, the following steps are required: + Release 6.2 - 1. Start up a new 1.02.1 postmaster + Release date: 1997-10-02 - 2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02 - databases. This is done by running the new 1.02.1 server against your - own 1.01 or 1.02 database and applying the queries attached at the end - of thie file. This can be done easily through psql. If your 1.01 or - 1.02 database is named "testdb" and you have cut the commands from the - end of this file and saved them in addfunc.sql: + A dump/restore is required for those wishing to migrate data from previous + releases of PostgreSQL. - % psql testdb -f addfunc.sql + ---------------------------------------------------------------------- - Those upgrading 1.02 databases will get a warning when executing the - last two statements in the file because they are already present in - 1.02. This is not a cause for concern. +Migration from version 6.1 to version 6.2 -Dump/Reload Procedure + This migration requires a complete dump of the 6.1 database and a restore + of the database in 6.2. + + Note that the "pg_dump" and "pg_dumpall" utility from 6.2 should be used + to dump the 6.1 database. + + ---------------------------------------------------------------------- + +Migration from version 1.x to version 6.2 + + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + + ---------------------------------------------------------------------- + +Changes -If you are trying to reload a pg_dump or text-mode 'copy tablename to -stdout' generated with a previous version, you will need to run the attached -sed script on the ASCII file before loading it into the database. The old -format used '.' as end-of-data, while '\.' is now the end-of-data marker. -Also, empty strings are now loaded in as '' rather than NULL. See the copy -manual page for full details. + Bug Fixes + --------- + Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce) + Fix compile errors on overflow due to shifts, unsigned, and bad prototypes + from Solaris(Diab Jerius) + Fix bugs in geometric line arithmetic (bad intersection calculations)(Thomas) + Check for geometric intersections at endpoints to avoid rounding ugliness(Thomas) + Catch non-functional delete attempts(Vadim) + Change time function names to be more consistent(Michael Reifenberg) + Check for zero divides(Michael Reifenberg) + Fix very old bug which made tuples changed/inserted by a commnd + visible to the command itself (so we had multiple update of + updated tuples, etc)(Vadim) + Fix for SELECT null, 'fail' FROM pg_am (Patrick) + SELECT NULL as EMPTY_FIELD now allowed(Patrick) + Remove un-needed signal stuff from contrib/pginterface + Fix OR (where x != 1 or x isnull didn't return tuples with x NULL) (Vadim) + Fix time_cmp function (Vadim) + Fix handling of functions with non-attribute first argument in + WHERE clauses (Vadim) + Fix GROUP BY when order of entries is different from order + in target list (Vadim) + Fix pg_dump for aggregates without sfunc1 (Vadim) + + Enhancements + ------------ + Default genetic optimizer GEQO parameter is now 8(Bruce) + Allow use parameters in target list having aggregates in functions(Vadim) + Added JDBC driver as an interface(Adrian & Peter) + pg_password utility + Return number of tuples inserted/affected by INSERT/UPDATE/DELETE etc.(Vadim) + Triggers implemented with CREATE TRIGGER (SQL3)(Vadim) + SPI (Server Programming Interface) allows execution of queries inside + C-functions (Vadim) + NOT NULL implemented (SQL92)(Robson Paniago de Miranda) + Include reserved words for string handling, outer joins, and unions(Thomas) + Implement extended comments ("/* ... */") using exclusive states(Thomas) + Add "//" single-line comments(Bruce) + Remove some restrictions on characters in operator names(Thomas) + DEFAULT and CONSTRAINT for tables implemented (SQL92)(Vadim & Thomas) + Add text concatenation operator and function (SQL92)(Thomas) + Support WITH TIME ZONE syntax (SQL92)(Thomas) + Support INTERVAL unit TO unit syntax (SQL92)(Thomas) + Define types DOUBLE PRECISION, INTERVAL, CHARACTER, + and CHARACTER VARYING (SQL92)(Thomas) + Define type FLOAT(p) and rudimentary DECIMAL(p,s), NUMERIC(p,s) (SQL92)(Thomas) + Define EXTRACT(), POSITION(), SUBSTRING(), and TRIM() (SQL92)(Thomas) + Define CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP (SQL92)(Thomas) + Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas) + Add more reserved words, mostly for SQL92 compliance(Thomas) + Allow hh:mm:ss time entry for timespan/reltime types(Thomas) + Add center() routines for lseg, path, polygon(Thomas) + Add distance() routines for circle-polygon, polygon-polygon(Thomas) + Check explicitly for points and polygons contained within polygons + using an axis-crossing algorithm(Thomas) + Add routine to convert circle-box(Thomas) + Merge conflicting operators for different geometric data types(Thomas) + Replace distance operator "<===>" with "<->"(Thomas) + Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas) + Add routines for text trimming on both ends, substring, and string position(Thomas) + Added conversion routines circle(box) and poly(circle)(Thomas) + Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim) + Allow functions and operators on internally-identical types to succeed(Bruce) + Speed up backend start-up after profiling analysis(Bruce) + Inline frequently called functions for performance(Bruce) + Reduce open() calls(Bruce) + psql: Add PAGER for \h and \?,\C fix + Fix for psql pager when no tty(Bruce) + New entab utility(Bruce) + General trigger functions for referential integrity (Vadim) + General trigger functions for time travel (Vadim) + General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim) + MOVE implementation (Vadim) + + Source Tree Changes + ------------------- + HPUX 10 patches (Vladimir Turin) + Added SCO support, (Daniel Harris) + mkLinux patches (Tatsuo Ishii) + Change geometric box terminology from "length" to "width"(Thomas) + Deprecate temporary unstored slope fields in geometric code(Thomas) + Remove restart instructions from INSTALL(Bruce) + Look in /usr/ucb first for install(Bruce) + Fix c++ copy example code(Thomas) + Add -o to psql manual page(Bruce) + Prevent relname unallocated string length from being copied into database(Bruce) + Cleanup for NAMEDATALEN use(Bruce) + Fix pg_proc names over 15 chars in output(Bruce) + Add strNcpy() function(Bruce) + remove some (void) casts that are unnecessary(Bruce) + new interfaces directory(Marc) + Replace fopen() calls with calls to fd.c functions(Bruce) + Make functions static where possible(Bruce) + enclose unused functions in #ifdef NOT_USED(Bruce) + Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas) + Changes for Digital Unix + Portability fix for pg_dumpall(Bruce) + Rename pg_attribute.attnvals to attdispersion(Bruce) + "intro/unix" manual page now "pgintro"(Bruce) + "built-in" manual page now "pgbuiltin"(Bruce) + "drop" manual page now "drop_table"(Bruce) + Add "create_trigger", "drop_trigger" manual pages(Thomas) + Add constraints regression test(Vadim & Thomas) + Add comments syntax regression test(Thomas) + Add PGINDENT and support program(Bruce) + Massive commit to run PGINDENT on all *.c and *.h files(Bruce) + Files moved to /src/tools directory(Bruce) + SPI and Trigger programming guides (Vadim & D'Arcy) + + ---------------------------------------------------------------------- + + Release 6.1.1 + + Release date: 1997-07-22 + + ---------------------------------------------------------------------- + +Migration from version 6.1 to version 6.1.1 + + This is a minor bug-fix release. A dump/reload is not required from + version 6.1, but is required from any release prior to 6.1. Refer to the + release notes for 6.1 for more details. + + ---------------------------------------------------------------------- - sed 's/^\.$/\\./g' in_file out_file +Changes + + fix for SET with options (Thomas) + allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce) + new psql \connect option allows changing usernames without changing databases + fix for initdb --debug option(Yoshihiko Ichikawa)) + lextest cleanup(Bruce) + hash fixes(Vadim) + fix date/time month boundary arithmetic(Thomas) + fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo) + timestamp overhauled to use standard functions(Thomas) + other code cleanup in date/time routines(Thomas) + psql's \d now case-insensitive(Bruce) + psql's backslash commands can now have trailing semicolon(Bruce) + fix memory leak in psql when using \g(Bruce) + major fix for endian handling of communication to server(Thomas, Tatsuo) + Fix for Solaris assembler and include files(Yoshihiko Ichikawa) + allow underscores in usernames(Bruce) + pg_dumpall now returns proper status, portability fix(Bruce) + + + ---------------------------------------------------------------------- + + Release 6.1 + + Release date: 1997-06-08 + + The regression tests have been adapted and extensively modified for the + 6.1 release of PostgreSQL. + + Three new data types (datetime, timespan, and circle) have been added to + the native set of PostgreSQL types. Points, boxes, paths, and polygons + have had their output formats made consistent across the data types. The + polygon output in misc.out has only been spot-checked for correctness + relative to the original regression output. + + PostgreSQL 6.1 introduces a new, alternate optimizer which uses genetic + algorithms. These algorithms introduce a random behavior in the ordering + of query results when the query contains multiple qualifiers or multiple + tables (giving the optimizer a choice on order of evaluation). Several + regression tests have been modified to explicitly order the results, and + hence are insensitive to optimizer choices. A few regression tests are for + data types which are inherently unordered (e.g. points and time intervals) + and tests involving those types are explicitly bracketed with "set geqo to + 'off'" and "reset geqo". + + The interpretation of array specifiers (the curly braces around atomic + values) appears to have changed sometime after the original regression + tests were generated. The current "./expected/*.out" files reflect this + new interpretation, which may not be correct! + + The float8 regression test fails on at least some platforms. This is due + to differences in implementations of pow() and exp() and the signaling + mechanisms used for overflow and underflow conditions. + + The "random" results in the random test should cause the "random" test to + be "failed", since the regression tests are evaluated using a simple diff. + However, "random" does not seem to produce random results on my test + machine (Linux/gcc/i686). + + ---------------------------------------------------------------------- + +Migration to version 6.1 + + This migration requires a complete dump of the 6.0 database and a restore + of the database in 6.1. + + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + + ---------------------------------------------------------------------- + +Changes + + Bug Fixes + --------- + packet length checking in library routines + lock manager priority patch + check for under/over flow of float8(Bruce) + multi-table join fix(Vadim) + SIGPIPE crash fix(Darren) + large object fixes(Sven) + allow btree indexes to handle NULLs(Vadim) + timezone fixes(D'Arcy) + select SUM(x) can return NULL on no rows(Thomas) + internal optimizer, executor bug fixes(Vadim) + fix problem where inner loop in < or <= has no rows(Vadim) + prevent re-commuting join index clauses(Vadim) + fix join clauses for multiple tables(Vadim) + fix hash, hashjoin for arrays(Vadim) + fix btree for abstime type(Vadim) + large object fixes(Raymond) + fix buffer leak in hash indexes (Vadim) + fix rtree for use in inner scan (Vadim) + fix gist for use in inner scan, cleanups (Vadim, Andrea) + avoid unnecessary local buffers allocation (Vadim, Massimo) + fix local buffers leak in transaction aborts (Vadim) + fix file manager memmory leaks, cleanups (Vadim, Massimo) + fix storage manager memmory leaks (Vadim) + fix btree duplicates handling (Vadim) + fix deleted tuples re-incarnation caused by vacuum (Vadim) + fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce) + many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor) + + Enhancements + ------------ + attribute optimization statistics(Bruce) + much faster new btree bulk load code(Paul) + BTREE UNIQUE added to bulk load code(Vadim) + new lock debug code(Massimo) + massive changes to libpg++(Leo) + new GEQO optimizer speeds table multi-table optimization(Martin) + new WARN message for non-unique insert into unique key(Marc) + update x=-3, no spaces, now valid(Bruce) + remove case-sensitive identifier handling(Bruce,Thomas,Dan) + debug backend now pretty-prints tree(Darren) + new Oracle character functions(Edmund) + new plaintext password functions(Dan) + no such class or insufficient privilege changed to distinct messages(Dan) + new ANSI timestamp function(Dan) + new ANSI Time and Date types (Thomas) + move large chunks of data in backend(Martin) + multi-column btree indexes(Vadim) + new SET var TO value command(Martin) + update transaction status on reads(Dan) + new locale settings for character types(Oleg) + new SEQUENCE serial number generator(Vadim) + GROUP BY function now possible(Vadim) + re-organize regression test(Thomas,Marc) + new optimizer operation weights(Vadim) + new psql \z grant/permit option(Marc) + new MONEY data type(D'Arcy,Thomas) + tcp socket communication speed improved(Vadim) + new VACUUM option for attribute statistics, and for certain columns (Vadim) + many geometric type improvements(Thomas,Keith) + additional regression tests(Thomas) + new datestyle variable(Thomas,Vadim,Martin) + more comparison operators for sorting types(Thomas) + new conversion functions(Thomas) + new more compact btree format(Vadim) + allow pg_dumpall to preserve database ownership(Bruce) + new SET GEQO=# and R_PLANS variable(Vadim) + old (!GEQO) optimizer can use right-sided plans (Vadim) + typechecking improvement in SQL parser(Bruce) + new SET, SHOW, RESET commands(Thomas,Vadim) + new \connect database USER option + new destroydb -i option (Igor) + new \dt and \di psql commands (Darren) + SELECT "\n" now escapes newline (A. Duursma) + new geometry conversion functions from old format (Thomas) + + Source tree changes + ------------------- + new configuration script(Marc) + readline configuration option added(Marc) + OS-specific configuration options removed(Marc) + new OS-specific template files(Marc) + no more need to edit Makefile.global(Marc) + re-arrange include files(Marc) + nextstep patches (Gregor Hoffleit) + removed WIN32-specific code(Bruce) + removed postmaster -e option, now only postgres -e option (Bruce) + merge duplicate library code in front/backends(Martin) + now works with eBones, international Kerberos(Jun) + more shared library support + c++ include file cleanup(Bruce) + warn about buggy flex(Bruce) + DG-UX, Ultrix, Irix, AIX portability fixes + + ---------------------------------------------------------------------- + + Release 6.0 + + Release date: 1997-01-29 + + A dump/restore is required for those wishing to migrate data from previous + releases of PostgreSQL. + + ---------------------------------------------------------------------- + +Migration from version 1.09 to version 6.0 + + This migration requires a complete dump of the 1.09 database and a restore + of the database in 6.0. + + ---------------------------------------------------------------------- + +Migration from pre-1.09 to version 6.0 + + Those migrating from earlier 1.* releases should first upgrade to 1.09 + because the COPY output format was improved from the 1.02 release. + + ---------------------------------------------------------------------- + +Changes -If you are loading an older binary copy or non-stdout copy, there is no -end-of-data character, and hence no conversion necessary. + Bug Fixes + --------- + ALTER TABLE bug - running postgress process needs to re-read table definition + Allow vacuum to be run on one table or entire database(Bruce) + Array fixes + Fix array over-runs of memory writes(Kurt) + Fix elusive btree range/non-range bug(Dan) + Fix for hash indexes on some types like time and date + Fix for pg_log size explosion + Fix permissions on lo_export()(Bruce) + Fix unitialized reads of memory(Kurt) + Fixed ALTER TABLE ... char(3) bug(Bruce) + Fixed a few small memory leaks + Fixed EXPLAIN handling of options and changed full_path option name + Fixed output of group acl permissions + Memory leaks (hunt and destroy with tools like Purify(Kurt) + Minor improvements to rules system + NOTIFY fixes + New asserts for run-checking + Overhauled parser/analyze code to properly report errors and increase speed + Pg_dump -d now handles NULL's properly(Bruce) + Prevent SELECT NULL from crashing server (Bruce) + Properly report errors when INSERT ... SELECT columns did not match + Properly report errors when insert column names were not correct + Psql \g filename now works(Bruce) + Psql fixed problem with multiple statements on one line with multiple outputs + Removed duplicate system oid's + SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce) + Several fixes for queries that crashed the backend + Starting quote in insert string errors(Bruce) + Submitting an empty query now returns empty status, not just " " query(Bruce) + + Enhancements + ------------ + Add EXPLAIN manual page(Bruce) + Add UNIQUE index capability(Dan) + Add hostname/user level access control rather than just hostname and user + Add synonym of != for <>(Bruce) + Allow "select oid,* from table" + Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce) + Allow COPY from the frontend(Bryan) + Allow GROUP BY to use alias column name(Bruce) + Allow actual compression, not just reuse on the same page(Vadim) + Allow installation-configuration option to auto-add all local users(Bryan) + Allow libpq to distinguish between text value '' and null(Bruce) + Allow non-postgres users with createdb privs to destroydb's + Allow restriction on who can create C functions(Bryan) + Allow restriction on who can do backend COPY(Bryan) + Can shrink tables, pg_time and pg_log(Vadim & Erich) + Change debug level 2 to print queries only, changed debug heading layout(Bruce) + Change default decimal constant representation from float4 to float8(Bruce) + European date format now set when postmaster is started + Execute lowercase function names if not found with exact case + Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z' + Gist now included in the distrubution(Marc) + Idend authentication of local users(Bryan) + Implement BETWEEN qualifier(Bruce) + Implement IN qualifier(Bruce) + Libpq has PQgetisnull()(Bruce) + Libpq++ improvements + New options to initdb(Bryan) + Pg_dump allow dump of oid's(Bruce) + Pg_dump create indexes after tables are loaded for speed(Bruce) + Pg_dumpall dumps all databases, and the user table + Pginterface additions for NULL values(Bruce) + Prevent postmaster from being run as root + Psql \h and \? is now readable(Bruce) + Psql allow backslashed, semicolons anywhere on the line(Bruce) + Psql changed command prompt for lines in query or in quotes(Bruce) + Psql char(3) now displays as (bp)char in \d output(Bruce) + Psql return code now more accurate(Bryan?) + Psql updated help syntax(Bruce) + Re-visit and fix vacuum(Vadim) + Reduce size of regression diffs, remove timezone name difference(Bruce) + Remove compile-time parameters to enable binary distributions(Bryan) + Reverse meaning of HBA masks(Bryan) + Secure Authentication of local users(Bryan) + Speed up vacuum(Vadim) + Vacuum now had VERBOSE option(Bruce) + + Source tree changes + ------------------- + All functions now have prototypes that are compared against the calls + Allow asserts to be disabled easly from Makefile.global(Bruce) + Change oid constants used in code to #define names + Decoupled sparc and solaris defines(Kurt) + Gcc -Wall compiles cleanly with warnings only from unfixable constructs + Major include file reorganization/reduction(Marc) + Make now stops on compile failure(Bryan) + Makefile restructuring(Bryan, Marc) + Merge bsdi_2_1 to bsdi(Bruce) + Monitor program removed + Name change from Postgres95 to PostgreSQL + New config.h file(Marc, Bryan) + PG_VERSION now set to 6.0 and used by postmaster + Portability additions, including Ultrix, DG/UX, AIX, and Solaris + Reduced the number of #define's, centeralized #define's + Remove duplicate OIDS in system tables(Dan) + Remove duplicate system catalog info or report mismatches(Dan) + Removed many os-specific #define's + Restructured object file generation/location(Bryan, Marc) + Restructured port-specific file locations(Bryan, Marc) + Unused/uninialized variables corrected + + ---------------------------------------------------------------------- + + Release 1.09 + + Release date: 1996-11-04 + + Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the + changes listed in 6.0 were actually included in the 1.02.1 to 1.09 + releases. + + ---------------------------------------------------------------------- + + Release 1.02 + + Release date: 1996-08-01 + + ---------------------------------------------------------------------- + +Migration from version 1.02 to version 1.02.1 + + Here is a new migration file for 1.02.1. It includes the 'copy' change and + a script to convert old ASCII files. --- following lines added by agc to reflect the case-insensitive --- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1) -create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq); -create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne); -create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq); -create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne); + Note: The following notes are for the benefit of users who want to + migrate databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1. -Detailed Change List + If you are starting afresh with Postgres95 1.02.1 and do not need to + migrate old databases, you do not need to read any further. -Source code maintenance and development - * worldwide team of volunteers - * the source tree now in CVS at ftp.ki.net + In order to upgrade older Postgres95 version 1.01 or 1.02 databases to + version 1.02.1, the following steps are required: -Enhancements - * psql (and underlying libpq library) now has many more options for - formatting output, including HTML - * pg_dump now output the schema and/or the data, with many fixes to - enhance completeness. - * psql used in place of monitor in administration shell scripts. - monitor to be depreciated in next release. - * date/time functions enhanced - * NULL insert/update/comparison fixed/enhanced - * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1 + 1. Start up a new 1.02.1 postmaster -Bug Fixes (almost too numerous to mention) - * indexes - * storage management - * check for NULL pointer before dereferencing - * Makefile fixes + 2. Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02 + databases. This is done by running the new 1.02.1 server against your + own 1.01 or 1.02 database and applying the queries attached at the end + of the file. This can be done easily through "psql". If your 1.01 or + 1.02 database is named testdb and you have cut the commands from the + end of this file and saved them in "addfunc.sql": -New Ports - * added SolarisX86 port - * added BSDI 2.1 port - * added DGUX port + % psql testdb -f addfunc.sql + Those upgrading 1.02 databases will get a warning when executing the + last two statements in the file because they are already present in + 1.02. This is not a cause for concern. + ---------------------------------------------------------------------- - ------------------------------------------------------------------------ - Release 1.01 - ------------------------------------------------------------------------ +Dump/Reload Procedure + If you are trying to reload a pg_dump or text-mode, copy tablename to + stdout generated with a previous version, you will need to run the + attached "sed" script on the ASCII file before loading it into the + database. The old format used '.' as end-of-data, while '\.' is now the + end-of-data marker. Also, empty strings are now loaded in as '' rather + than NULL. See the copy manual page for full details. -Postgres95 Release 1.01 (1996-02-23) + sed 's/^\.$/\\./g' out_file + If you are loading an older binary copy or non-stdout copy, there is no + end-of-data character, and hence no conversion necessary. -Migration from v1.0 to v1.01 + -- following lines added by agc to reflect the case-insensitive + -- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1) + create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq); + create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne); + create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq); + create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne); -The following notes are for the benefit of users who want to migrate -databases from postgres95 1.0 to postgres95 1.01. + ---------------------------------------------------------------------- -If you are starting afresh with postgres95 1.01 and do not need to migrate -old databases, you do not need to read any further. +Changes -In order to postgres95 version 1.01 with databases created with postgres95 -version 1.0, the following steps are required: - - 1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and - OIDNAMELEN to 20. - - 2. Decide whether you want to use Host based authentication. - - a. If you do, you must create a file name "pg_hba" in your top-level - data directory (typically the value of your $PGDATA). - src/libpq/pg_hba shows an example syntax. - - b. If you do not want host-based authentication, you can comment out - the line - - HBA = 1 - - in src/Makefile.global - - Note that host-based authentication is turned on by default, and - if you do not take steps A or B above, the out-of-the-box 1.01 - will not allow you to connect to 1.0 databases. - - 3. Compile and install 1.01, but DO NOT do the initdb step. - - 4. Before doing anything else, terminate your 1.0 postmaster, and backup - your existing $PGDATA directory. - - 5. Set your PGDATA environment variable to your 1.0 databases, but set up - path up so that 1.01 binaries are being used. - - 6. Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1 - - 7. Start up a new 1.01 postmaster - - 8. Add the new built-in functions and operators of 1.01 to 1.0 databases. - This is done by running the new 1.01 server against your own 1.0 - database and applying the queries attached and saving in the file - 1.0_to_1.01.sql. This can be done easily through psql. If your 1.0 - database is name "testdb": - - % psql testdb -f 1.0_to_1.01.sql - - and then execute the following commands (cut and paste from here): - - -- add builtin functions that are new to 1.01 - - create function int4eqoid (int4, oid) returns bool as 'foo' - language 'internal'; - create function oideqint4 (oid, int4) returns bool as 'foo' - language 'internal'; - create function char2icregexeq (char2, text) returns bool as 'foo' - language 'internal'; - create function char2icregexne (char2, text) returns bool as 'foo' - language 'internal'; - create function char4icregexeq (char4, text) returns bool as 'foo' - language 'internal'; - create function char4icregexne (char4, text) returns bool as 'foo' - language 'internal'; - create function char8icregexeq (char8, text) returns bool as 'foo' - language 'internal'; - create function char8icregexne (char8, text) returns bool as 'foo' - language 'internal'; - create function char16icregexeq (char16, text) returns bool as 'foo' - language 'internal'; - create function char16icregexne (char16, text) returns bool as 'foo' - language 'internal'; - create function texticregexeq (text, text) returns bool as 'foo' - language 'internal'; - create function texticregexne (text, text) returns bool as 'foo' - language 'internal'; - - -- add builtin functions that are new to 1.01 - - create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid); - create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4); - create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq); - create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne); - create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq); - create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne); - create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq); - create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne); - create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq); - create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne); - create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq); - create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne); - -Detailed Change List - -Incompatibilities: - * 1.01 is backwards compatible with 1.0 database provided the user - follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file. - If those steps are not taken, 1.01 is not compatible with 1.0 database. - -Enhancements: - * added PQdisplayTuples() to libpq and changed monitor and psql to use it - * added NeXT port (requires SysVIPC implementation) - * added CAST .. AS ... syntax - * added ASC and DESC keywords - * added 'internal' as a possible language for CREATE FUNCTION - internal functions are C functions which have been statically linked - into the postgres backend. - * a new type "name" has been added for system identifiers (table names, - attribute names, etc.) This replaces the old char16 type. The - of name is set by the NAMEDATALEN #define in src/Makefile.global - * a readable reference manual that describes the query language. - * added host-based access control. A configuration file ($PGDATA/pg_hba) - is used to hold the configuration data. If host-based access control - is not desired, comment out HBA=1 in src/Makefile.global. - * changed regex handling to be uniform use of Henry Spencer's regex code - regardless of platform. The regex code is included in the distribution - * added functions and operators for case-insensitive regular expressions. - The operators are ~* and !~*. - * pg_dump uses COPY instead of SELECT loop for better performance - -Bug fixes: - * fixed an optimizer bug that was causing core dumps when - functions calls were used in comparisons in the WHERE clause - * changed all uses of getuid to geteuid so that effective uids are used - * psql now returns non-zero status on errors when using -c - * applied public patches 1-14 - - - - ------------------------------------------------------------------------ - Release 1.0 - ------------------------------------------------------------------------ - - -Postgres95 Release 1.0 (1995-09-05) - -Detailed Change List - -Copyright change: - * The copyright of Postgres 1.0 has been loosened to be freely modifiable - and modifiable for any purpose. Please read the COPYRIGHT file. - Thanks to Professor Michael Stonebraker for making this possible. - -Incompatibilities: - * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using - EUROPEAN STYLE). This follows SQL-92 specs. - * "delimiters" is now a keyword - -Enhancements: - * sql LIKE syntax has been added - * copy command now takes an optional USING DELIMITER specification. - delimiters can be any single-character string. - * IRIX 5.3 port has been added. - Thanks to Paul Walmsley and others. - * updated pg_dump to work with new libpq - * \d has been added psql - Thanks to Keith Parks - * regexp performance for architectures that use POSIX regex has been - improved due to caching of precompiled patterns. - Thanks to Alistair Crooks - * a new version of libpq++ - Thanks to William Wanders - -Bug fixes: - * arbitrary userids can be specified in the createuser script - * \c to connect to other databases in psql now works. - * bad pg_proc entry for float4inc() is fixed - * users with usecreatedb field set can now create databases without - having to be usesuper - * remove access control entries when the entry no longer has any - permissions - * fixed non-portable datetimes implementation - * added kerberos flags to the src/backend/Makefile - * libpq now works with kerberos - * typographic errors in the user manual have been corrected. - * btrees with multiple index never worked, now we tell you they don't - work when you try to use them - - - - ------------------------------------------------------------------------ - Release 0.03 - ------------------------------------------------------------------------ - - -Postgres95 Release 0.03 (1995-07-21) - - -Detailed Change List - -Incompatible changes: - * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS - (due to system catalog changes and indexing structure changes). - * double-quote (") is deprecated as a quoting character for string literals; - you need to convert them to single quotes ('). - * name of aggregates (eg. int4sum) are renamed in accordance with the - SQL standard (eg. sum). - * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax. - * float literals (eg. 3.14) are now of type float4 (instead of float8 in - previous releases); you might have to do typecasting if you depend on it - being of type float8. If you neglect to do the typecasting and you assign - a float literal to a field of type float8, you may get incorrect values - stored! - * LIBPQ has been totally revamped so that frontend applications - can connect to multiple backends - * the usesysid field in pg_user has been changed from int2 to int4 to - allow wider range of Unix user ids. - * the netbsd/freebsd/bsd o/s ports have been consolidated into a - single BSD44_derived port. (thanks to Alistair Crooks) - -SQL standard-compliance (the following details changes that makes postgres95 -more compliant to the SQL-92 standard): - * the following SQL types are now built-in: smallint, int(eger), float, real, - char(N), varchar(N), date and time. - - The following are aliases to existing postgres types: - smallint -> int2 - integer, int -> int4 - float, real -> float4 - char(N) and varchar(N) are implemented as truncated text types. In - addition, char(N) does blank-padding. - * single-quote (') is used for quoting string literals; '' (in addition to - \') is supported as means of inserting a single quote in a string - * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used - (Also, aggregates can now be overloaded, i.e. you can define your - own MAX aggregate to take in a user-defined type.) - * CHANGE ACL removed. GRANT/REVOKE syntax added. - - Privileges can be given to a group using the "GROUP" keyword. - For example: - GRANT SELECT ON foobar TO GROUP my_group; - The keyword 'PUBLIC' is also supported to mean all users. - - Privileges can only be granted or revoked to one user or group - at a time. - - "WITH GRANT OPTION" is not supported. Only class owners can change - access control - - The default access control is to to grant users readonly access. - You must explicitly grant insert/update access to users. To change - this, modify the line in - src/backend/utils/acl.h - that defines ACL_WORLD_DEFAULT - -Bug fixes: - * the bug where aggregates of empty tables were not run has been fixed. Now, - aggregates run on empty tables will return the initial conditions of the - aggregates. Thus, COUNT of an empty table will now properly return 0. - MAX/MIN of an empty table will return a tuple of value NULL. - * allow the use of \; inside the monitor - * the LISTEN/NOTIFY asynchronous notification mechanism now work - * NOTIFY in rule action bodies now work - * hash indices work, and access methods in general should perform better. - creation of large btree indices should be much faster. (thanks to Paul - Aoki) - -Other changes and enhancements: - * addition of an EXPLAIN statement used for explaining the query execution - plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for - the query). - * WARN and NOTICE messages no longer have timestamps on them. To turn on - timestamps of error messages, uncomment the line in - src/backend/utils/elog.h: - /* define ELOG_TIMESTAMPS */ - * On an access control violation, the message - "Either no such class or insufficient privilege" - will be given. This is the same message that is returned when - a class is not found. This dissuades non-privileged users from - guessing the existence of privileged classes. - * some additional system catalog changes have been made that are not - visible to the user. - -libpgtcl changes: - * The -oid option has been added to the "pg_result" tcl command. - pg_result -oid returns oid of the last tuple inserted. If the - last command was not an INSERT, then pg_result -oid returns "". - * the large object interface is available as pg_lo* tcl commands: - pg_lo_open, pg_lo_close, pg_lo_creat, etc. - -Portability enhancements and New Ports: - * flex/lex problems have been cleared up. Now, you should be able to use - flex instead of lex on any platforms. We no longer make assumptions of - what lexer you use based on the platform you use. - * The Linux-ELF port is now supported. Various configuration have been - tested: The following configuration is known to work: - kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24 - with everything in ELF format, - -New utilities: - * ipcclean added to the distribution - ipcclean usually does not need to be run, but if your backend crashes - and leaves shared memory segments hanging around, ipcclean will - clean them up for you. - -New documentation: - * the user manual has been revised and libpq documentation added. - - - - ------------------------------------------------------------------------ - Release 0.02 - ------------------------------------------------------------------------ - - -Postgres95 Release 0.02 (1995-05-25) + Source code maintenance and development + * worldwide team of volunteers + * the source tree now in CVS at ftp.ki.net + Enhancements + * psql (and underlying libpq library) now has many more options for + formatting output, including HTML + * pg_dump now output the schema and/or the data, with many fixes to + enhance completeness. + * psql used in place of monitor in administration shell scripts. + monitor to be depreciated in next release. + * date/time functions enhanced + * NULL insert/update/comparison fixed/enhanced + * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1 -Detailed Change List + Bug Fixes (almost too numerous to mention) + * indexes + * storage management + * check for NULL pointer before dereferencing + * Makefile fixes -Incompatible changes: - * The SQL statement for creating a database is 'CREATE DATABASE' instead - of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead - of 'DESTROYDB'. However, the names of the executables 'createdb' and - 'destroydb' remain the same. + New Ports + * added SolarisX86 port + * added BSDI 2.1 port + * added DGUX port -New tools: - * pgperl - a Perl (4.036) interface to Postgres95 - * pg_dump - a utility for dumping out a postgres database into a - script file containing query commands. The script files are in a ASCII - format and can be used to reconstruct the database, even on other - machines and other architectures. (Also good for converting - a Postgres 4.2 database to Postgres95 database.) + ---------------------------------------------------------------------- + + Release 1.01 -The following ports have been incorporated into postgres95-beta-0.02: - * the NetBSD port by Alistair Crooks - * the AIX port by Mike Tung - * the Windows NT port by Jon Forrest (more stuff but not done yet) - * the Linux ELF port by Brian Gallew + Release date: 1996-02-23 -The following bugs have been fixed in postgres95-beta-0.02: - * new lines not escaped in COPY OUT and problem with COPY OUT when first - attribute is a '.' - * cannot type return to use the default user id in createuser - * SELECT DISTINCT on big tables crashes - * Linux installation problems - * monitor doesn't allow use of 'localhost' as PGHOST - * psql core dumps when doing \c or \l - * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile - * libpgtcl has a hard-wired default port number - * SELECT DISTINCT INTO TABLE hangs - * CREATE TYPE doesn't accept 'variable' as the internallength - * wrong result using more than 1 aggregate in a SELECT + ---------------------------------------------------------------------- +Migration from version 1.0 to version 1.01 + The following notes are for the benefit of users who want to migrate + databases from Postgres95 1.0 to Postgres95 1.01. - ------------------------------------------------------------------------ - Release 0.01 - ------------------------------------------------------------------------ + If you are starting afresh with Postgres95 1.01 and do not need to migrate + old databases, you do not need to read any further. + In order to Postgres95 version 1.01 with databases created with Postgres95 + version 1.0, the following steps are required: -Postgres95 Release 0.01 (1995-05-01) + 1. Set the definition of NAMEDATALEN in "src/Makefile.global" to 16 and + OIDNAMELEN to 20. -Initial release. + 2. Decide whether you want to use Host based authentication. + a. If you do, you must create a file name pg_hba in your top-level + data directory (typically the value of your $PGDATA). + "src/libpq/pg_hba" shows an example syntax. + b. If you do not want host-based authentication, you can comment out + the line - ------------------------------------------------------------------------ - Timing Results - ------------------------------------------------------------------------ + HBA = 1 + in "src/Makefile.global" -Timing Results + Note that host-based authentication is turned on by default, and + if you do not take steps A or B above, the out-of-the-box 1.01 + will not allow you to connect to 1.0 databases. -These timing results are from running the regression test with the commands + 3. Compile and install 1.01, but DO NOT do the "initdb" step. -% cd src/test/regress -% make all -% time make runtest + 4. Before doing anything else, terminate your 1.0 postmaster, and backup + your existing $PGDATA directory. + 5. Set your PGDATA environment variable to your 1.0 databases, but set up + path up so that 1.01 binaries are being used. -Timing under Linux 2.0.27 seems to have a roughly 5% variation from run to -run, presumably due to the scheduling vagaries of multitasking systems. + 6. Modify the file "$PGDATA/PG_VERSION" from 5.0 to 5.1 -v6.5 + 7. Start up a new 1.01 postmaster -As has been the case for previous releases, timing between releases is not -directly comparable since new regression tests have been added. In general, -v6.5 is faster than previous releases. + 8. Add the new built-in functions and operators of 1.01 to 1.0 databases. + This is done by running the new 1.01 server against your own 1.0 + database and applying the queries attached and saving in the file + 1.0_to_1.01.sql. This can be done easily through "psql". If your 1.0 + database is name testdb: -Timing with fsync() disabled: + % psql testdb -f 1.0_to_1.01.sql - Time System - 02:00 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486 - 04:38 Sparc Ultra 1 143MHz, 64MB, Solaris 2.6 + and then execute the following commands (cut and paste from here): + -- add builtin functions that are new to 1.01 -Timing with fsync() enabled: + create function int4eqoid (int4, oid) returns bool as 'foo' + language 'internal'; + create function oideqint4 (oid, int4) returns bool as 'foo' + language 'internal'; + create function char2icregexeq (char2, text) returns bool as 'foo' + language 'internal'; + create function char2icregexne (char2, text) returns bool as 'foo' + language 'internal'; + create function char4icregexeq (char4, text) returns bool as 'foo' + language 'internal'; + create function char4icregexne (char4, text) returns bool as 'foo' + language 'internal'; + create function char8icregexeq (char8, text) returns bool as 'foo' + language 'internal'; + create function char8icregexne (char8, text) returns bool as 'foo' + language 'internal'; + create function char16icregexeq (char16, text) returns bool as 'foo' + language 'internal'; + create function char16icregexne (char16, text) returns bool as 'foo' + language 'internal'; + create function texticregexeq (text, text) returns bool as 'foo' + language 'internal'; + create function texticregexne (text, text) returns bool as 'foo' + language 'internal'; - Time System - 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486 + -- add builtin functions that are new to 1.01 + create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid); + create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4); + create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq); + create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne); + create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq); + create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne); + create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq); + create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne); + create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq); + create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne); + create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq); + create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne); -For the linux system above, using UW-SCSI disks rather than (older) IDE -disks leads to a 50% improvement in speed on the regression test. + ---------------------------------------------------------------------- -v6.4beta +Changes -The times for this release are not directly comparable to those for previous -releases since some additional regression tests have been included. In -general, however, v6.4 should be slightly faster than the previous release -(thanks, Bruce!). + Incompatibilities: + * 1.01 is backwards compatible with 1.0 database provided the user + follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file. + If those steps are not taken, 1.01 is not compatible with 1.0 database. + + Enhancements: + * added PQdisplayTuples() to libpq and changed monitor and psql to use it + * added NeXT port (requires SysVIPC implementation) + * added CAST .. AS ... syntax + * added ASC and DESC keywords + * added 'internal' as a possible language for CREATE FUNCTION + internal functions are C functions which have been statically linked + into the postgres backend. + * a new type "name" has been added for system identifiers (table names, + attribute names, etc.) This replaces the old char16 type. The + of name is set by the NAMEDATALEN #define in src/Makefile.global + * a readable reference manual that describes the query language. + * added host-based access control. A configuration file ($PGDATA/pg_hba) + is used to hold the configuration data. If host-based access control + is not desired, comment out HBA=1 in src/Makefile.global. + * changed regex handling to be uniform use of Henry Spencer's regex code + regardless of platform. The regex code is included in the distribution + * added functions and operators for case-insensitive regular expressions. + The operators are ~* and !~*. + * pg_dump uses COPY instead of SELECT loop for better performance + + Bug fixes: + * fixed an optimizer bug that was causing core dumps when + functions calls were used in comparisons in the WHERE clause + * changed all uses of getuid to geteuid so that effective uids are used + * psql now returns non-zero status on errors when using -c + * applied public patches 1-14 + + ---------------------------------------------------------------------- + + Release 1.0 + + Release date: 1995-09-05 + + ---------------------------------------------------------------------- - Time System - 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486 +Changes -v6.3 + Copyright change: + * The copyright of Postgres 1.0 has been loosened to be freely modifiable + and modifiable for any purpose. Please read the COPYRIGHT file. + Thanks to Professor Michael Stonebraker for making this possible. + + Incompatibilities: + * date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using + EUROPEAN STYLE). This follows SQL-92 specs. + * "delimiters" is now a keyword + + Enhancements: + * sql LIKE syntax has been added + * copy command now takes an optional USING DELIMITER specification. + delimiters can be any single-character string. + * IRIX 5.3 port has been added. + Thanks to Paul Walmsley and others. + * updated pg_dump to work with new libpq + * \d has been added psql + Thanks to Keith Parks + * regexp performance for architectures that use POSIX regex has been + improved due to caching of precompiled patterns. + Thanks to Alistair Crooks + * a new version of libpq++ + Thanks to William Wanders + + Bug fixes: + * arbitrary userids can be specified in the createuser script + * \c to connect to other databases in psql now works. + * bad pg_proc entry for float4inc() is fixed + * users with usecreatedb field set can now create databases without + having to be usesuper + * remove access control entries when the entry no longer has any + permissions + * fixed non-portable datetimes implementation + * added kerberos flags to the src/backend/Makefile + * libpq now works with kerberos + * typographic errors in the user manual have been corrected. + * btrees with multiple index never worked, now we tell you they don't + work when you try to use them + + ---------------------------------------------------------------------- + + Postgres95 Release 0.03 + + Release date: 1995-07-21 + + ---------------------------------------------------------------------- -The times for this release are not directly comparable to those for previous -releases since some additional regression tests have been included and some -obsolete tests involving time travel have been removed. In general, however, -v6.3 is substantially faster than previous releases (thanks, Bruce!). +Changes - Time System - 02:30 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486 - 04:12 Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486 + Incompatible changes: + * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS + (due to system catalog changes and indexing structure changes). + * double-quote (") is deprecated as a quoting character for string literals; + you need to convert them to single quotes ('). + * name of aggregates (eg. int4sum) are renamed in accordance with the + SQL standard (eg. sum). + * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax. + * float literals (eg. 3.14) are now of type float4 (instead of float8 in + previous releases); you might have to do typecasting if you depend on it + being of type float8. If you neglect to do the typecasting and you assign + a float literal to a field of type float8, you may get incorrect values + stored! + * LIBPQ has been totally revamped so that frontend applications + can connect to multiple backends + * the usesysid field in pg_user has been changed from int2 to int4 to + allow wider range of Unix user ids. + * the netbsd/freebsd/bsd o/s ports have been consolidated into a + single BSD44_derived port. (thanks to Alistair Crooks) + + SQL standard-compliance (the following details changes that makes postgres95 + more compliant to the SQL-92 standard): + * the following SQL types are now built-in: smallint, int(eger), float, real, + char(N), varchar(N), date and time. + + The following are aliases to existing postgres types: + smallint -> int2 + integer, int -> int4 + float, real -> float4 + char(N) and varchar(N) are implemented as truncated text types. In + addition, char(N) does blank-padding. + * single-quote (') is used for quoting string literals; '' (in addition to + \') is supported as means of inserting a single quote in a string + * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used + (Also, aggregates can now be overloaded, i.e. you can define your + own MAX aggregate to take in a user-defined type.) + * CHANGE ACL removed. GRANT/REVOKE syntax added. + - Privileges can be given to a group using the "GROUP" keyword. + For example: + GRANT SELECT ON foobar TO GROUP my_group; + The keyword 'PUBLIC' is also supported to mean all users. + + Privileges can only be granted or revoked to one user or group + at a time. + + "WITH GRANT OPTION" is not supported. Only class owners can change + access control + - The default access control is to to grant users readonly access. + You must explicitly grant insert/update access to users. To change + this, modify the line in + src/backend/utils/acl.h + that defines ACL_WORLD_DEFAULT + + Bug fixes: + * the bug where aggregates of empty tables were not run has been fixed. Now, + aggregates run on empty tables will return the initial conditions of the + aggregates. Thus, COUNT of an empty table will now properly return 0. + MAX/MIN of an empty table will return a tuple of value NULL. + * allow the use of \; inside the monitor + * the LISTEN/NOTIFY asynchronous notification mechanism now work + * NOTIFY in rule action bodies now work + * hash indexes work, and access methods in general should perform better. + creation of large btree indexes should be much faster. (thanks to Paul + Aoki) + + Other changes and enhancements: + * addition of an EXPLAIN statement used for explaining the query execution + plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for + the query). + * WARN and NOTICE messages no longer have timestamps on them. To turn on + timestamps of error messages, uncomment the line in + src/backend/utils/elog.h: + /* define ELOG_TIMESTAMPS */ + * On an access control violation, the message + "Either no such class or insufficient privilege" + will be given. This is the same message that is returned when + a class is not found. This dissuades non-privileged users from + guessing the existence of privileged classes. + * some additional system catalog changes have been made that are not + visible to the user. + + libpgtcl changes: + * The -oid option has been added to the "pg_result" tcl command. + pg_result -oid returns oid of the last tuple inserted. If the + last command was not an INSERT, then pg_result -oid returns "". + * the large object interface is available as pg_lo* tcl commands: + pg_lo_open, pg_lo_close, pg_lo_creat, etc. + + Portability enhancements and New Ports: + * flex/lex problems have been cleared up. Now, you should be able to use + flex instead of lex on any platforms. We no longer make assumptions of + what lexer you use based on the platform you use. + * The Linux-ELF port is now supported. Various configuration have been + tested: The following configuration is known to work: + kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24 + with everything in ELF format, + + New utilities: + * ipcclean added to the distribution + ipcclean usually does not need to be run, but if your backend crashes + and leaves shared memory segments hanging around, ipcclean will + clean them up for you. + + New documentation: + * the user manual has been revised and libpq documentation added. + + ---------------------------------------------------------------------- + + Postgres95 Release 0.02 + + Release date: 1995-05-25 + + ---------------------------------------------------------------------- -v6.1 +Changes - Time System - 06:12 Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486 - 12:06 P-100, 48MB, Linux 2.0.29, gcc - 39:58 Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g + Incompatible changes: + * The SQL statement for creating a database is 'CREATE DATABASE' instead + of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead + of 'DESTROYDB'. However, the names of the executables 'createdb' and + 'destroydb' remain the same. + + New tools: + * pgperl - a Perl (4.036) interface to Postgres95 + * pg_dump - a utility for dumping out a postgres database into a + script file containing query commands. The script files are in a ASCII + format and can be used to reconstruct the database, even on other + machines and other architectures. (Also good for converting + a Postgres 4.2 database to Postgres95 database.) + + The following ports have been incorporated into postgres95-beta-0.02: + * the NetBSD port by Alistair Crooks + * the AIX port by Mike Tung + * the Windows NT port by Jon Forrest (more stuff but not done yet) + * the Linux ELF port by Brian Gallew + + The following bugs have been fixed in postgres95-beta-0.02: + * new lines not escaped in COPY OUT and problem with COPY OUT when first + attribute is a '.' + * cannot type return to use the default user id in createuser + * SELECT DISTINCT on big tables crashes + * Linux installation problems + * monitor doesn't allow use of 'localhost' as PGHOST + * psql core dumps when doing \c or \l + * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile + * libpgtcl has a hard-wired default port number + * SELECT DISTINCT INTO TABLE hangs + * CREATE TYPE doesn't accept 'variable' as the internallength + * wrong result using more than 1 aggregate in a SELECT + + ---------------------------------------------------------------------- + + Postgres95 Release 0.01 + + Release date: 1995-05-01 + + Initial release. diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index a85ff6d402..99949e091d 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,31 +1,25 @@ - - Release Notes + + Release Notes - - Release 7.2 - - + + Release 7.2 + - + + Overview - TO BE FILLED IN. SEE /HISTORY. + This release improves PostgreSQL for use in + high-volume applications. @@ -33,37 +27,516 @@ $Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.104 2001/11/21 06:09:44 th - - TO BE FILLED IN. SEE /HISTORY. - + VACUUM + + + 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. + + + + + + Transactions + + + There is no longer a problem with installations that exceed + four billion transactions. + + + + + + OID's -TO BE FILLED IN. SEE /HISTORY. + OID's are now optional. Users can now create tables without + OID's for cases where OID usage is excessive. + + + + + + Optimizer + + + The system now computes histogram column statistics during + ANALYZE, allowing much better optimizer choices. + + + + + + Security + + + 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. + + + + + + Statistics + + + Administrators can use the new table access statistics module + to get fine-grained information about table and index usage. + + + + + + Internationalization + + + Program and library messages can now be displayed in several + languages. + - - Migration to version 7.2 + + Migration to version 7.2 - - A dump/restore using pg_dump is required for those wishing to migrate - data from any previous release. - - + + A dump/restore using pg_dump is required for + those wishing to migrate data from any previous release. + - - Changes + + Observe the following incompatibilities: - - -TO BE FILLED IN. SEE /HISTORY. - - - - + + + + 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 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. + + + + + Changes + + + + Server Operation + +Create temporary files in a separate directory (Bruce) +Delete orphanded temporary files on postmaster startup (Bruce) +Added unique indexes to some system tables (Tom) +System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom) +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 OID's 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) + + + + + Performance + +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) + + + + + Privileges + +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 (Helge 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 than 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) + + + + + Queries + +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 (Martijn van Oosterhout) +Fix problem with LIMIT and subqueries (Tom) +Fix for LIMIT, DISTINCT ON pushed into subqueryies (Tom) +Fix nested EXCEPT/INTERSECT (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 Kings-Lynne) +New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry) +Add ALTER TABLE / ADD UNIQUE (Christopher Kings-Lynne) +Allow column renaming in views +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 (Brent 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) + + + + + Utility Commands + +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 available 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 when appropriate (Martijn van Oosterhout) + + + + + 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 (Tatsuo) +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 bytea 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 coersion logic to attempt binary-compatible functions first (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_salt() (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 closed 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) + + + + + Internationalization + +Native language support in psql, pg_dump, libpq, and server (Peter E) +Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel 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) + + + + + PL/pgSQL + +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 (Bruce) +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 + +New untrusted PL/Perl (Alex Pilosov) +PL/Perl is now built on some platforms even if libperl is not shared (Peter E) + + + + + PL/Tcl + +Now reports errorInfo (Vsevolod Lobko) +Add spi_lastoid function (bob@redivi.com) + + + + + PL/Python + +...is new (Andrew Bosma) + + + + + Psql + +\d displays indexes in unique, primary groupings (Christopher Kings-Lynne) +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) + + + + + Libpq + +New function PQescapeString() to escape quotes in command strings (Florian Weimer) +New function PQescapeBytea() escapes binary strings for use as SQL string literals + + + + + JDBC + +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 Davies) +DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen) +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) + + + + + ODBC + +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) + + + + + ECPG + +EXECUTE ... INTO implemented +multiple row descriptor support (e.g. CARDINALITY) +Fix for GRANT parameters (Lee Kindness) +Fix INITIALLY DEFERRED bug +Various bug fixes (Michael, Christof Petig) + + + + + Misc. Interfaces + +Python fix fetchone() (Gerhard Haring) +Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max) +Add Tcl COPY TO/FROM (ljb) +Prevent output of default index op class in pg_dump (Tom) +Fix libpgeasy memory leak (Bruce) + + + + + Build and Install + +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) + + + + + Source Code + +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) + + + + + Contrib + +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 merged (Joe Conway) +Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov) + + + + @@ -74,17 +547,6 @@ TO BE FILLED IN. SEE /HISTORY. 2001-08-15 - - Migration to version 7.1.3 @@ -123,17 +585,6 @@ Cygwin build (Jason Tishler) 2001-05-11 - - This has one fix from 7.1.1. @@ -172,17 +623,6 @@ pg_dump cleanups 2001-05-05 - - This has a variety of fixes from 7.1. @@ -230,17 +670,6 @@ Python fixes (Darcy) 2001-04-13 - - This release focuses on removing limitations that have existed in the PostgreSQL code for many years. @@ -539,17 +968,6 @@ New FreeBSD tools ipc_check, start-scripts/freebsd 2000-11-11 - - This has a variety of fixes from 7.0.2. @@ -622,17 +1040,6 @@ Fix for crash of backend, on abort (Tom) 2000-06-05 - - This is a repackaging of 7.0.1 with added documentation. @@ -667,17 +1074,6 @@ Added documentation to tarball. 2000-06-01 - - This is a cleanup release for 7.0. @@ -733,16 +1129,6 @@ ecpg changes (Michael) 2000-05-08 - This release contains improvements in many areas, demonstrating the continued growth of PostgreSQL. @@ -1224,17 +1610,6 @@ New multibyte encodings 1999-10-13 - - 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. @@ -1271,17 +1646,6 @@ Fix dumping rules on inherited tables 1999-09-15 - - This is basically a cleanup release for 6.5.1. We have fixed a variety of problems reported by 6.5.1 users. @@ -1339,17 +1703,6 @@ Updated version of pgaccess 0.98 1999-07-15 - - This is basically a cleanup release for 6.5. We have fixed a variety of problems reported by 6.5 users. @@ -1405,17 +1758,6 @@ Add Win1250 (Czech) support (Pavel Behal) 1999-06-09 - - 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 @@ -1814,17 +2156,6 @@ New install commands for plpgsql(Jan) 1998-12-20 - - The 6.4.1 release was improperly packaged. This also has one additional bug fix. @@ -1860,17 +2191,6 @@ Fix for datetime constant problem on some platforms(Thomas) 1998-12-18 - - This is basically a cleanup release for 6.4. We have fixed a variety of problems reported by 6.4 users. @@ -1935,17 +2255,6 @@ Upgrade to PyGreSQL 2.2(D'Arcy) 1998-10-30 - - There are many new features and improvements in this release. Thanks to our developers and maintainers, nearly every aspect of the system @@ -2243,17 +2552,6 @@ new Makefile.shlib for shared library configuration(Tom) 1998-04-07 - - This is a bug-fix release for 6.3.x. Refer to the release notes for version 6.3 for a more complete summary of new features. @@ -2324,17 +2622,6 @@ ASSERT fixes(Bruce) 1998-03-23 - - Summary: @@ -2421,17 +2708,6 @@ Better identify tcl and tk libs and includes(Bruce) 1998-03-01 - - There are many new features and improvements in this release. Here is a brief, incomplete summary: @@ -2744,17 +3020,6 @@ Remove un-needed malloc() calls and replace with palloc()(Bruce) 1997-10-17 - - 6.2.1 is a bug-fix and usability release on 6.2. @@ -2837,17 +3102,6 @@ Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan) 1997-10-02 - - A dump/restore is required for those wishing to migrate data from previous releases of PostgreSQL. @@ -3001,18 +3255,6 @@ SPI and Trigger programming guides (Vadim & D'Arcy) 1997-07-22 - - - Migration from version 6.1 to version 6.1.1 @@ -3058,17 +3300,6 @@ pg_dumpall now returns proper status, portability fix(Bruce) 1997-06-08 - - The regression tests have been adapted and extensively modified for the 6.1 release of PostgreSQL. @@ -3240,17 +3471,6 @@ DG-UX, Ultrix, Irix, AIX portability fixes 1997-01-29 - - A dump/restore is required for those wishing to migrate data from previous releases of PostgreSQL. @@ -3389,27 +3609,13 @@ Unused/uninialized variables corrected Release 1.09 - - - Release date 1996-11-04 + Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of the changes listed in 6.0 were actually included in the 1.02.1 to 1.09 releases. @@ -3424,17 +3630,6 @@ releases. 1996-08-01 - - Migration from version 1.02 to version 1.02.1 @@ -3584,16 +3779,6 @@ Contributors (appologies to any missed) 1996-02-23 - Migration from version 1.0 to version 1.01 @@ -3786,17 +3971,6 @@ Bug fixes: 1995-09-05 - - Changes @@ -3854,17 +4028,6 @@ Bug fixes: 1995-07-21 - - Changes @@ -3987,17 +4150,6 @@ New documentation: 1995-05-25 - - Changes @@ -4049,22 +4201,12 @@ The following bugs have been fixed in postgres95-beta-0.02: 1995-05-01 - - Initial release. + Timing Results @@ -4162,6 +4304,7 @@ In general, however, 6.3 is substantially faster than previous releases (thanks, +]]>