- ------------------------------------------------------------------------
- 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 (<ulink url="mailto:jens@jens.de">Jens Glaser</ulink>)
-Add TRUNCATE command to quickly truncate relation (Mike Mascari)
-Fix to give super user and createdb user proper update catalog rights (Peter E)
-Allow ecpg bool variables to have NULL values (Christof)
-Issue ecpg error if NULL value is returned to variable with no NULL
-indicator (Christof)
-Allow ^C to cancel COPY command (Massimo)
-Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
-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 (<ulink url="mailto:mascarim@yahoo">Mike Mascari</ulink>)
-libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
-Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
-Make USING in COPY optional (Bruce)
-Allow subselects in the target list (Tom)
-Allow subselects on the left side of comparison operators (Tom)
-New parallel regression test (Jan)
-Change backend-side COPY to write files with permissions 644 not 666 (Tom)
-Force permissions on PGDATA directory to be secure, even if it exists (Tom)
-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 <ulink url="mailto:gatgul@voicenet.com">Uncle George</ulink>
-Overhaul of optimizer data structures (Tom)
-Fix to cygipc library (Yutaka Tanida)
-Allow pgsql to work on newer Cygwin snapshots(Dan)
-New catalog version number (Tom)
-Add Linux ARM.
-Rename heap_replace to heap_update
-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 <ulink url="mailto:lamj@stat.cmu.edu">Johnny C. Lam</ulink>
-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 <jens@jens.de>)
+ 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 <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)
+ Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
+ Add Oracle's COMMENT ON command (Mike Mascari <mascarim@yahoo.com>)
+ 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 <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 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 <gatgul@voicenet.com>
+ 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 <lamj@stat.cmu.edu>)
+ 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
+ \01. 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
+ \02. 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' <in_file >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)
+ \01. Set the definition of NAMEDATALEN in "src/Makefile.global" to 16 and
+ OIDNAMELEN to 20.
-Initial release.
+ \02. Decide whether you want to use Host based authentication.
+ \0a. 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.
+ \0b. 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
+ \03. Compile and install 1.01, but DO NOT do the "initdb" step.
-% cd src/test/regress
-% make all
-% time make runtest
+ \04. Before doing anything else, terminate your 1.0 postmaster, and backup
+ your existing $PGDATA directory.
+ \05. 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.
+ \06. Modify the file "$PGDATA/PG_VERSION" from 5.0 to 5.1
-v6.5
+ \07. 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.
+ \08. 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.