diff --git a/HISTORY b/HISTORY index 0a3704b4c8..27f2d0754c 100644 --- a/HISTORY +++ b/HISTORY @@ -1,2112 +1,2090 @@ -PostgreSQL Release History -by The PostgreSQL Development Team - -PostgreSQL is Copyright © 1996-9 by the Postgres Global Development Group. - -Table of Contents - Release 6.5.3 - Migration to v6.5.3 - Detailed Change List - Release 6.5.2 - Migration to v6.5.2 - Detailed Change List - Release 6.5.1 - Migration to v6.5.1 - Detailed Change List - Release 6.5 - Migration to v6.5 - Multi-Version Concurrency Control - Detailed Change List - Release 6.4.2 - Migration to v6.4.2 - Detailed Change List - Release 6.4.1 - Migration to v6.4.1 - Detailed Change List - Release 6.4 - Migration to v6.4 - Detailed Change List - Release 6.3.2 - Detailed Change List - Release 6.3.1 - Detailed Change List - Release 6.3 - Migration to v6.3 - Detailed Change List - Release 6.2.1 - Migration from v6.2 to v6.2.1 - Detailed Change List - Release 6.2 - Migration from v6.1 to v6.2 - Migration from v1.x to v6.2 - Detailed Change List - Release 6.1.1 - Migration from v6.1 to v6.1.1 - Detailed Change List - Release 6.1 - Migration to v6.1 - Detailed Change List - Release v6.0 - Migration from v1.09 to v6.0 - Migration from pre-v1.09 to v6.0 - Detailed Change List - Release v1.09 - Release v1.02 - Migration from v1.02 to v1.02.1 - Dump/Reload Procedure - Detailed Change List - Release v1.01 - Migration from v1.0 to v1.01 - Detailed Change List - Release v1.0 - Detailed Change List - Postgres95 Beta 0.03 - Detailed Change List - Postgres95 Beta 0.02 - Detailed Change List - Postgres95 Beta 0.01 +Chapter 0. Release Notes + Table of Contents + Release 6.5.3 + Release 6.5.2 + Release 6.5.1 + Release 6.5 + Release 6.4.2 + Release 6.4.1 + Release 6.4 + Release 6.3.2 + Release 6.3.1 + Release 6.3 + Release 6.2.1 + Release 6.2 + Release 6.1.1 + Release 6.1 + Release v6.0 + Release v1.09 + Release v1.02 + Release v1.01 + Release v1.0 + Postgres95 Beta 0.03 + Postgres95 Beta 0.02 + Postgres95 Beta 0.01 + Timing Results Release 6.5.3 - 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. +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.*. +A dump/restore is not required for those running 6.5.*. Detailed Change List - Updated version of pgaccess 0.98 - NT-specific patch +Updated version of pgaccess 0.98 +NT-specific patch + ------------------------------------------------------------------------ + Release 6.5.2 + Release Notes + ------------------------------------------------------------------------ Release 6.5.2 - This is basically a cleanup release for 6.5.1. We have fixed a - variety of problems reported by 6.5.1 users. +This is basically a cleanup release for 6.5.1. We have fixed a variety of +problems reported by 6.5.1 users. Migration to v6.5.2 - A dump/restore is not required for those running 6.5 or 6.5.1. +A dump/restore is not required for those running 6.5.*. Detailed Change List - subselect+CASE fixes(Tom) - Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren - Sefcik) - Fixes for CASE in WHERE join clauses(Tom) - Fix BTScan abort(Tom) - Repair the check for redundant UNIQUE and PRIMARY KEY indices(Thomas) - Improve it so that it checks for multi-column constraints(Tom) - Fix for Win32 making problem with MB enabled(Hiroki Kataoka) - Allow BSD yacc and bison to compile pl code(Bruce) - Fix SET NAMES - int8 fixes(Thomas) - Fix vacuum's memory consumption(Hiroshi,Tatsuo) - Reduce the total memory consumption of vacuum(Tom) - Fix for timestamp(datetime) - Rule deparsing bugfixes(Tom) - Fix quoting problems in mkMakefile.tcldefs.sh.in and - mkMakefile.tkdefs.sh.in(Tom) - This is to re-use space on index pages freed by vacuum(Vadim) - document -x for pg_dump(Bruce) - Fix for unary operators in rule deparser(Tom) - Comment out FileUnlink of excess segments during mdtruncate()(Tom) - Irix linking fix from Yu Cao - 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 +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 Notes Release 6.5.1 + Release Notes + ------------------------------------------------------------------------ Release 6.5.1 - This is basically a cleanup release for 6.5. We have fixed a - variety of problems reported by 6.5 users. +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. +A dump/restore is not required for those running 6.5. Detailed Change List - Fix for datetime constant problem on some platforms(Thomas) - 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 ^ precedence(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) +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.2 Release 6.5 + Release Notes + ------------------------------------------------------------------------ Release 6.5 - 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: +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. - 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. +Here is a brief summary of the more notable changes: - 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. +Multi-version concurrency control(MVCC) - Numeric data type - We now have a true numeric data type, with user-specified - precision. + 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. - Temporary tables - Temporary tables are guaranteed to have unique names within a - database session, and are destroyed on session exit. +Hot backups from pg_dump - 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. + 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. - 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. +Numeric data type - Ports - We continue to expand our port list, this time including - WinNT/ix86 and NetBSD/arm32. + We now have a true numeric data type, with user-specified precision. - Interfaces - Most interfaces have new versions, and existing functionality - has been improved. +Temporary tables - 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. - + 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. - 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. +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. - Multi-Version Concurrency Control - Because readers in 6.5 don't lock data, regardless of transaction - isolation level, data read by one transaction can be overwritten by - another. In other words, if a row is returned by SELECT it doesn't - mean that this row really exists at the time it is returned (i.e. - sometime after the statement or transaction began) nor that the row - is protected from being deleted or updated by concurrent - transactions before the current transaction does a commit or - rollback. - To ensure the actual existence of a row and protect it against - concurrent updates one must use SELECT FOR UPDATE or an appropriate - LOCK TABLE statement. This should be taken into account when porting - applications from previous releases of Postgres and other - environments. - Keep the above in mind if you are using contrib/refint.* triggers - for referential integrity. Additional technics are required now. One - way is to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command - if a transaction is going to update/delete a primary key and use - LOCK parent_table IN SHARE MODE command if a transaction is going to - update/insert a foreign key. +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. - 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. +Multi-Version Concurrency Control - - 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. +Because readers in 6.5 don't lock data, regardless of transaction isolation +level, data read by one transaction can be overwritten by another. In other +words, if a row is returned by SELECT it doesn't mean that this row really +exists at the time it is returned (i.e. sometime after the statement or +transaction began) nor that the row is protected from being deleted or +updated by concurrent transactions before the current transaction does a +commit or rollback. + +To ensure the actual existence of a row and protect it against concurrent +updates one must use SELECT FOR UPDATE or an appropriate LOCK TABLE +statement. This should be taken into account when porting applications from +previous releases of Postgres and other environments. + +Keep the above in mind if you are using contrib/refint.* triggers for +referential integrity. Additional technics are required now. One way is to +use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE command if a transaction +is going to update/delete a primary key and use LOCK parent_table IN SHARE +MODE command if a transaction is going to update/insert a foreign key. + + Note: Note that if you run a transaction in SERIALIZABLE mode then + you must execute the LOCK commands above before execution of any + DML statement (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the + transaction. + +These inconveniences will disappear in the future when the ability to read +dirty (uncommitted) data (regardless of isolation level) and true +referential integrity will be implemented. Detailed Change List - 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) +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 startup 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) +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 startup 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.5.1 Release 6.4.2 + Release Notes + ------------------------------------------------------------------------ - 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 - The 6.4.1 release was improperly packaged. This also has one - additional bug fix. +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.*. +A dump/restore is not required for those running 6.4.*. Detailed Change List - Fix for datetime constant problem on some platforms(Thomas) +Fix for datetime constant problem on some platforms(Thomas) + + ------------------------------------------------------------------------ +Release 6.5 Release 6.4.1 + Release Notes + ------------------------------------------------------------------------ Release 6.4.1 - 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 - A dump/restore is not required for those running 6.4. +A dump/restore is not required for those running 6.4. Detailed Change List - 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) +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.2 Release 6.4 + Release Notes + ------------------------------------------------------------------------ Release 6.4 - 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: - o 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. - o Jan also contributed a second procedural language, PL/pgSQL, to go - with the original PL/pgTCL procedural language he contributed last - release. - o We have optional multiple-byte character set support from Tatsuo - Iishi to complement our existing locale support. - o Client/server communications has been cleaned up, with better - support for asynchronous messages and interrupts thanks to Tom - Lane. - o 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. - o 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. - o Several more SQL92-compatible syntax features have been added, - including INSERT DEFAULT VALUES - o The automatic configuration and installation system has received - some attention, and should be more robust for more platforms than - it has ever been. +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 v6.4 - A dump/restore using pg_dump or pg_dumpall is required for those - wishing to migrate data from any previous release of Postgres. +A dump/restore using pg_dump or pg_dumpall is required for those wishing to +migrate data from any previous release of Postgres. Detailed Change List - 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) +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 startup 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) +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 startup 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) +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.4.1 Release 6.3.2 + Release Notes + ------------------------------------------------------------------------ Release 6.3.2 - 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: - o Repairs automatic configuration support for some platforms, - including Linux, from breakage inadvertently introduced in v6.3.1. - o 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. +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. Detailed Change List - 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) +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.4 Release 6.3.1 + Release Notes + ------------------------------------------------------------------------ Release 6.3.1 - Summary: - o Additional support for multi-byte character sets. - o Repair byte ordering for mixed-endian clients and servers. - o Minor updates to allowed SQL syntax. - o 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. - For upgrades from pre-v6.3 installations, refer to the installation - and migration instructions for v6.3. +Summary: + + * Additional support for multi-byte character sets. + + * Repair byte ordering for mixed-endian clients and servers. + + * Minor updates to allowed SQL syntax. + + * 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. + +For upgrades from pre-v6.3 installations, refer to the installation and +migration instructions for v6.3. Detailed Change List - 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) +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.2 Release 6.3 + Release Notes + ------------------------------------------------------------------------ Release 6.3 - There are many new features and improvements in this release. Here - is a brief, incomplete summary: - o Many new SQL features, including full SQL92 subselect capability - (everything is here but target-list subselects). - o Support for client-side environment variables to specify time zone - and date style. - o Socket interface for client/server connection. This is the default - now so you may need to start postmaster with the ?-i? flag. - o Better password authorization mechanisms. Default table - permissions have changed. - o Old-style ?time travel? has been removed. Performance has been - improved. +There are many new features and improvements in this release. Here is a +brief, incomplete summary: - Note: Bruce Momjian wrote the following notes to introduce the - new release. + * Many new SQL features, including full SQL92 subselect capability + (everything is here but target-list subselects). - 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. + * 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. +A dump/restore using pg_dump or pg_dumpall is required for those wishing to +migrate data from any previous release of Postgres. Detailed Change List - 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) +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 startup(Andrew) - Modify sample startup 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) +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 startup(Andrew) +Modify sample startup 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) +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.3.1 Release 6.2.1 + Release Notes + ------------------------------------------------------------------------ Release 6.2.1 - v6.2.1 is a bug-fix and usability release on v6.2. - Summary: - o Allow strings to span lines, per SQL92. - o 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. +v6.2.1 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: +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. - update pg_aggregate set aggfinalfn = 'cash_div_flt8' - where aggname = 'avg' and aggbasetype = 790; +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. - This will need to be done to every existing database, including - template1. +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. Detailed Change List - Changes in this release - ----------------------- - 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) +Changes in this release +----------------------- +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.3 Release 6.2 + Release Notes + ------------------------------------------------------------------------ Release 6.2 - A dump/restore is required for those wishing to migrate data from - previous releases of Postgres. +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. +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. +Those migrating from earlier 1.* releases should first upgrade to 1.09 +because the COPY output format was improved from the 1.02 release. Detailed Change List - 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) +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 startup 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) +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 startup 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 attdisbursion(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) +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 attdisbursion(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.2.1 Release 6.1.1 + Release Notes + ------------------------------------------------------------------------ Release 6.1.1 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. +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. Detailed Change List - Changes in this release - ----------------------- - 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) +Changes in this release +----------------------- +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.2 Release 6.1 + Release Notes + ------------------------------------------------------------------------ Release 6.1 - 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). +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. +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. Detailed Change List - 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) +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) +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 +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.1.1 Release v6.0 + Release Notes + ------------------------------------------------------------------------ Release v6.0 - A dump/restore is required for those wishing to migrate data from - previous releases of Postgres. +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. +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. +Those migrating from earlier 1.* releases should first upgrade to 1.09 +because the COPY output format was improved from the 1.02 release. Detailed Change List - 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) +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) +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 +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 6.1 Release v1.09 + Release Notes + ------------------------------------------------------------------------ Release v1.09 - Sorry, we stopped keeping 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. +Sorry, we stopped keeping 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 v6.0 Release v1.02 + Release Notes + ------------------------------------------------------------------------ Release v1.02 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. +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. - 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. + 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. - In order to upgrade older postgres95 version 1.01 or 1.02 databases - to version 1.02.1, the following steps are required: + 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. - 1. Start up a new 1.02.1 postmaster - 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: - % 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. +In order to upgrade older postgres95 version 1.01 or 1.02 databases to +version 1.02.1, the following steps are required: + + 1. Start up a new 1.02.1 postmaster + + 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: + + % 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. 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. +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. - sed 's/^\.$/\\./g' out_file + 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. +If you are loading an older binary copy or non-stdout copy, there is no +end-of-data character, and hence no conversion necessary. - -- 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); +-- 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); Detailed Change List - Source code maintenance and development - * worldwide team of volunteers - * the source tree now in CVS at ftp.ki.net +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 +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 - Bug Fixes (almost too numerous to mention) - * indexes - * storage management - * check for NULL pointer before dereferencing - * Makefile fixes +Bug Fixes (almost too numerous to mention) + * indexes + * storage management + * check for NULL pointer before dereferencing + * Makefile fixes - New Ports - * added SolarisX86 port - * added BSDI 2.1 port - * added DGUX port +New Ports + * added SolarisX86 port + * added BSDI 2.1 port + * added DGUX port + + ------------------------------------------------------------------------ +Release v1.09 Release v1.01 + Release Notes + ------------------------------------------------------------------------ Release v1.01 Migration from v1.0 to v1.01 - 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. - In order to postgres95 version 1.01 with databases created with - postgres95 version 1.0, the following steps are required: +The following notes are for the benefit of users who want to migrate +databases from postgres95 1.0 to postgres95 1.01. - 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 +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. - 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'; +In order to postgres95 version 1.01 with databases created with postgres95 +version 1.0, the following steps are required: - -- add builtin functions that are new to 1.01 + 1. Set the definition of NAMEDATALEN in src/Makefile.global to 16 and + OIDNAMELEN to 20. - 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); + 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. +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 +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 +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 v1.02 Release v1.0 + Release Notes + ------------------------------------------------------------------------ Release v1.0 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. +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 +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 +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 +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 v1.01 Postgres95 Beta 0.03 + Release Notes + ------------------------------------------------------------------------ Postgres95 Beta 0.03 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) +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. +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. + 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. + 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 + "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) +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. +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. +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, +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 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. +New documentation: + * the user manual has been revised and libpq documentation added. + + ------------------------------------------------------------------------ +Release v1.0 Postgres95 Beta 0.02 + Release Notes + ------------------------------------------------------------------------ Postgres95 Beta 0.02 Detailed Change List - 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.) +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. - 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 +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 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 +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 Beta 0.03 Postgres95 Beta 0.01 + Release Notes + ------------------------------------------------------------------------ Postgres95 Beta 0.01 - Initial release. +Initial release. + ------------------------------------------------------------------------ +Postgres95 Beta 0.02 Timing Results + Release Notes +Prev + ------------------------------------------------------------------------ + +Timing Results + +These timing results are from running the regression test with the commands + +% cd src/test/regress +% make all +% time make runtest + + +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. + +v6.5 + +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. + +Timing with fsync() disabled: + + 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 + + +Timing with fsync() enabled: + + Time System + 04:21 Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486 + + +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 + +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!). + + Time System + 02:26 Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486 + +v6.3 + +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!). + + 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 + +v6.1 + + 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 + + ------------------------------------------------------------------------ +Prev Home +Postgres95 Beta 0.01