From: Tom Lane Date: Thu, 3 Jan 2008 21:36:29 +0000 (+0000) Subject: Update release notes for security releases. X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=45786ef0b290145bcf12e150f1dd904d3c14cc12;p=users%2Fbernd%2Fpostgres.git Update release notes for security releases. Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601 --- diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index daec04179f..3df1ee8da9 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -26,7 +26,7 @@ non-ASCII characters convert to HTML4 entity (&) escapes wrap long lines For new features, add links to the documentation sections. Use -so that perl can remove it so HISTORY.html can be created with no +so that Perl can remove it so HISTORY.html can be created with no links to the main documentation. This was added only in 8.2, so don't do it for earlier branch release files. @@ -35,272 +35,384 @@ do it for earlier branch release files. Release Notes - - Release 7.3.20 + + Release 7.3.21 - - Release date - 2007-09-17 - + + Release date + 2008-01-07 + + + + This release contains a variety of fixes from 7.3.20, + including fixes for significant security issues. + + + + This is expected to be the last PostgreSQL release + in the 7.3.X series. Users are encouraged to update to a newer + release branch soon. + + + + Migration to Version 7.3.21 - This release contains fixes from 7.3.19. + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. - - Migration to version 7.3.20 + - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. - + + Changes - + - - Changes + + + Prevent functions in indexes from executing with the privileges of + the user running VACUUM, ANALYZE, etc (Tom) + - + + Functions used in index expressions and partial-index + predicates are evaluated whenever a new table entry is made. It has + long been understood that this poses a risk of trojan-horse code + execution if one modifies a table owned by an untrustworthy user. + (Note that triggers, defaults, check constraints, etc. pose the + same type of risk.) But functions in indexes pose extra danger + because they will be executed by routine maintenance operations + such as VACUUM FULL, which are commonly performed + automatically under a superuser account. For example, a nefarious user + can execute code with superuser privileges by setting up a + trojan-horse index definition and waiting for the next routine vacuum. + The fix arranges for standard maintenance operations + (including VACUUM, ANALYZE, REINDEX, + and CLUSTER) to execute as the table owner rather than + the calling user, using the same privilege-switching mechanism already + used for SECURITY DEFINER functions. To prevent bypassing + this security measure, execution of SET SESSION + AUTHORIZATION and SET ROLE is now forbidden within a + SECURITY DEFINER context. (CVE-2007-6600) + + - - - Prevent index corruption when a transaction inserts rows and - then aborts close to the end of a concurrent VACUUM - on the same table (Tom) - - + + + Require non-superusers who use /contrib/dblink to use only + password authentication, as a security measure (Joe) + - - - Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom) - - + + The fix that appeared for this in 7.3.20 was incomplete, as it plugged + the hole for only some dblink functions. (CVE-2007-6601, + CVE-2007-3278) + + - - - Fix crash when log_min_error_statement logging runs out - of memory (Tom) - - + + + Fix potential crash in translate() when using a multibyte + database encoding (Tom) + + - - - Require non-superusers who use /contrib/dblink to use only - password authentication, as a security measure (Joe) - - + + + Make contrib/tablefunc's crosstab() handle + NULL rowid as a category in its own right, rather than crashing (Joe) + + + + + + Require a specific version of Autoconf to be used + when re-generating the configure script (Peter) + + + + This affects developers and packagers only. The change was made + to prevent accidental use of untested combinations of + Autoconf and PostgreSQL versions. + You can remove the version check if you really want to use a + different Autoconf version, but it's + your responsibility whether the result works or not. + + - + - - + + - - Release 7.3.19 + + Release 7.3.20 - - Release date - 2007-04-23 - + + Release date + 2007-09-17 + + + + This release contains fixes from 7.3.19. + + + + Migration to Version 7.3.20 - This release contains fixes from 7.3.18, - including a security fix. + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. - - Migration to version 7.3.19 - - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. - + - + + Changes - - Changes + - + + + Prevent index corruption when a transaction inserts rows and + then aborts close to the end of a concurrent VACUUM + on the same table (Tom) + + - + - Support explicit placement of the temporary-table schema within - search_path, and disable searching it for functions - and operators (Tom) + Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom) + + + - This is needed to allow a security-definer function to set a - truly secure value of search_path. Without it, - an unprivileged SQL user can use temporary objects to execute code - with the privileges of the security-definer function (CVE-2007-2138). - See CREATE FUNCTION for more information. + Fix crash when log_min_error_statement logging runs out + of memory (Tom) - + - + - Fix potential-data-corruption bug in how VACUUM FULL handles - UPDATE chains (Tom, Pavan Deolasee) + Require non-superusers who use /contrib/dblink to use only + password authentication, as a security measure (Joe) - + - + - - + + - - Release 7.3.18 + + Release 7.3.19 - - Release date - 2007-02-05 - + + Release date + 2007-04-23 + + + + This release contains fixes from 7.3.18, + including a security fix. + + + + Migration to Version 7.3.19 - This release contains a variety of fixes from 7.3.17, including - a security fix. + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. - - Migration to version 7.3.18 + + + + Changes + + + + + Support explicit placement of the temporary-table schema within + search_path, and disable searching it for functions + and operators (Tom) + - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. + This is needed to allow a security-definer function to set a + truly secure value of search_path. Without it, + an unprivileged SQL user can use temporary objects to execute code + with the privileges of the security-definer function (CVE-2007-2138). + See CREATE FUNCTION for more information. + - + + + Fix potential-data-corruption bug in how VACUUM FULL handles + UPDATE chains (Tom, Pavan Deolasee) + + - - Changes + - + + - - - Remove security vulnerability that allowed connected users - to read backend memory (Tom) - - - The vulnerability involves changing the - data type of a table column used in a SQL function (CVE-2007-0555). - This error can easily be exploited to cause a backend crash, and in - principle might be used to read database content that the user - should not be able to access. - - + + Release 7.3.18 - - - Fix rare bug wherein btree index page splits could fail - due to choosing an infeasible split point (Heikki Linnakangas) - - + + Release date + 2007-02-05 + - - - Tighten security of multi-byte character processing for UTF8 sequences - over three bytes long (Tom) - - + + This release contains a variety of fixes from 7.3.17, including + a security fix. + - + + Migration to Version 7.3.18 - - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. + - - Release 7.3.17 + - - Release date - 2007-01-08 - + + Changes - - This release contains a variety of fixes from 7.3.16. - + - - Migration to version 7.3.17 + + + Remove security vulnerability that allowed connected users + to read backend memory (Tom) + + + The vulnerability involves changing the + data type of a table column used in a SQL function (CVE-2007-0555). + This error can easily be exploited to cause a backend crash, and in + principle might be used to read database content that the user + should not be able to access. + + + - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. + Fix rare bug wherein btree index page splits could fail + due to choosing an infeasible split point (Heikki Linnakangas) + - + + + Tighten security of multi-byte character processing for UTF8 sequences + over three bytes long (Tom) + + - - Changes + - + + - - - to_number() and to_char(numeric) - are now STABLE, not IMMUTABLE, for - new initdb installs (Tom) - + + Release 7.3.17 - - This is because lc_numeric can potentially - change the output of these functions. - - + + Release date + 2007-01-08 + - - - Improve index usage of regular expressions that use parentheses (Tom) - + + This release contains a variety of fixes from 7.3.16. + - - This improves psql \d performance also. - - + + Migration to Version 7.3.17 - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. + - - + - - Release 7.3.16 + + Changes - - Release date - 2006-10-16 - + - - This release contains a variety of fixes from 7.3.15. - + + + to_number() and to_char(numeric) + are now STABLE, not IMMUTABLE, for + new initdb installs (Tom) + - - Migration to version 7.3.16 + + This is because lc_numeric can potentially + change the output of these functions. + + - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. - + + + Improve index usage of regular expressions that use parentheses (Tom) + - + + This improves psql \d performance also. + + - - Changes + + + + + + + Release 7.3.16 + + + Release date + 2006-10-16 + + + + This release contains a variety of fixes from 7.3.15. + + + + Migration to Version 7.3.16 + + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. + + + + + + Changes Fix corner cases in pattern matching for - psql's \d commands + psql's \d commands Fix index-corrupting bugs in /contrib/ltree - (Teodor) + (Teodor) Back-port 7.4 spinlock code to improve performance and support 64-bit architectures better Fix SSL-related memory leak in libpq @@ -309,46 +421,46 @@ do it for earlier branch release files. - - + + - - Release 7.3.15 + + Release 7.3.15 - - Release date - 2006-05-23 - + + Release date + 2006-05-23 + - - This release contains a variety of fixes from 7.3.14, - including patches for extremely serious security issues. - + + This release contains a variety of fixes from 7.3.14, + including patches for extremely serious security issues. + - - Migration to version 7.3.15 + + Migration to Version 7.3.15 - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. + - - Full security against the SQL-injection attacks described in - CVE-2006-2313 and CVE-2006-2314 might require changes in application - code. If you have applications that embed untrustworthy strings - into SQL commands, you should examine them as soon as possible to - ensure that they are using recommended escaping techniques. In - most cases, applications should be using subroutines provided by - libraries or drivers (such as libpq's - PQescapeStringConn()) to perform string escaping, - rather than relying on ad hoc code to do it. - - + + Full security against the SQL-injection attacks described in + CVE-2006-2313 and CVE-2006-2314 might require changes in application + code. If you have applications that embed untrustworthy strings + into SQL commands, you should examine them as soon as possible to + ensure that they are using recommended escaping techniques. In + most cases, applications should be using subroutines provided by + libraries or drivers (such as libpq's + PQescapeStringConn()) to perform string escaping, + rather than relying on ad hoc code to do it. + + - - Changes + + Changes Change the server to reject invalidly-encoded multibyte @@ -401,33 +513,33 @@ Fuhr) Fix various minor memory leaks - - + + - - Release 7.3.14 + + Release 7.3.14 - - Release date - 2006-02-14 - + + Release date + 2006-02-14 + - - This release contains a variety of fixes from 7.3.13. - + + This release contains a variety of fixes from 7.3.13. + - - Migration to version 7.3.14 + + Migration to Version 7.3.14 - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.13, see the release - notes for 7.3.13. - - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.13, see the release + notes for 7.3.13. + + - - Changes + + Changes @@ -458,36 +570,36 @@ and isinf during configure (Tom) - - + + - - Release 7.3.13 + + Release 7.3.13 - - Release date - 2006-01-09 - + + Release date + 2006-01-09 + - - This release contains a variety of fixes from 7.3.12. - + + This release contains a variety of fixes from 7.3.12. + - - Migration to version 7.3.13 + + Migration to Version 7.3.13 - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.10, see the release - notes for 7.3.10. - Also, you might need to REINDEX indexes on textual - columns after updating, if you are affected by the locale or - plperl issues described below. - - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.10, see the release + notes for 7.3.10. + Also, you might need to REINDEX indexes on textual + columns after updating, if you are affected by the locale or + plperl issues described below. + + - - Changes + + Changes @@ -520,33 +632,33 @@ what's actually returned by the query (Joe) - - + + - - Release 7.3.12 + + Release 7.3.12 - - Release date - 2005-12-12 - + + Release date + 2005-12-12 + - - This release contains a variety of fixes from 7.3.11. - + + This release contains a variety of fixes from 7.3.11. + - - Migration to version 7.3.12 + + Migration to Version 7.3.12 - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.10, see the release - notes for 7.3.10. - - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.10, see the release + notes for 7.3.10. + + - - Changes + + Changes @@ -567,33 +679,33 @@ table has been dropped - - + + - - Release 7.3.11 + + Release 7.3.11 - - Release date - 2005-10-04 - + + Release date + 2005-10-04 + - - This release contains a variety of fixes from 7.3.10. - + + This release contains a variety of fixes from 7.3.10. + - - Migration to version 7.3.11 + + Migration to Version 7.3.11 - - A dump/restore is not required for those running 7.3.X. However, - if you are upgrading from a version earlier than 7.3.10, see the release - notes for 7.3.10. - - + + A dump/restore is not required for those running 7.3.X. However, + if you are upgrading from a version earlier than 7.3.10, see the release + notes for 7.3.10. + + - - Changes + + Changes Fix error that allowed VACUUM to remove @@ -618,87 +730,87 @@ enabled the variable is of pass-by-reference type - - + + - - Release 7.3.10 + + Release 7.3.10 - - Release date - 2005-05-09 - + + Release date + 2005-05-09 + - - This release contains a variety of fixes from 7.3.9, including several - security-related issues. - + + This release contains a variety of fixes from 7.3.9, including several + security-related issues. + - - Migration to version 7.3.10 + + Migration to Version 7.3.10 - - A dump/restore is not required for those running 7.3.X. However, - it is one possible way of handling a significant security problem - that has been found in the initial contents of 7.3.X system - catalogs. A dump/initdb/reload sequence using 7.3.10's initdb will - automatically correct this problem. - + + A dump/restore is not required for those running 7.3.X. However, + it is one possible way of handling a significant security problem + that has been found in the initial contents of 7.3.X system + catalogs. A dump/initdb/reload sequence using 7.3.10's initdb will + automatically correct this problem. + - - The security problem is that the built-in character set encoding - conversion functions can be invoked from SQL commands by unprivileged - users, but the functions were not designed for such use and are not - secure against malicious choices of arguments. The fix involves changing - the declared parameter list of these functions so that they can no longer - be invoked from SQL commands. (This does not affect their normal use - by the encoding conversion machinery.) - It is strongly recommended that all installations repair this error, - either by initdb or by following the manual repair procedure given - below. The error at least allows unprivileged database users to crash - their server process, and might allow unprivileged users to gain the - privileges of a database superuser. - + + The security problem is that the built-in character set encoding + conversion functions can be invoked from SQL commands by unprivileged + users, but the functions were not designed for such use and are not + secure against malicious choices of arguments. The fix involves changing + the declared parameter list of these functions so that they can no longer + be invoked from SQL commands. (This does not affect their normal use + by the encoding conversion machinery.) + It is strongly recommended that all installations repair this error, + either by initdb or by following the manual repair procedure given + below. The error at least allows unprivileged database users to crash + their server process, and might allow unprivileged users to gain the + privileges of a database superuser. + - - If you wish not to do an initdb, perform the following procedure instead. - As the database superuser, do: + + If you wish not to do an initdb, perform the following procedure instead. + As the database superuser, do: BEGIN; UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype WHERE pronamespace = 11 AND pronargs = 5 - AND proargtypes[2] = 'cstring'::regtype; + AND proargtypes[2] = 'cstring'::regtype; -- The command should report having updated 90 rows; -- if not, rollback and investigate instead of committing! COMMIT; - + - - The above procedure must be carried out in each database - of an installation, including template1, and ideally - including template0 as well. If you do not fix the - template databases then any subsequently created databases will contain - the same error. template1 can be fixed in the same way - as any other database, but fixing template0 requires - additional steps. First, from any database issue: + + The above procedure must be carried out in each database + of an installation, including template1, and ideally + including template0 as well. If you do not fix the + template databases then any subsequently created databases will contain + the same error. template1 can be fixed in the same way + as any other database, but fixing template0 requires + additional steps. First, from any database issue: UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; - Next connect to template0 and perform the above repair - procedure. Finally, do: + Next connect to template0 and perform the above repair + procedure. Finally, do: -- re-freeze template0: VACUUM FREEZE; -- and protect it against future alterations: UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; - - + + - - Changes + + Changes Change encoding function signature to prevent @@ -744,32 +856,32 @@ month-related formats RECORD - - + + - - Release 7.3.9 + + Release 7.3.9 - - Release date - 2005-01-31 - + + Release date + 2005-01-31 + - - This release contains a variety of fixes from 7.3.8, including several - security-related issues. - + + This release contains a variety of fixes from 7.3.8, including several + security-related issues. + - - Migration to version 7.3.9 + + Migration to Version 7.3.9 - - A dump/restore is not required for those running 7.3.X. - - + + A dump/restore is not required for those running 7.3.X. + + - - Changes + + Changes Disallow LOAD to non-superusers @@ -800,32 +912,32 @@ in case of nested merge joins could give outright wrong answers. datestyles - - + + - - Release 7.3.8 + + Release 7.3.8 - - Release date - 2004-10-22 - + + Release date + 2004-10-22 + - - This release contains a variety of fixes from 7.3.7. - + + This release contains a variety of fixes from 7.3.7. + - - Migration to version 7.3.8 + + Migration to Version 7.3.8 - - A dump/restore is not required for those running 7.3.X. - - + + A dump/restore is not required for those running 7.3.X. + + - - Changes + + Changes Repair possible failure to update hint bits on disk @@ -850,32 +962,32 @@ concern since there is no reason for non-developers to use this script anyway. - - + + - - Release 7.3.7 + + Release 7.3.7 - - Release date - 2004-08-16 - + + Release date + 2004-08-16 + - - This release contains one critical fix over 7.3.6, and some minor items. - + + This release contains one critical fix over 7.3.6, and some minor items. + - - Migration to version 7.3.7 + + Migration to Version 7.3.7 - - A dump/restore is not required for those running 7.3.X. - - + + A dump/restore is not required for those running 7.3.X. + + - - Changes + + Changes Prevent possible loss of committed transactions during crash @@ -890,34 +1002,34 @@ since PostgreSQL 7.1. Properly schema-qualify function names when pg_dump'ing a CAST - - + + + + + Release 7.3.6 + + + Release date + 2004-03-02 + + + + This release contains a variety of fixes from 7.3.5. + - - Release 7.3.6 - - Release date - 2004-03-02 - + + Migration to Version 7.3.6 - This release contains a variety of fixes from 7.3.5. + A dump/restore is not required for those + running 7.3.*. + - - Migration to version 7.3.6 - - - A dump/restore is not required for those - running 7.3.*. - - - - - - Changes + + Changes Revert erroneous changes in rule permissions checking @@ -955,33 +1067,33 @@ in multibyte cases (Korea PostgreSQL Users' Group) operations on bytea columns (Joe) - - + + - - Release 7.3.5 + + Release 7.3.5 - - Release date - 2003-12-03 - + + Release date + 2003-12-03 + - - This has a variety of fixes from 7.3.4. - + + This has a variety of fixes from 7.3.4. + - - Migration to version 7.3.5 + + Migration to Version 7.3.5 - - A dump/restore is not required for those - running 7.3.*. - - + + A dump/restore is not required for those + running 7.3.*. + + - - Changes + + Changes Force zero_damaged_pages to be on during recovery from WAL @@ -1006,33 +1118,33 @@ operations on bytea columns (Joe) Fix corner case for btree search in parallel with first root page split - - + + - - Release 7.3.4 + + Release 7.3.4 - - Release date - 2003-07-24 - + + Release date + 2003-07-24 + - - This has a variety of fixes from 7.3.3. - + + This has a variety of fixes from 7.3.3. + - - Migration to version 7.3.4 + + Migration to Version 7.3.4 - - A dump/restore is not required for those - running 7.3.*. - - + + A dump/restore is not required for those + running 7.3.*. + + - - Changes + + Changes Repair breakage in timestamp-to-date conversion for dates before 2000 @@ -1045,33 +1157,33 @@ operations on bytea columns (Joe) Work around buggy strxfrm() present in some Solaris releases (Tom) Properly escape jdbc setObject() strings to improve security (Barry) - - + + - - Release 7.3.3 + + Release 7.3.3 - - Release date - 2003-05-22 - + + Release date + 2003-05-22 + - - This release contains a variety of fixes for version 7.3.2. - + + This release contains a variety of fixes for version 7.3.2. + - - Migration to version 7.3.3 + + Migration to Version 7.3.3 - - A dump/restore is not required for those - running version 7.3.*. - - + + A dump/restore is not required for those + running version 7.3.*. + + - - Changes + + Changes Repair sometimes-incorrect computation of StartUpID after a crash @@ -1087,21 +1199,21 @@ operations on bytea columns (Joe) Issue notice, not error, if TIMESTAMP, TIME, or INTERVAL precision too large Fix abstime-to-time cast function (fix is - not applied unless you initdb) + not applied unless you initdb) Fix pg_proc entry for - timestampt_izone (fix is not applied unless you - initdb) + timestampt_izone (fix is not applied unless you + initdb) Make EXTRACT(EPOCH FROM timestamp without time zone) treat input as local time 'now'::timestamptz gave wrong answer if timezone changed earlier in transaction HAVE_INT64_TIMESTAMP code for time with timezone overwrote its input Accept GLOBAL TEMP/TEMPORARY as a - synonym for TEMPORARY + synonym for TEMPORARY Avoid improper schema-privilege-check failure in foreign-key triggers Fix bugs in foreign-key triggers for SET DEFAULT action Fix incorrect time-qual check in row fetch for - UPDATE and DELETE triggers + UPDATE and DELETE triggers Foreign-key clauses were parsed but ignored in - ALTER TABLE ADD COLUMN + ALTER TABLE ADD COLUMN Fix createlang script breakage for case where handler function already exists Fix misbehavior on zero-column tables in pg_dump, COPY, ANALYZE, other places Fix misbehavior of func_error() on type names containing '%' @@ -1135,13 +1247,13 @@ operations on bytea columns (Joe) Fix replace_vars_with_subplan_refs failure in complex views Fix regexp slowness in single-byte encodings (Tatsuo) Allow qualified type names in CREATE CAST - and DROP CAST + and DROP CAST Accept SETOF type[], which formerly had to - be written SETOF _type + be written SETOF _type Fix pg_dump core dump in some cases with procedural languages Force ISO datestyle in pg_dump output, for portability (Oliver) pg_dump failed to handle error return - from lo_read (Oleg Drokin) + from lo_read (Oleg Drokin) pg_dumpall failed with groups having no members (Nick Eskelinen) pg_dumpall failed to recognize --globals-only switch pg_restore failed to restore blobs if -X disable-triggers is specified @@ -1155,34 +1267,34 @@ operations on bytea columns (Joe) Fixed problem with parsing table ACLs in JDBC Better error message for character set conversion problems in JDBC - - + + - - Release 7.3.2 + + Release 7.3.2 - - Release date - 2003-02-04 - + + Release date + 2003-02-04 + - - This release contains a variety of fixes for version 7.3.1. - + + This release contains a variety of fixes for version 7.3.1. + - - Migration to version 7.3.2 + + Migration to Version 7.3.2 - - A dump/restore is not required for those - running version 7.3.*. - - + + A dump/restore is not required for those + running version 7.3.*. + + - - Changes + + Changes Restore creation of OID column in CREATE TABLE AS / SELECT INTO @@ -1216,37 +1328,37 @@ operations on bytea columns (Joe) Add casts between types lo and oid in contrib/lo fastpath code now checks for privilege to call function - - + + - - Release 7.3.1 + + Release 7.3.1 - - Release date - 2002-12-18 - + + Release date + 2002-12-18 + - - This release contains a variety of fixes for version 7.3. - + + This release contains a variety of fixes for version 7.3. + - - Migration to version 7.3.1 + + Migration to Version 7.3.1 - - A dump/restore is not required for those - running version 7.3. However, it should be noted that the main - PostgreSQL interface library, libpq, - has a new major version number for this release, which might require - recompilation of client code in certain cases. - - + + A dump/restore is not required for those + running version 7.3. However, it should be noted that the main + PostgreSQL interface library, libpq, + has a new major version number for this release, which might require + recompilation of client code in certain cases. + + - - Changes + + Changes Fix a core dump of COPY TO when client/server encodings don't match (Tom) @@ -1266,265 +1378,265 @@ operations on bytea columns (Joe) SSL fixes (Nathan Mueller) Prevent composite column creation via ALTER TABLE (Tom) - - - - - - Release 7.3 - - - Release date - 2002-11-27 - - - - Overview - - - Major changes in this release: - - - - - Schemas - - - Schemas allow users to create objects in separate namespaces, - so two people or applications can have tables with the same - name. There is also a public schema for shared tables. - Table/index creation can be restricted by removing privileges - on the public schema. - - - - - - Drop Column - - - PostgreSQL now supports the - ALTER TABLE ... DROP COLUMN functionality. - - - - - - Table Functions - - - Functions returning multiple rows and/or multiple columns are - now much easier to use than before. You can call such a - table function in the SELECT - FROM clause, treating its output like a - table. Also, PL/pgSQL functions can - now return sets. - - - - - - Prepared Queries - - - PostgreSQL now supports prepared - queries, for improved performance. - - - - - - Dependency Tracking - - - PostgreSQL now records object - dependencies, which allows improvements in many areas. - DROP statements now take either - CASCADE or RESTRICT to control whether - dependent objects are also dropped. - - - - - - Privileges - - - Functions and procedural languages now have privileges, and - functions can be defined to run with the privileges of their - creator. - - - - - - Internationalization - - - Both multibyte and locale support are now always enabled. - - - - - - Logging - - - A variety of logging options have been enhanced. - - - - - - Interfaces - - - A large number of interfaces have been moved to http://gborg.postgresql.org - where they can be developed and released independently. - - - + + - - Functions/Identifiers - - - By default, functions can now take up to 32 parameters, and - identifiers can be up to 63 bytes long. Also, OPAQUE - is now deprecated: there are specific pseudo-datatypes - to represent each of the former meanings of OPAQUE - in function argument and result types. - - - - - + + Release 7.3 - - Migration to version 7.3 + + Release date + 2002-11-27 + - - A dump/restore using pg_dump is required for those - wishing to migrate data from any previous release. If your - application examines the system catalogs, additional changes will - be required due to the introduction of schemas in 7.3; for more - information, see: . - + + Overview - - Observe the following incompatibilities: - + + Major changes in this release: + - + + + Schemas - Pre-6.3 clients are no longer supported. + Schemas allow users to create objects in separate namespaces, + so two people or applications can have tables with the same + name. There is also a public schema for shared tables. + Table/index creation can be restricted by removing privileges + on the public schema. + + + Drop Column - pg_hba.conf now has a column for the user - name and additional features. Existing files need to be - adjusted. + PostgreSQL now supports the + ALTER TABLE ... DROP COLUMN functionality. + + + Table Functions - Several postgresql.conf logging parameters - have been renamed. + Functions returning multiple rows and/or multiple columns are + now much easier to use than before. You can call such a + table function in the SELECT + FROM clause, treating its output like a + table. Also, PL/pgSQL functions can + now return sets. + + + Prepared Queries - LIMIT #,# has been disabled; use - LIMIT # OFFSET #. + PostgreSQL now supports prepared + queries, for improved performance. + + + Dependency Tracking - INSERT statements with column lists must - specify a value for each specified column. For example, - INSERT INTO tab (col1, col2) VALUES ('val1') - is now invalid. It's still allowed to supply fewer columns than - expected if the INSERT does not have a column list. + PostgreSQL now records object + dependencies, which allows improvements in many areas. + DROP statements now take either + CASCADE or RESTRICT to control whether + dependent objects are also dropped. + + + Privileges - serial columns are no longer automatically - UNIQUE; thus, an index will not automatically be - created. + Functions and procedural languages now have privileges, and + functions can be defined to run with the privileges of their + creator. + + + Internationalization - A SET command inside an aborted transaction - is now rolled back. + Both multibyte and locale support are now always enabled. + + + Logging - COPY no longer considers missing trailing - columns to be null. All columns need to be specified. - (However, one can achieve a similar effect by specifying a - column list in the COPY command.) + A variety of logging options have been enhanced. + + + Interfaces - The data type timestamp is now equivalent to - timestamp without time zone, instead of - timestamp with time zone. + A large number of interfaces have been moved to http://gborg.postgresql.org + where they can be developed and released independently. + + + Functions/Identifiers - Pre-7.3 databases loaded into 7.3 will not have the new object - dependencies for serial columns, unique - constraints, and foreign keys. See the directory - contrib/adddepend/ for a detailed - description and a script that will add such dependencies. + By default, functions can now take up to 32 parameters, and + identifiers can be up to 63 bytes long. Also, OPAQUE + is now deprecated: there are specific pseudo-datatypes + to represent each of the former meanings of OPAQUE + in function argument and result types. + - - - An empty string ('') is no longer allowed as - the input into an integer field. Formerly, it was silently - interpreted as 0. - - + + - - + + Migration to Version 7.3 + + + A dump/restore using pg_dump is required for those + wishing to migrate data from any previous release. If your + application examines the system catalogs, additional changes will + be required due to the introduction of schemas in 7.3; for more + information, see: . + + + + Observe the following incompatibilities: + + + + + + Pre-6.3 clients are no longer supported. + + + + + + pg_hba.conf now has a column for the user + name and additional features. Existing files need to be + adjusted. + + + + + + Several postgresql.conf logging parameters + have been renamed. + + + + + + LIMIT #,# has been disabled; use + LIMIT # OFFSET #. + + + + + + INSERT statements with column lists must + specify a value for each specified column. For example, + INSERT INTO tab (col1, col2) VALUES ('val1') + is now invalid. It's still allowed to supply fewer columns than + expected if the INSERT does not have a column list. + + + + + + serial columns are no longer automatically + UNIQUE; thus, an index will not automatically be + created. + + + + + + A SET command inside an aborted transaction + is now rolled back. + + + + + + COPY no longer considers missing trailing + columns to be null. All columns need to be specified. + (However, one can achieve a similar effect by specifying a + column list in the COPY command.) + + + + + + The data type timestamp is now equivalent to + timestamp without time zone, instead of + timestamp with time zone. + + + + + + Pre-7.3 databases loaded into 7.3 will not have the new object + dependencies for serial columns, unique + constraints, and foreign keys. See the directory + contrib/adddepend/ for a detailed + description and a script that will add such dependencies. + + + + + + An empty string ('') is no longer allowed as + the input into an integer field. Formerly, it was silently + interpreted as 0. + + + + + - - Changes + + Changes - - Server Operation + + Server Operation Add pg_locks view to show locks (Neil) Security fixes for password negotiation memory allocation (Neil) Remove support for version 0 FE/BE protocol (PostgreSQL 6.2 and earlier) (Tom) Reserve the last few backend slots for superusers, add parameter superuser_reserved_connections to control this (Nigel J. Andrews) - + - - Performance + + Performance Improve startup by calling localtime() only once (Tom) Cache system catalog information in flat files for faster startup (Tom) @@ -1545,10 +1657,10 @@ operations on bytea columns (Joe) Improve free space map performance on large tables (Stephen Marshall, Tom) Improved WAL write concurrency (Tom) - + - - Privileges + + Privileges Add privileges on functions and procedural languages (Peter) Add OWNER to CREATE DATABASE so superusers can create databases on behalf of unprivileged users (Gavin Sherry, Tom) @@ -1556,10 +1668,10 @@ operations on bytea columns (Joe) Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Tom) Allow functions to be executed with the privilege of the function owner (Peter) - + - - Server Configuration + + Server Configuration Server log messages now tagged with LOG, not DEBUG (Bruce) Add user column to pg_hba.conf (Bruce) @@ -1578,10 +1690,10 @@ operations on bytea columns (Joe) Rename show_query_stats to show_statement_stats (Bruce) Add param log_min_error_statement to print commands to logs on error (Gavin) - + - - Queries + + Queries Make cursors insensitive, meaning their contents do not change (Tom) Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce) @@ -1602,10 +1714,10 @@ operations on bytea columns (Joe) Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce) Add variable autocommit (Tom, David Van Wie) - + - - Object Manipulation + + Object Manipulation Make equals signs optional in CREATE DATABASE (Gavin Sherry) Make ALTER TABLE OWNER change index ownership too (Neil) @@ -1639,10 +1751,10 @@ operations on bytea columns (Joe) Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod) Allow better casting when inserting/updating values (Tom) - + - - Utility Commands + + Utility Commands Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom) Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo) @@ -1679,10 +1791,10 @@ operations on bytea columns (Joe) Fix rare index corruption when a page split affects bulk delete (Tom) Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera) - + - - Data Types and Functions + + Data Types and Functions Fix factorial(0) to return 1 (Bruce) Date/time/timezone improvements (Thomas) @@ -1725,10 +1837,10 @@ operations on bytea columns (Joe) Fix to_char(1,'FM999.99') to return a period (Karel) Fix trigger/type/language functions returning OPAQUE to return proper type (Tom) - + - - Internationalization + + Internationalization Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya) Enable locale support by default (Peter) @@ -1743,10 +1855,10 @@ operations on bytea columns (Joe) pg_dumpall, pg_controldata, and pg_resetxlog now national-language aware (Peter) New and updated translations - + - - Server-side Languages + + Server-side Languages Allow recursive SQL function (Peter) Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter) @@ -1756,10 +1868,10 @@ operations on bytea columns (Joe) Make PL/pgSQL schema-aware (Joe) Remove some memory leaks (Nigel J. Andrews, Tom) - + - - psql + + psql Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom) Add psql \timing to time user queries (Greg Sabino Mullane) @@ -1773,10 +1885,10 @@ operations on bytea columns (Joe) Have psql reports its version number on startup (Tom) Allow \copy to specify column names (Tom) - + - - libpq + + libpq Add ~/.pgpass to store host/user password combinations (Alvaro Herrera) Add PQunescapeBytea() function to libpq (Patrick Welche) @@ -1787,10 +1899,10 @@ operations on bytea columns (Joe) Fix for SSL with non-blocking connections (Jack Bates) Add libpq connection timeout parameter (Denis A Ustimenko) - + - - JDBC + + JDBC Allow JDBC to compile with JDK 1.4 (Dave) Add JDBC 3 support (Barry) @@ -1803,10 +1915,10 @@ operations on bytea columns (Joe) Fix MD5 encryption handling for multibyte servers (Jun Kawai) Add support for prepared statements (Barry) - + - - Miscellaneous Interfaces + + Miscellaneous Interfaces Fixed ECPG bug concerning octal numbers in single quotes (Michael) Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce) @@ -1819,10 +1931,10 @@ operations on bytea columns (Joe) Remove src/bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce) Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer, Tom) - + - - Source Code + + Source Code Fix for parallel make (Peter) AIX fixes for linking Tcl (Andreas Zeugswetter) @@ -1874,10 +1986,10 @@ operations on bytea columns (Joe) Remove parameter wal_files because WAL files are now recycled (Bruce) Add version numbers to heap pages (Tom) - + - - Contrib + + Contrib Allow inet arrays in /contrib/array (Neil) GiST fixes (Teodor Sigaev, Neil) @@ -1901,34 +2013,34 @@ operations on bytea columns (Joe) Fixes to /contrib/cube (Bruno Wolff) Improve /contrib/fulltextindex (Christopher) - + - - + + - - Release 7.2.8 + + Release 7.2.8 - - Release date - 2005-05-09 - + + Release date + 2005-05-09 + - - This release contains a variety of fixes from 7.2.7, including one - security-related issue. - + + This release contains a variety of fixes from 7.2.7, including one + security-related issue. + - - Migration to version 7.2.8 + + Migration to Version 7.2.8 - - A dump/restore is not required for those running 7.2.X. - - + + A dump/restore is not required for those running 7.2.X. + + - - Changes + + Changes Repair ancient race condition that allowed a transaction to be @@ -1954,32 +2066,32 @@ month-related formats (Marko Kreen) - - + + - - Release 7.2.7 + + Release 7.2.7 - - Release date - 2005-01-31 - + + Release date + 2005-01-31 + - - This release contains a variety of fixes from 7.2.6, including several - security-related issues. - + + This release contains a variety of fixes from 7.2.6, including several + security-related issues. + - - Migration to version 7.2.7 + + Migration to Version 7.2.7 - - A dump/restore is not required for those running 7.2.X. - - + + A dump/restore is not required for those running 7.2.X. + + - - Changes + + Changes Disallow LOAD to non-superusers @@ -2002,32 +2114,32 @@ in case of nested merge joins could give outright wrong answers. datestyles - - + + - - Release 7.2.6 + + Release 7.2.6 - - Release date - 2004-10-22 - + + Release date + 2004-10-22 + - - This release contains a variety of fixes from 7.2.5. - + + This release contains a variety of fixes from 7.2.5. + - - Migration to version 7.2.6 + + Migration to Version 7.2.6 - - A dump/restore is not required for those running 7.2.X. - - + + A dump/restore is not required for those running 7.2.X. + + - - Changes + + Changes Repair possible failure to update hint bits on disk @@ -2053,32 +2165,32 @@ concern since there is no reason for non-developers to use this script anyway. Update to newer versions of Bison - - + + - - Release 7.2.5 + + Release 7.2.5 - - Release date - 2004-08-16 - + + Release date + 2004-08-16 + - - This release contains a variety of fixes from 7.2.4. - + + This release contains a variety of fixes from 7.2.4. + - - Migration to version 7.2.5 + + Migration to Version 7.2.5 - - A dump/restore is not required for those running 7.2.X. - - + + A dump/restore is not required for those running 7.2.X. + + - - Changes + + Changes Prevent possible loss of committed transactions during crash @@ -2096,33 +2208,33 @@ since PostgreSQL 7.1. Repair memory leaks in pg_dump Avoid conflict with system definition of isblank() function or macro - - + + - - Release 7.2.4 + + Release 7.2.4 - - Release date - 2003-01-30 - + + Release date + 2003-01-30 + - - This release contains a variety of fixes for version 7.2.3, - including fixes to prevent possible data loss. - + + This release contains a variety of fixes for version 7.2.3, + including fixes to prevent possible data loss. + - - Migration to version 7.2.4 + + Migration to Version 7.2.4 - - A dump/restore is not required for those - running version 7.2.*. - - + + A dump/restore is not required for those + running version 7.2.*. + + - - Changes + + Changes Fix some additional cases of VACUUM "No one parent tuple was found" error @@ -2134,34 +2246,34 @@ since PostgreSQL 7.1. Fix integer overflows in circle_poly(), path_encode(), path_add() (Neil) Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center() - - + + - - Release 7.2.3 + + Release 7.2.3 - - Release date - 2002-10-01 - + + Release date + 2002-10-01 + - - This release contains a variety of fixes for version 7.2.2, - including fixes to prevent possible data loss. - + + This release contains a variety of fixes for version 7.2.2, + including fixes to prevent possible data loss. + - - Migration to version 7.2.3 + + Migration to Version 7.2.3 - - A dump/restore is not required for those - running version 7.2.*. - - + + A dump/restore is not required for those + running version 7.2.*. + + - - Changes + + Changes Prevent possible compressed transaction log loss (Tom) @@ -2171,33 +2283,33 @@ since PostgreSQL 7.1. Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima) Fix pg_dump to properly dump FULL JOIN USING (Tom) - - + + - - Release 7.2.2 + + Release 7.2.2 - - Release date - 2002-08-23 - + + Release date + 2002-08-23 + - - This release contains a variety of fixes for version 7.2.1. - + + This release contains a variety of fixes for version 7.2.1. + - - Migration to version 7.2.2 + + Migration to Version 7.2.2 - - A dump/restore is not required for those - running version 7.2.*. - - + + A dump/restore is not required for those + running version 7.2.*. + + - - Changes + + Changes Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom) @@ -2214,229 +2326,229 @@ since PostgreSQL 7.1. Fix for crash with long DATA strings (Thomas, Neil) Fix for repeat(), lpad(), rpad() and long strings (Neil) - - + + - - Release 7.2.1 + + Release 7.2.1 - - Release date - 2002-03-21 - + + Release date + 2002-03-21 + - - This release contains a variety of fixes for version 7.2. - + + This release contains a variety of fixes for version 7.2. + - - Migration to version 7.2.1 + + Migration to Version 7.2.1 - - A dump/restore is not required for those - running version 7.2. - - + + A dump/restore is not required for those + running version 7.2. + + - - Changes + + Changes -Ensure that sequence counters do not go backwards after a crash (Tom) -Fix pgaccess kanji-conversion key binding (Tatsuo) -Optimizer improvements (Tom) -Cash I/O improvements (Tom) -New Russian FAQ -Compile fix for missing AuthBlockSig (Heiko) -Additional time zones and time zone fixes (Thomas) -Allow psql \connect to handle mixed case database and user names (Tom) -Return proper OID on command completion even with ON INSERT rules (Tom) -Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo) -Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo) -Improve handling of multiple UNIONs with different lengths (Tom) -contrib/btree_gist improvements (Teodor Sigaev) -contrib/tsearch dictionary improvements, see README.tsearch for an additional installation step (Thomas T. Thai, Teodor Sigaev) -Fix for array subscripts handling (Tom) -Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom) - - - - - - - Release 7.2 - - - Release date - 2002-02-04 - - - - Overview - - - This release improves PostgreSQL for use in - high-volume applications. - - - - Major changes in this release: - - - - - VACUUM - - - Vacuuming no longer locks tables, thus allowing normal user - access during the vacuum. A new VACUUM FULL - command does old-style vacuum by locking the table and - shrinking the on-disk copy of the table. - - - - - - Transactions - - - There is no longer a problem with installations that exceed - four billion transactions. - - - - - - OIDs - - - OIDs are now optional. Users can now create tables without - OIDs for cases where OID usage is excessive. - - - - - - Optimizer - - - The system now computes histogram column statistics during - ANALYZE, allowing much better optimizer choices. - - - +Ensure that sequence counters do not go backwards after a crash (Tom) +Fix pgaccess kanji-conversion key binding (Tatsuo) +Optimizer improvements (Tom) +Cash I/O improvements (Tom) +New Russian FAQ +Compile fix for missing AuthBlockSig (Heiko) +Additional time zones and time zone fixes (Thomas) +Allow psql \connect to handle mixed case database and user names (Tom) +Return proper OID on command completion even with ON INSERT rules (Tom) +Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo) +Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo) +Improve handling of multiple UNIONs with different lengths (Tom) +contrib/btree_gist improvements (Teodor Sigaev) +contrib/tsearch dictionary improvements, see README.tsearch for an additional installation step (Thomas T. Thai, Teodor Sigaev) +Fix for array subscripts handling (Tom) +Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom) + + + - - Security - - - A new MD5 encryption option allows more secure storage and - transfer of passwords. A new Unix-domain socket - authentication option is available on Linux and BSD systems. - - - - - Statistics - - - Administrators can use the new table access statistics module - to get fine-grained information about table and index usage. - - - + + Release 7.2 - - Internationalization - - - Program and library messages can now be displayed in several - languages. - - - + + Release date + 2002-02-04 + - - + + Overview - - Migration to version 7.2 + + This release improves PostgreSQL for use in + high-volume applications. + - - A dump/restore using pg_dump is required for - those wishing to migrate data from any previous release. - + + Major changes in this release: + - - Observe the following incompatibilities: - + + + VACUUM + + + Vacuuming no longer locks tables, thus allowing normal user + access during the vacuum. A new VACUUM FULL + command does old-style vacuum by locking the table and + shrinking the on-disk copy of the table. + + + - + + Transactions - The semantics of the VACUUM command have - changed in this release. You might wish to update your - maintenance procedures accordingly. + There is no longer a problem with installations that exceed + four billion transactions. + + + OIDs - In this release, comparisons using = NULL - will always return false (or NULL, more precisely). Previous - releases automatically transformed this syntax to IS - NULL. The old behavior can be re-enabled using a - postgresql.conf parameter. + OIDs are now optional. Users can now create tables without + OIDs for cases where OID usage is excessive. + + + Optimizer - The pg_hba.conf and pg_ident.conf - configuration is now only reloaded after receiving a - SIGHUP signal, not with each connection. + The system now computes histogram column statistics during + ANALYZE, allowing much better optimizer choices. + + + Security - The function octet_length() now returns the uncompressed data length. + A new MD5 encryption option allows more secure storage and + transfer of passwords. A new Unix-domain socket + authentication option is available on Linux and BSD systems. + + + Statistics - The date/time value 'current' is no longer - available. You will need to rewrite your applications. + Administrators can use the new table access statistics module + to get fine-grained information about table and index usage. + + + Internationalization - The timestamp(), time(), - and interval() functions are no longer - available. Instead of timestamp(), use - timestamp 'string' or CAST. + Program and library messages can now be displayed in several + languages. + - + + - - The SELECT ... LIMIT #,# syntax will be removed - in the next release. You should change your queries to use - separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET - 20. - - + + Migration to Version 7.2 - - Changes + + A dump/restore using pg_dump is required for + those wishing to migrate data from any previous release. + - - Server Operation + + Observe the following incompatibilities: + + + + + + The semantics of the VACUUM command have + changed in this release. You might wish to update your + maintenance procedures accordingly. + + + + + + In this release, comparisons using = NULL + will always return false (or NULL, more precisely). Previous + releases automatically transformed this syntax to IS + NULL. The old behavior can be re-enabled using a + postgresql.conf parameter. + + + + + + The pg_hba.conf and pg_ident.conf + configuration is now only reloaded after receiving a + SIGHUP signal, not with each connection. + + + + + + The function octet_length() now returns the uncompressed data length. + + + + + + The date/time value 'current' is no longer + available. You will need to rewrite your applications. + + + + + + The timestamp(), time(), + and interval() functions are no longer + available. Instead of timestamp(), use + timestamp 'string' or CAST. + + + + + + + The SELECT ... LIMIT #,# syntax will be removed + in the next release. You should change your queries to use + separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET + 20. + + + + + Changes + + + Server Operation Create temporary files in a separate directory (Bruce) Delete orphaned temporary files on postmaster startup (Bruce) @@ -2459,10 +2571,10 @@ since PostgreSQL 7.1. Superuser ID now fixed at 1 (Peter E) New pg_ctl "reload" option (Tom) - + - - Performance + + Performance Optimizer improvements (Tom) New histogram column statistics for optimizer (Tom) @@ -2475,10 +2587,10 @@ since PostgreSQL 7.1. R-tree performance improvements (Kenneth Been) B-tree splits more efficient (Tom) - + - - Privileges + + Privileges Change UPDATE, DELETE privileges to be distinct (Peter E) New REFERENCES, TRIGGER privileges (Peter E) @@ -2489,10 +2601,10 @@ since PostgreSQL 7.1. Fix bug in privilege modifications on newly created tables (Tom) Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom) - + - - Client Authentication + + Client Authentication Fork postmaster before doing authentication to prevent hangs (Peter E) Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce) @@ -2501,10 +2613,10 @@ since PostgreSQL 7.1. PAM authentication (Dominic J. Eidson) Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce) - + - - Server Configuration + + Server Configuration Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce) New parameter to set default transaction isolation level (Peter E) @@ -2513,10 +2625,10 @@ since PostgreSQL 7.1. New parameter to set client authentication timeout (Tom) New parameter to set maximum number of open files (Tom) - + - - Queries + + Queries Statements added by INSERT rules now execute after the INSERT (Jan) Prevent unadorned relation names in target list (Bruce) @@ -2528,10 +2640,10 @@ since PostgreSQL 7.1. Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom) Fix nested EXCEPT/INTERSECT (Tom) - + - - Schema Manipulation + + Schema Manipulation Fix SERIAL in temporary tables (Bruce) Allow temporary sequences (Bruce) @@ -2551,10 +2663,10 @@ since PostgreSQL 7.1. Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom) Enable partial indexes (Martijn van Oosterhout) - + - - Utility Commands + + Utility Commands Add RESET ALL, SHOW ALL (Marko Kreen) CREATE/ALTER USER/GROUP now allow options in any order (Vince) @@ -2567,10 +2679,10 @@ since PostgreSQL 7.1. Fix privilege checks for CREATE INDEX (Tom) Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom) - + - - Data Types and Functions + + Data Types and Functions SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom) Add convert(), convert2() (Tatsuo) @@ -2610,10 +2722,10 @@ since PostgreSQL 7.1. Some datatype() function calls now evaluated differently Add support for Julian and ISO time specifications (Thomas) - + - - Internationalization + + Internationalization National language support in psql, pg_dump, libpq, and server (Peter E) Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan) @@ -2624,10 +2736,10 @@ since PostgreSQL 7.1. Make mic2ascii() non-ASCII aware (Tatsuo) Reject invalid multibyte character sequences (Tatsuo) - + - - <application>PL/pgSQL</> + + <application>PL/pgSQL</> Now uses portals for SELECT loops, allowing huge result sets (Jan) CURSOR and REFCURSOR support (Jan) @@ -2641,33 +2753,33 @@ since PostgreSQL 7.1. Memory leak fix (Jan, Tom) Make trailing semicolon optional (Tom) - + - - PL/Perl + + PL/Perl New untrusted PL/Perl (Alex Pilosov) PL/Perl is now built on some platforms even if libperl is not shared (Peter E) - + - - PL/Tcl + + PL/Tcl Now reports errorInfo (Vsevolod Lobko) Add spi_lastoid function (bob@redivi.com) - + - - PL/Python + + PL/Python ...is new (Andrew Bosma) - + - - <application>psql</> + + <application>psql</> \d displays indexes in unique, primary groupings (Christopher Kings-Lynne) Allow trailing semicolons in backslash commands (Greg Sabino Mullane) @@ -2675,18 +2787,18 @@ since PostgreSQL 7.1. Force new password prompt when changing user and database (Tatsuo, Tom) Format the correct number of columns for Unicode (Patrice) - + - - <application>libpq</> + + <application>libpq</> New function PQescapeString() to escape quotes in command strings (Florian Weimer) New function PQescapeBytea() escapes binary strings for use as SQL string literals - + - - JDBC + + JDBC Return OID of INSERT (Ken K) Handle more data types (Ken K) @@ -2721,10 +2833,10 @@ since PostgreSQL 7.1. MD5 password encryption support (Jeremy Wohl) Fix to actually use type cache (Ned Wolpert) - + - - ODBC + + ODBC Remove query size limit (Hiroshi) Remove text field size limit (Hiroshi) @@ -2737,10 +2849,10 @@ since PostgreSQL 7.1. MD5 password encryption support (Bruce) Add more compatibility functions to odbc.sql (Peter E) - + - - <application>ECPG</> + + <application>ECPG</> EXECUTE ... INTO implemented (Christof Petig) Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig) @@ -2753,10 +2865,10 @@ since PostgreSQL 7.1. All function names with external linkage are now prefixed by ECPG Fixes for arrays of structures (Michael) - + - - Misc. Interfaces + + Misc. Interfaces Python fix fetchone() (Gerhard Haring) Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max) @@ -2764,10 +2876,10 @@ since PostgreSQL 7.1. Prevent output of default index op class in pg_dump (Tom) Fix libpgeasy memory leak (Bruce) - + - - Build and Install + + Build and Install Configure, dynamic loader, and shared library fixes (Peter E) Fixes in QNX 4 port (Bernd Tegge) @@ -2782,10 +2894,10 @@ since PostgreSQL 7.1. Rename config.h to pg_config.h (Peter E) Reorganize installation layout of header files (Peter E) - + - - Source Code + + Source Code Remove SEP_CHAR (Bruce) New GUC hooks (Tom) @@ -2799,10 +2911,10 @@ since PostgreSQL 7.1. Add 'volatile' usage in spinlock structures Improve signal handling logic (Tom) - + - - Contrib + + Contrib New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev) New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev) @@ -2815,33 +2927,33 @@ since PostgreSQL 7.1. New pg_upgrade utility (Bruce) Add new pg_resetxlog options (Bruce, Tom) - - - + + + - - Release 7.1.3 + + Release 7.1.3 - - Release date - 2001-08-15 - + + Release date + 2001-08-15 + - - Migration to version 7.1.3 + + Migration to Version 7.1.3 - - A dump/restore is not required for those running - 7.1.X. - - + + A dump/restore is not required for those running + 7.1.X. + + - - Changes + + Changes - - + + Remove unused WAL segments of large transactions (Tom) Multiaction rule fix (Tom) PL/pgSQL memory allocation fix (Jan) @@ -2852,77 +2964,77 @@ Fix subselects with DISTINCT ON or LIMIT (Tom) BeOS fix Disable COPY TO/FROM a view (Tom) Cygwin build (Jason Tishler) - - - - + + + + - - Release 7.1.2 + + Release 7.1.2 - - Release date - 2001-05-11 - + + Release date + 2001-05-11 + - - This has one fix from 7.1.1. - + + This has one fix from 7.1.1. + - - Migration to version 7.1.2 + + Migration to Version 7.1.2 - - A dump/restore is not required for those running - 7.1.X. - - + + A dump/restore is not required for those running + 7.1.X. + + - - Changes + + Changes - - + + Fix PL/pgSQL SELECTs when returning no rows Fix for psql backslash core dump Referential integrity privilege fix Optimizer fixes pg_dump cleanups - - - - + + + + - - Release 7.1.1 + + Release 7.1.1 - - Release date - 2001-05-05 - + + Release date + 2001-05-05 + - - This has a variety of fixes from 7.1. - + + This has a variety of fixes from 7.1. + - - Migration to version 7.1.1 + + Migration to Version 7.1.1 - - A dump/restore is not required for those running - 7.1. - - + + A dump/restore is not required for those running + 7.1. + + - - Changes + + Changes - - + + Fix for numeric MODULO operator (Tom) pg_dump fixes (Philip) pg_dump can dump 7.0 databases (Philip) @@ -2937,119 +3049,119 @@ Fix for pg_ctl and option strings with spaces (Peter E) ODBC fixes (Hiroshi) EXTRACT can now take string argument (Thomas) Python fixes (Darcy) - - - - + + + + - - Release 7.1 + + Release 7.1 - - Release date - 2001-04-13 - + + Release date + 2001-04-13 + - - This release focuses on removing limitations that have existed in the - PostgreSQL code for many years. - + + This release focuses on removing limitations that have existed in the + PostgreSQL code for many years. + - - Major changes in this release: - + + Major changes in this release: + - - - - Write-ahead Log (WAL) - - - + + + + Write-ahead Log (WAL) + + + To maintain database consistency in case of an operating system crash, previous releases of PostgreSQL have forced all data modifications to disk before each transaction commit. With WAL, only one log file must be flushed to disk, greatly improving performance. If you have been using -F in previous releases to disable disk flushes, you might want to consider discontinuing its use. - - - - - - - TOAST - - - - TOAST - Previous releases had a compiled-in row length limit, + + + + + + + TOAST + + + + TOAST - Previous releases had a compiled-in row length limit, typically 8k - 32k. This limit made storage of long text fields difficult. With TOAST, long rows of any length can be stored with good performance. - - - + + + - - - Outer Joins - - - + + + Outer Joins + + + We now support outer joins. The UNION/NOT IN workaround for outer joins is no longer required. We use the SQL92 outer join syntax. - - - + + + - - - Function Manager - - - + + + Function Manager + + + The previous C function manager did not handle null values properly, nor did it support 64-bit CPU's (Alpha). The new function manager does. You can continue using your old custom functions, but you might want to rewrite them in the future to use the new function manager call interface. - - - + + + - - - Complex Queries - - - + + + Complex Queries + + + A large number of complex queries that were unsupported in previous releases now work. Many combinations of views, aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables now work properly. Inherited tables are now accessed by default. Subqueries in FROM are now supported. - - - + + + - + - - Migration to version 7.1 + + Migration to Version 7.1 - - A dump/restore using pg_dump is required for those wishing to migrate - data from any previous release. - - + + A dump/restore using pg_dump is required for those wishing to migrate + data from any previous release. + + - - Changes + + Changes - - + + Bug Fixes --------- Many multibyte/Unicode/locale fixes (Tatsuo and others) @@ -3059,7 +3171,7 @@ Fix for INSERT INTO...SELECT where targetlist has subqueries (Tom) Prompt username/password on standard error (Bruce) Large objects inv_read/inv_write fixes (Tom) Fixes for to_char(), to_date(), to_ascii(), and to_timestamp() (Karel, - Daniel Baldoni) + Daniel Baldoni) Prevent query expressions from leaking memory (Tom) Allow UPDATE of arrays elements (Tom) Wake up lock waiters during cancel (Hiroshi) @@ -3075,7 +3187,7 @@ Allow PL/pgSQL accept non-ASCII identifiers (Tatsuo) Allow views to proper handle GROUP BY, aggregates, DISTINCT (Tom) Fix rare failure with TRUNCATE command (Tom) Allow UNION/INTERSECT/EXCEPT to be used with ALL, subqueries, views, - DISTINCT, ORDER BY, SELECT...INTO (Tom) + DISTINCT, ORDER BY, SELECT...INTO (Tom) Fix parser failures during aborted transactions (Tom) Allow temporary relations to properly clean up indexes (Bruce) Fix VACUUM problem with moving rows in same page (Tom) @@ -3109,16 +3221,16 @@ Improve CLUSTER (Tom) Improve ps status display for more platforms (Peter E, Marc) Improve CREATE FUNCTION failure message (Ross) JDBC improvements (Peter, Travis Bauer, Christopher Cain, William Webber, - Gunnar) + Gunnar) Grand Unified Configuration scheme/GUC. Many options can now be set in - data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E) + data/postgresql.conf, postmaster/postgres flags, or SET commands (Peter E) Improved handling of file descriptor cache (Tom) New warning code about auto-created table alias entries (Bruce) Overhaul initdb process (Tom, Peter E) Overhaul of inherited tables; inherited tables now accessed by default; - new ONLY key word prevents it (Chris Bitmead, Tom) + new ONLY key word prevents it (Chris Bitmead, Tom) ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs, - Michael Fork) + Michael Fork) Allow renaming of temp tables (Tom) Overhaul memory manager contexts (Tom) pg_dumpall uses CREATE USER or CREATE GROUP rather using COPY (Peter E) @@ -3143,7 +3255,7 @@ Allow functional indexes to use binary-compatible type (Tom) Allow SQL functions to be used in more contexts (Tom) New pg_config utility (Peter E) New PL/pgSQL EXECUTE command which allows dynamic SQL and utility statements - (Jan) + (Jan) New PL/pgSQL GET DIAGNOSTICS statement for SPI value access (Jan) New quote_identifiers() and quote_literal() functions (Jan) New ALTER TABLE table OWNER TO user command (Mark Hollomon) @@ -3162,7 +3274,7 @@ New AT TIME ZONE syntax (Thomas) Allow location of Unix domain socket to be configurable (David J. MacKenzie) Allow postmaster to listen on a specific IP address (David J. MacKenzie) Allow socket path name to be specified in hostname by using leading slash - (David J. MacKenzie) + (David J. MacKenzie) Allow CREATE DATABASE to specify template database (Tom) New utility to convert MySQL schema dumps to SQL92 and PostgreSQL (Thomas) New /contrib/rserv replication toolkit (Vadim) @@ -3189,7 +3301,7 @@ New CIDR abbrev() function (Tom) Performance ----------- Write-Ahead Log (WAL) to provide crash recovery with less performance - overhead (Vadim) + overhead (Vadim) ANALYZE stage of VACUUM no longer exclusively locks table (Bruce) Reduced file seeks (Denis Perchine) Improve BTREE code for duplicate keys (Tom) @@ -3235,39 +3347,39 @@ New contrib/pg_logger New --template option to createdb New contrib/pg_control utility (Oliver) New FreeBSD tools ipc_check, start-scripts/freebsd - - - - + + + + - - Release 7.0.3 + + Release 7.0.3 - - Release date - 2000-11-11 - + + Release date + 2000-11-11 + - - This has a variety of fixes from 7.0.2. - + + This has a variety of fixes from 7.0.2. + - - Migration to version 7.0.3 + + Migration to Version 7.0.3 - - A dump/restore is not required for those running - 7.0.*. - - + + A dump/restore is not required for those running + 7.0.*. + + - - Changes + + Changes - - + + Jdbc fixes (Peter) Large object fix (Tom) Fix lean in COPY WITH OIDS leak (Tom) @@ -3283,11 +3395,11 @@ Fix for memory allocation problem in user authentication code (Tom) Remove bogus use of int4out() (Tom) Fixes for multiple subqueries in COALESCE or BETWEEN (Tom) Fix for failure of triggers on heap open in certain cases (Jeroen van - Vianen) + Vianen) Fix for erroneous selectivity of not-equals (Tom) Fix for erroneous use of strcmp() (Tom) Fix for bug where storage manager accesses items beyond end of file - (Tom) + (Tom) Fix to include kernel errno message in all smgr elog messages (Tom) Fix for '.' not in PATH at build time (SL Baur) Fix for out-of-file-descriptors error (Tom) @@ -3298,81 +3410,81 @@ Fix TRUNCATE failure on relations with indexes (Tom) Avoid database-wide restart on write error (Hiroshi) Fix nodeMaterial to honor chgParam by recomputing its output (Tom) Fix VACUUM problem with moving chain of update row versions when source - and destination of a row version lie on the same page (Tom) + and destination of a row version lie on the same page (Tom) Fix user.c CommandCounterIncrement (Tom) Fix for AM/PM boundary problem in to_char() (Karel Zak) Fix TIME aggregate handling (Tom) Fix to_char() to avoid coredump on NULL input (Tom) Buffer fix (Tom) Fix for inserting/copying longer multibyte strings into char() data - types (Tatsuo) + types (Tatsuo) Fix for crash of backend, on abort (Tom) - - - - + + + + - - Release 7.0.2 + + Release 7.0.2 - - Release date - 2000-06-05 - + + Release date + 2000-06-05 + - - This is a repackaging of 7.0.1 with added documentation. - + + This is a repackaging of 7.0.1 with added documentation. + - - Migration to version 7.0.2 + + Migration to Version 7.0.2 - - A dump/restore is not required for those running - 7.*. - - + + A dump/restore is not required for those running + 7.*. + + - - Changes + + Changes - - + + Added documentation to tarball. - - - - + + + + - - Release 7.0.1 + + Release 7.0.1 - - Release date - 2000-06-01 - + + Release date + 2000-06-01 + - - This is a cleanup release for 7.0. - + + This is a cleanup release for 7.0. + - - Migration to version 7.0.1 + + Migration to Version 7.0.1 - - A dump/restore is not required for those running - 7.0. - - + + A dump/restore is not required for those running + 7.0. + + - - Changes + + Changes - - + + Fix many CLUSTER failures (Tom) Allow ALTER TABLE RENAME works on indexes (Tom) Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce) @@ -3395,160 +3507,160 @@ Copy pg_ident.conf.sample into /lib directory in install (Bruce) Add SJIS UDC (NEC selection IBM kanji) support (Eiji Tokuya) Fix too long syslog message (Tatsuo) Fix problem with quoted indexes that are too long (Tom) -JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu) +JDBC ResultSet.getTimestamp() fix (Gregory Krasnow & Floyd Marinescu) ecpg changes (Michael) - - - - + + + + - - Release 7.0 + + Release 7.0 - - Release date - 2000-05-08 - + + Release date + 2000-05-08 + - - This release contains improvements in many areas, demonstrating - the continued growth of PostgreSQL. - There are more improvements and fixes in 7.0 than in any previous - release. The developers have confidence that this is the best - release yet; we do our best to put out only solid releases, and - this one is no exception. - + + This release contains improvements in many areas, demonstrating + the continued growth of PostgreSQL. + There are more improvements and fixes in 7.0 than in any previous + release. The developers have confidence that this is the best + release yet; we do our best to put out only solid releases, and + this one is no exception. + - - Major changes in this release: - + + Major changes in this release: + - - - - Foreign Keys - - - - Foreign keys are now implemented, with the exception of PARTIAL MATCH - foreign keys. Many users have been asking for this feature, and we are - pleased to offer it. - - - + + + + Foreign Keys + + + + Foreign keys are now implemented, with the exception of PARTIAL MATCH + foreign keys. Many users have been asking for this feature, and we are + pleased to offer it. + + + - - - Optimizer Overhaul - - - - Continuing on work started a year ago, the optimizer has been - improved, allowing better query plan selection and faster performance - with less memory usage. - - - + + + Optimizer Overhaul + + + + Continuing on work started a year ago, the optimizer has been + improved, allowing better query plan selection and faster performance + with less memory usage. + + + - - - Updated psql - - - - psql, our interactive terminal monitor, has been - updated with a variety of new features. See the psql manual page for details. - - - + + + Updated psql + + + + psql, our interactive terminal monitor, has been + updated with a variety of new features. See the psql manual page for details. + + + - - - Join Syntax - - - - SQL92 join syntax is now supported, though only as - INNER JOIN for this release. JOIN, - NATURAL JOIN, JOIN/USING, - and JOIN/ON are available, as are - column correlation names. - - + + + Join Syntax + + + + SQL92 join syntax is now supported, though only as + INNER JOIN for this release. JOIN, + NATURAL JOIN, JOIN/USING, + and JOIN/ON are available, as are + column correlation names. + + - - + + - - Migration to version 7.0 + + Migration to Version 7.0 - - A dump/restore using pg_dump - is required for those wishing to migrate data from any - previous release of PostgreSQL. - For those upgrading from 6.5.*, you can instead use - pg_upgrade to upgrade to this - release; however, a full dump/reload installation is always the - most robust method for upgrades. - + + A dump/restore using pg_dump + is required for those wishing to migrate data from any + previous release of PostgreSQL. + For those upgrading from 6.5.*, you can instead use + pg_upgrade to upgrade to this + release; however, a full dump/reload installation is always the + most robust method for upgrades. + - - Interface and compatibility issues to consider for the new - release include: - + + Interface and compatibility issues to consider for the new + release include: + - - - - The date/time types datetime and - timespan have been superseded by the - SQL92-defined types timestamp and - interval. Although there has been some effort to - ease the transition by allowing - PostgreSQL to recognize - the deprecated type names and translate them to the new type - names, this mechanism cannot be completely transparent to - your existing application. - - + + + + The date/time types datetime and + timespan have been superseded by the + SQL92-defined types timestamp and + interval. Although there has been some effort to + ease the transition by allowing + PostgreSQL to recognize + the deprecated type names and translate them to the new type + names, this mechanism cannot be completely transparent to + your existing application. + + - - - The optimizer has been substantially improved in the area of - query cost estimation. In some cases, this will result in - decreased query times as the optimizer makes a better choice - for the preferred plan. However, in a small number of cases, - usually involving pathological distributions of data, your - query times might go up. If you are dealing with large amounts - of data, you might want to check your queries to verify - performance. - - + + + The optimizer has been substantially improved in the area of + query cost estimation. In some cases, this will result in + decreased query times as the optimizer makes a better choice + for the preferred plan. However, in a small number of cases, + usually involving pathological distributions of data, your + query times might go up. If you are dealing with large amounts + of data, you might want to check your queries to verify + performance. + + - - - The JDBC and ODBC - interfaces have been upgraded and extended. - - + + + The JDBC and ODBC + interfaces have been upgraded and extended. + + - - - The string function CHAR_LENGTH is now a - native function. Previous versions translated this into a call - to LENGTH, which could result in - ambiguity with other types implementing - LENGTH such as the geometric types. - - - - + + + The string function CHAR_LENGTH is now a + native function. Previous versions translated this into a call + to LENGTH, which could result in + ambiguity with other types implementing + LENGTH such as the geometric types. + + + + - - Changes + + Changes - - + + Bug Fixes --------- Prevent function calls exceeding maximum number of arguments (Tom) @@ -3664,8 +3776,8 @@ Added psql LASTOID variable to return last inserted oid (Peter E) Allow concurrent vacuum and remove pg_vlock vacuum lock file (Tom) Add privilege check for vacuum (Peter E) New libpq functions to allow asynchronous connections: PQconnectStart(), - PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(), - PQsetenvPoll(), PQsetenvAbort (Ewan Mellor) + PQconnectPoll(), PQresetStart(), PQresetPoll(), PQsetenvStart(), + PQsetenvPoll(), PQsetenvAbort (Ewan Mellor) New libpq PQsetenv() function (Ewan Mellor) create/alter user extension (Peter E) New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo) @@ -3683,7 +3795,7 @@ All administration scripts now support --long options (Peter E, Karel) Vacuumdb script now supports --all option (Peter E) ecpg new portable FETCH syntax Add ecpg EXEC SQL IFDEF, EXEC SQL IFNDEF, EXEC SQL ELSE, EXEC SQL ELIF - and EXEC SQL ENDIF directives + and EXEC SQL ENDIF directives Add pg_ctl script to control backend start-up (Tatsuo) Add postmaster.opts.default file to store start-up flags (Tatsuo) Allow --with-mb=SQL_ASCII @@ -3705,7 +3817,7 @@ Allow COPY IN to read file that do not end with a newline (Tom) Indicate when long identifiers are truncated (Tom) Allow aggregates to use type equivalency (Peter E) Add Oracle's to_char(), to_date(), to_datetime(), to_timestamp(), to_number() - conversion functions (Karel Zak <zakkr@zf.jcu.cz>) + conversion functions (Karel Zak <zakkr@zf.jcu.cz>) Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom) Check to be sure ORDER BY is compatible with the DISTINCT operation (Tom) Add NUMERIC and int8 types to ODBC @@ -3866,75 +3978,75 @@ NT fixes NetBSD fixes (Johnny C. Lam lamj@stat.cmu.edu) Fixes for Alpha compiles New multibyte encodings - - - - + + + + - - Release 6.5.3 + + Release 6.5.3 - - Release date - 1999-10-13 - + + Release date + 1999-10-13 + - - This is basically a cleanup release for 6.5.2. We have added a new - PgAccess that was missing in 6.5.2, and installed an NT-specific fix. - + + This is basically a cleanup release for 6.5.2. We have added a new + PgAccess that was missing in 6.5.2, and installed an NT-specific fix. + - - Migration to version 6.5.3 + + Migration to Version 6.5.3 - - A dump/restore is not required for those running - 6.5.*. - - - - Changes + + A dump/restore is not required for those running + 6.5.*. + + + + Changes - - + + Updated version of pgaccess 0.98 NT-specific patch Fix dumping rules on inherited tables - - - - + + + + - - Release 6.5.2 + + Release 6.5.2 - - Release date - 1999-09-15 - + + Release date + 1999-09-15 + - - This is basically a cleanup release for 6.5.1. We have fixed a variety of - problems reported by 6.5.1 users. - + + 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 version 6.5.2 + + Migration to Version 6.5.2 - - A dump/restore is not required for those running - 6.5.*. - - + + A dump/restore is not required for those running + 6.5.*. + + - - Changes + + Changes - - + + subselect+CASE fixes(Tom) Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik) Fixes for CASE in WHERE join clauses(Tom) @@ -3956,41 +4068,41 @@ 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) + when reach end of pattern before end of text(Tom) Repair incorrect cleanup of heap memory allocation during transaction abort(Tom) Updated version of pgaccess 0.98 - - - - + + + + - - Release 6.5.1 + + Release 6.5.1 - - Release date - 1999-07-15 - + + Release date + 1999-07-15 + - - This is basically a cleanup release for 6.5. We have fixed a variety of - problems reported by 6.5 users. - + + This is basically a cleanup release for 6.5. We have fixed a variety of + problems reported by 6.5 users. + - - Migration to version 6.5.1 + + Migration to Version 6.5.1 - - A dump/restore is not required for those running - 6.5. - - + + A dump/restore is not required for those running + 6.5. + + - - Changes + + Changes - - + + Add NT README file Portability fixes for linux_ppc, IRIX, linux_alpha, OpenBSD, alpha Remove QUERY_LIMIT, use SELECT...LIMIT @@ -4014,244 +4126,244 @@ Shared library dependencies fixed (Tom) Fixed glitches affecting GROUP BY in subselects(Tom) Fix some compiler warnings (Tomoaki Nishiyama) Add Win1250 (Czech) support (Pavel Behal) - - - - + + + + - - Release 6.5 + + Release 6.5 - - Release date - 1999-06-09 - + + Release date + 1999-06-09 + + + + This release marks a major step in the development team's mastery of the source + code we inherited from Berkeley. You will see we are now easily adding + major features, thanks to the increasing size and experience of our + world-wide development team. + + + + Here is a brief summary of the more notable changes: + + + + + Multiversion 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 multiversion nature of + PostgreSQL to allow readers to + continue reading consistent data during writer activity. + Writers continue to use the compact pg_log transaction system. + This is all performed without having to allocate a lock for + every row like traditional database systems. So, basically, + we no longer are restricted by simple table-level locking; we + have something better than row-level locking. + + + + + + + Hot backups from pg_dump + + + + pg_dump takes advantage of the new + MVCC features to give a consistent database dump/backup while + the database stays online and available for queries. + + + + + + + Numeric data type + + + + We now have a true numeric data type, with + user-specified precision. + + + + + + + Temporary tables + + + + Temporary tables are guaranteed to have unique names + within a database session, and are destroyed on session exit. + + + + + + + New SQL features + + + + We now have CASE, INTERSECT, and EXCEPT statement + support. We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, + SELECT ... FOR UPDATE, and an improved LOCK TABLE command. + + + + + + + Speedups + + + + We continue to speed up PostgreSQL, + thanks to the variety of talents within our team. We have + sped up memory allocation, optimization, table joins, and row + transfer routines. + + + + + + + Ports + + + + We continue to expand our port list, this time including + Windows NT/ix86 and NetBSD/arm32. + + + + + + + Interfaces + + + + Most interfaces have new versions, and existing functionality + has been improved. + + + + + + + Documentation + + + + New and updated material is present throughout the + documentation. New FAQs have been + contributed for SGI and AIX platforms. + The Tutorial has introductory information + on SQL from Stefan Simkovics. + For the User's Guide, there are + reference pages covering the postmaster and more utility + programs, and a new appendix + contains details on date/time behavior. + The Administrator's Guide has a new + chapter on troubleshooting from Tom Lane. + And the Programmer's Guide has a + description of query processing, also from Stefan, and details + on obtaining the PostgreSQL source + tree via anonymous CVS and + CVSup. + + + + + + + + Migration to Version 6.5 - 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. + A dump/restore using pg_dump + is required for those wishing to migrate data from any + previous release of PostgreSQL. + pg_upgrade can not + be used to upgrade to this release because the on-disk structure + of the tables has changed compared to previous releases. - Here is a brief summary of the more notable changes: - - - - - Multiversion 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 multiversion nature of - PostgreSQL to allow readers to - continue reading consistent data during writer activity. - Writers continue to use the compact pg_log transaction system. - This is all performed without having to allocate a lock for - every row like traditional database systems. So, basically, - we no longer are restricted by simple table-level locking; we - have something better than row-level locking. - - - - - - - Hot backups from pg_dump - - - - pg_dump takes advantage of the new - MVCC features to give a consistent database dump/backup while - the database stays online and available for queries. - - - - - - - Numeric data type - - - - We now have a true numeric data type, with - user-specified precision. - - - - - - - Temporary tables - - - - Temporary tables are guaranteed to have unique names - within a database session, and are destroyed on session exit. - - - - - - - New SQL features - - - - We now have CASE, INTERSECT, and EXCEPT statement - support. We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, - SELECT ... FOR UPDATE, and an improved LOCK TABLE command. - - - - - - - Speedups - - - - We continue to speed up PostgreSQL, - thanks to the variety of talents within our team. We have - sped up memory allocation, optimization, table joins, and row - transfer routines. - - - - - - - Ports - - - - We continue to expand our port list, this time including - Windows NT/ix86 and NetBSD/arm32. - - - - - - - Interfaces - - - - Most interfaces have new versions, and existing functionality - has been improved. - - - - - - - Documentation - - - - New and updated material is present throughout the - documentation. New FAQs have been - contributed for SGI and AIX platforms. - The Tutorial has introductory information - on SQL from Stefan Simkovics. - For the User's Guide, there are - reference pages covering the postmaster and more utility - programs, and a new appendix - contains details on date/time behavior. - The Administrator's Guide has a new - chapter on troubleshooting from Tom Lane. - And the Programmer's Guide has a - description of query processing, also from Stefan, and details - on obtaining the PostgreSQL source - tree via anonymous CVS and - CVSup. - - - - + The new Multiversion Concurrency Control (MVCC) features can + give somewhat different behaviors in multiuser + environments. Read and understand the following section + to ensure that your existing applications will give you the + behavior you need. - - Migration to version 6.5 + + Multiversion Concurrency Control - A dump/restore using pg_dump - is required for those wishing to migrate data from any - previous release of PostgreSQL. - pg_upgrade can not - be used to upgrade to this release because the on-disk structure - of the tables has changed compared to previous releases. + 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. - The new Multiversion Concurrency Control (MVCC) features can - give somewhat different behaviors in multiuser - environments. Read and understand the following section - to ensure that your existing applications will give you the - behavior you need. + To ensure the actual existence of a row and protect it against + concurrent updates one must use SELECT FOR UPDATE or + an appropriate LOCK TABLE statement. This should be + taken into account when porting applications from previous releases of + PostgreSQL and other environments. - - Multiversion Concurrency Control - - - Because readers in 6.5 don't lock data, regardless of transaction - isolation level, data read by one transaction can be overwritten by - another. In other words, if a row is returned by - SELECT it doesn't mean that this row really exists - at the time it is returned (i.e. sometime after the statement or - transaction began) nor that the row is protected from being deleted or - updated by concurrent transactions before the current transaction does - a commit or rollback. - - - - To ensure the actual existence of a row and protect it against - concurrent updates one must use SELECT FOR UPDATE or - an appropriate LOCK TABLE statement. This should be - taken into account when porting applications from previous releases of - PostgreSQL and other environments. - - - - Keep the above in mind if you are using - contrib/refint.* triggers for - referential integrity. Additional techniques are required now. One way is - to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE - command if a transaction is going to update/delete a primary key and - use LOCK parent_table IN SHARE MODE command if a - transaction is going to update/insert a foreign key. - - - - Note 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. - - - + + Keep the above in mind if you are using + contrib/refint.* triggers for + referential integrity. Additional techniques are required now. One way is + to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE + command if a transaction is going to update/delete a primary key and + use LOCK parent_table IN SHARE MODE command if a + transaction is going to update/insert a foreign key. + + + + Note 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. - - - + + These inconveniences will disappear in the future + when the ability to read dirty + (uncommitted) data (regardless of isolation level) and true referential + integrity will be implemented. + + + - - Changes + + Changes - - + + Bug Fixes --------- Fix text<->float8 and text<->float4 conversion functions(Thomas) @@ -4360,7 +4472,7 @@ 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) + (--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) @@ -4413,19 +4525,19 @@ Add ARM32 support(Andrew McMurry) Better support for HP-UX 11 and UnixWare Improve file handling to be more uniform, prevent file descriptor leak(Tom) New install commands for plpgsql(Jan) - - - - + + + + -Release 6.4.2 - - - Release date - 1998-12-20 - +Release 6.4.2 + + + Release date + 1998-12-20 + The 6.4.1 release was improperly packaged. This also has one additional @@ -4434,7 +4546,7 @@ bug fix. -Migration to version 6.4.2 +Migration to Version 6.4.2 A dump/restore is not required for those running @@ -4457,10 +4569,10 @@ Fix for datetime constant problem on some platforms(Thomas) Release 6.4.1 - - Release date - 1998-12-18 - + + Release date + 1998-12-18 + This is basically a cleanup release for 6.4. We have fixed a variety of @@ -4469,7 +4581,7 @@ problems reported by 6.4 users. -Migration to version 6.4.1 +Migration to Version 6.4.1 A dump/restore is not required for those running @@ -4482,12 +4594,12 @@ A dump/restore is not required for those running Add pg_dump -N flag to force double quotes around identifiers. This is - the default(Thomas) + 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 existence to allow mixed-case and whitespace in - the table name(Thomas) + 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_* @@ -4521,10 +4633,10 @@ Upgrade to PyGreSQL 2.2(D'Arcy) Release 6.4 - - Release date - 1998-10-30 - + + Release date + 1998-10-30 + There are many new features and improvements in this release. @@ -4603,7 +4715,7 @@ been. -Migration to version 6.4 +Migration to Version 6.4 A dump/restore using pg_dump @@ -4613,11 +4725,11 @@ previous release of PostgreSQL. - + Changes - - + + Bug Fixes --------- Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) @@ -4730,22 +4842,22 @@ Indexes for restriction clauses containing a constant(Thomas) New ISBN/ISSN code in /contrib/isbn_issn Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) New rewrite system fixes many problems with rules and views(Jan) - * Rules on relations work - * Event qualifications on insert/update/delete work - * New OLD variable to reference CURRENT, CURRENT will be remove in future - * Update rules can reference NEW and OLD in rule qualifications/actions - * Insert/update/delete rules on views work - * Multiple rule actions are now supported, surrounded by parentheses - * Regular users can create views/rules on tables they have RULE permits - * Rules and views inherit the privileges of 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 + * 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 privileges of 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 multikey(Bruce) Oidint2, oidint4, and oidname types are removed(Bruce) Use system cache for more system table lookups(Bruce) @@ -4818,10 +4930,10 @@ new Makefile.shlib for shared library configuration(Tom) Release 6.3.2 - - Release date - 1998-04-07 - + + Release date + 1998-04-07 + This is a bug-fix release for 6.3.x. @@ -4857,11 +4969,11 @@ For upgrades from pre-6.3 installations, refer to the installation and migration instructions for version 6.3. - - Changes + + Changes - - + + Configure detection improvements for tcl/tk(Brook Milligan, Alvin) Manual page improvements(Bruce) BETWEEN and LIKE fix(Thomas) @@ -4880,21 +4992,21 @@ libreadline cleanup(Erwan MAS) Remove DISTDIR(Bruce) Makefile dependency cleanup(Jeroen van Vianen) ASSERT fixes(Bruce) - - - - + + + + - - Release 6.3.1 + + Release 6.3.1 - - Release date - 1998-03-23 - + + Release date + 1998-03-23 + - - Summary: + + Summary: @@ -4934,11 +5046,11 @@ For upgrades from pre-6.3 installations, refer to the installation and migration instructions for version 6.3. - - Changes + + Changes - - + + ecpg cleanup/fixes, now version 1.1(Michael Meskes) pg_user cleanup(Bruce) large object fix for pg_dump and tclsh (alvin) @@ -4966,154 +5078,154 @@ Fix Alpha port(Dwayne Bailey) Fix for text arrays containing quotes(Doug Gibson) Solaris compile fix(Albert Chin-A-Young) Better identify tcl and tk libs and includes(Bruce) - - - - - - - Release 6.3 + + + + - - Release date - 1998-03-01 - + + Release 6.3 - - There are many new features and improvements in this release. - Here is a brief, incomplete summary: + + Release date + 1998-03-01 + - - - - Many new SQL features, including - full SQL92 subselect capability - (everything is here but target-list subselects). - - + + There are many new features and improvements in this release. + Here is a brief, incomplete summary: - - - Support for client-side environment variables to specify time zone and date style. - - + + + + Many new SQL features, including + full SQL92 subselect capability + (everything is here but target-list subselects). + + - - - Socket interface for client/server connection. This is the default now - so you might need to start postmaster with the - flag. - - + + + Support for client-side environment variables to specify time zone and date style. + + - - - Better password authorization mechanisms. Default table privileges have changed. - - + + + Socket interface for client/server connection. This is the default now + so you might need to start postmaster with the + flag. + + - - - Old-style time travel - has been removed. Performance has been improved. - - - - + + + Better password authorization mechanisms. Default table privileges have changed. + + - - - Bruce Momjian wrote the following notes to introduce the new release. - - + + + Old-style time travel + has been removed. Performance has been improved. + + + + + - There are some general 6.3 issues that I want to mention. These are - only the big items that cannot 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 might - think. Vadim has put us on the big SQL map with subselects, and fully - functional ones too. The only thing you cannot 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 might suggest that - you redesign some of your tables, especially if you have short character - columns that you have defined as varchar() or text. This and other - changes make 6.3 even faster than earlier releases. - - - We now have passwords definable independent of any Unix file. There are - new SQL USER commands. - See the Administrator's Guide for more - information. There is a new table, pg_shadow, which is used to store - user information and user passwords, and it by default only SELECT-able - by the postgres super-user. pg_user is now a view of pg_shadow, and is - SELECT-able by PUBLIC. You should keep using pg_user in your - application without changes. - - - User-created tables now no longer have SELECT privilege to PUBLIC by - default. This was done because the ANSI standard requires it. You can - of course GRANT any privileges you want after the table is created. - System tables continue to be SELECT-able by PUBLIC. - - - We also have real deadlock detection code. No more sixty-second - timeouts. And the new locking code implements a FIFO better, so there - should be less resource starvation during heavy use. - - - Many complaints have been made about inadequate documentation in previous - releases. Thomas has put much effort into many new manuals for this - release. Check out the doc/ directory. - - - For performance reasons, time travel is gone, but can be implemented - using triggers (see pgsql/contrib/spi/README). Please check out the new - \d command for types, operators, etc. Also, views have their own - privileges now, not based on the underlying tables, so privileges on - them have to be set separately. Check /pgsql/interfaces for some new - ways to talk to PostgreSQL. - - - This is the first release that really required an explanation for - existing users. In many ways, this was necessary because the new - release removes many limitations, and the work-arounds people were using - are no longer needed. + Bruce Momjian wrote the following notes to introduce the new release. + - - Migration to version 6.3 + + There are some general 6.3 issues that I want to mention. These are + only the big items that cannot 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 might + think. Vadim has put us on the big SQL map with subselects, and fully + functional ones too. The only thing you cannot 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 might suggest that + you redesign some of your tables, especially if you have short character + columns that you have defined as varchar() or text. This and other + changes make 6.3 even faster than earlier releases. + + + We now have passwords definable independent of any Unix file. There are + new SQL USER commands. + See the Administrator's Guide for more + information. There is a new table, pg_shadow, which is used to store + user information and user passwords, and it by default only SELECT-able + by the postgres super-user. pg_user is now a view of pg_shadow, and is + SELECT-able by PUBLIC. You should keep using pg_user in your + application without changes. + + + User-created tables now no longer have SELECT privilege to PUBLIC by + default. This was done because the ANSI standard requires it. You can + of course GRANT any privileges you want after the table is created. + System tables continue to be SELECT-able by PUBLIC. + + + We also have real deadlock detection code. No more sixty-second + timeouts. And the new locking code implements a FIFO better, so there + should be less resource starvation during heavy use. + + + Many complaints have been made about inadequate documentation in previous + releases. Thomas has put much effort into many new manuals for this + release. Check out the doc/ directory. + + + For performance reasons, time travel is gone, but can be implemented + using triggers (see pgsql/contrib/spi/README). Please check out the new + \d command for types, operators, etc. Also, views have their own + privileges now, not based on the underlying tables, so privileges on + them have to be set separately. Check /pgsql/interfaces for some new + ways to talk to PostgreSQL. + + + This is the first release that really required an explanation for + existing users. In many ways, this was necessary because the new + release removes many limitations, and the work-arounds people were using + are no longer needed. + - - A dump/restore using pg_dump - or pg_dumpall - is required for those wishing to migrate data from any - previous release of PostgreSQL. - - + + Migration to Version 6.3 - - Changes + + A dump/restore using pg_dump + or pg_dumpall + is required for those wishing to migrate data from any + previous release of PostgreSQL. + + - - + + Changes + + + Bug Fixes --------- Fix binary cursors broken by MOVE implementation(Vadim) @@ -5133,19 +5245,19 @@ 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) + 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) + 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) + and throw elog(ERROR) if unrecognized(Thomas) Major large objects fix Fix for GROUP BY showing duplicates(Vadim) Fix for index scans in MergeJoin(Vadim) @@ -5157,7 +5269,7 @@ 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) + CURRENT_USER(Thomas) Modify constraint syntax to be SQL92-compliant(Thomas) Implement SQL92 PRIMARY KEY and UNIQUE clauses using indexes(Thomas) Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas) @@ -5169,11 +5281,11 @@ 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) + (e.g. "DATETIME 'now'")(Thomas) Add conversions for int2, int4, and OID types to and from text(Thomas) Use shared lock when building indexes(Vadim) Free memory allocated for an user query inside transaction block after - this query is done, was turned off in <= 6.2.1(Vadim) + this query is done, was turned off in <= 6.2.1(Vadim) New SQL statement CREATE PROCEDURAL LANGUAGE(Jan) New PostgreSQL Procedural Language (PL) backend interface(Jan) Rename pg_dump -H option to -h(Bruce) @@ -5191,10 +5303,10 @@ 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) + 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) + aggregates(Bruce) Increase 16 char limit on system table/index names to 32 characters(Bruce) Rename system indexes(Bruce) Add 'GERMAN' option to SET DATESTYLE(Thomas) @@ -5205,7 +5317,7 @@ 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) + the system password file(Todd) Dump ACLs, GRANT, REVOKE privileges(Matt) Define text, varchar, and bpchar string length functions(Thomas) Fix Query handling for inheritance, and cost computations(Bruce) @@ -5237,9 +5349,9 @@ 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 privileges to be set separately from the underlying tables. - For security, use GRANT/REVOKE on views as appropriate(Jan) + For security, use GRANT/REVOKE on views as appropriate(Jan) Tables now have no default GRANT SELECT TO PUBLIC. You must - explicitly grant such privileges. + explicitly grant such privileges. Clean up tutorial examples(Darren) Source Tree Changes @@ -5247,12 +5359,12 @@ 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 +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) + to heap_create()(Bruce) Sparc/Linux patch for locking(TomS) Remove PORTNAME and reorganize port-specific stuff(Marc) Add optimizer README file(Bruce) @@ -5261,7 +5373,7 @@ 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) + 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) @@ -5286,10 +5398,10 @@ Remove un-needed malloc() calls and replace with palloc()(Bruce) Release 6.2.1 - - Release date - 1997-10-17 - + + Release date + 1997-10-17 + 6.2.1 is a bug-fix and usability release on 6.2. @@ -5335,8 +5447,8 @@ 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; + update pg_aggregate set aggfinalfn = 'cash_div_flt8' + where aggname = 'avg' and aggbasetype = 790; @@ -5344,11 +5456,11 @@ This will need to be done to every existing database, including template1. - - Changes + + Changes - - + + Allow TIME and TYPE column names(Thomas) Allow larger range of true/false as boolean values(Thomas) Support output of "now" and "current"(Thomas) @@ -5360,18 +5472,18 @@ Fix avg(cash) computation(Thomas) Fix for specifying a column twice in ORDER/GROUP BY(Vadim) Documented new libpq function to return affected rows, PQcmdTuples(Bruce) Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan) - - - - + + + + Release 6.2 - - Release date - 1997-10-02 - + + Release date + 1997-10-02 + A dump/restore is required for those wishing to migrate data from @@ -5400,56 +5512,56 @@ because the COPY output format was improved from the 1.02 release. - - Changes + + Changes - - + + 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) + 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 rows changed/inserted by a command - visible to the command itself (so we had multiple update of - updated rows, etc.)(Vadim) + visible to the command itself (so we had multiple update of + updated rows, 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 rows with x NULL) (Vadim) Fix time_cmp function (Vadim) Fix handling of functions with non-attribute first argument in - WHERE clauses (Vadim) + WHERE clauses (Vadim) Fix GROUP BY when order of entries is different from order - in target list (Vadim) + 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) +Added JDBC driver as an interface(Adrian & Peter) pg_password utility Return number of rows 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) + 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) +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) + 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) @@ -5459,14 +5571,14 @@ 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) + 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 internal sorts to be stored in memory rather than in files(Bruce & Vadim) Allow functions and operators on internally-identical types to succeed(Bruce) Speed up backend start-up after profiling analysis(Bruce) Inline frequently called functions for performance(Bruce) @@ -5499,7 +5611,7 @@ 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) +Remove call to difftime() in timestamp support to fix SunOS(Bruce & Thomas) Changes for Digital Unix Portability fix for pg_dumpall(Bruce) Rename pg_attribute.attnvals to attdispersion(Bruce) @@ -5507,12 +5619,12 @@ Rename pg_attribute.attnvals to attdispersion(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 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) +SPI and Trigger programming guides (Vadim & D'Arcy) @@ -5521,10 +5633,10 @@ SPI and Trigger programming guides (Vadim & D'Arcy) Release 6.1.1 - - Release date - 1997-07-22 - + + Release date + 1997-07-22 + Migration from version 6.1 to version 6.1.1 @@ -5536,11 +5648,11 @@ Refer to the release notes for 6.1 for more details. - - Changes + + Changes - - + + fix for SET with options (Thomas) allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce) new psql \connect option allows changing usernames without changing databases @@ -5558,68 +5670,68 @@ major fix for endian handling of communication to server(Thomas, Tatsuo) Fix for Solaris assembler and include files(Yoshihiko Ichikawa) allow underscores in usernames(Bruce) pg_dumpall now returns proper status, portability fix(Bruce) - - - - + + + + Release 6.1 - - Release date - 1997-06-08 - + + Release date + 1997-06-08 + - The regression tests have been adapted and extensively modified for the - 6.1 release of PostgreSQL. + The regression tests have been adapted and extensively modified for the + 6.1 release of PostgreSQL. - Three new data types (datetime, timespan, and circle) have been added to - the native set of PostgreSQL types. Points, boxes, paths, and polygons - have had their output formats made consistent across the data types. - The polygon output in misc.out has only been spot-checked for correctness - relative to the original regression output. + Three new data types (datetime, timespan, and circle) have been added to + the native set of PostgreSQL types. Points, boxes, paths, and polygons + have had their output formats made consistent across the data types. + The polygon output in misc.out has only been spot-checked for correctness + relative to the original regression output. - PostgreSQL 6.1 introduces a new, alternate + PostgreSQL 6.1 introduces a new, alternate optimizer which uses genetic - algorithms. These algorithms introduce a random behavior in the ordering - of query results when the query contains multiple qualifiers or multiple - tables (giving the optimizer a choice on order of evaluation). Several - regression tests have been modified to explicitly order the results, and - hence are insensitive to optimizer choices. A few regression tests are - for data types which are inherently unordered (e.g. points and time - intervals) and tests involving those types are explicitly bracketed with - set geqo to 'off' and reset geqo. + 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 might not be correct! + 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 might 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 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 random results in the random test should cause the + random test to be failed, since the + regression tests are evaluated using a simple diff. However, + random does not seem to produce random results on my test + machine (Linux/gcc/i686). -Migration to version 6.1 +Migration to Version 6.1 This migration requires a complete dump of the 6.0 database and a @@ -5631,11 +5743,11 @@ because the COPY output format was improved from the 1.02 release. - - Changes + + Changes - - + + Bug Fixes --------- packet length checking in library routines @@ -5738,10 +5850,10 @@ DG/UX, Ultrix, IRIX, AIX portability fixes Release 6.0 - - Release date - 1997-01-29 - + + Release date + 1997-01-29 + A dump/restore is required for those wishing to migrate data from @@ -5766,11 +5878,11 @@ because the COPY output format was improved from the 1.02 release. - - Changes + + Changes - - + + Bug Fixes --------- ALTER TABLE bug - running postgres process needs to re-read table definition @@ -5819,7 +5931,7 @@ 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) +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 @@ -5882,10 +5994,10 @@ Unused/uninitialized variables corrected Release 1.09 - - Release date - 1996-11-04 - + + Release date + 1996-11-04 + Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of @@ -5897,10 +6009,10 @@ releases. Release 1.02 - - Release date - 1996-08-01 - + + Release date + 1996-08-01 + Migration from version 1.02 to version 1.02.1 @@ -5933,13 +6045,13 @@ Start up a new 1.02.1 postmaster Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02 - databases. This is done by running the new 1.02.1 server against - your own 1.01 or 1.02 database and applying the queries attached at - the end of the file. This can be done easily through psql. If your - 1.01 or 1.02 database is named testdb and you have cut the commands - from the end of this file and saved them in addfunc.sql: + databases. This is done by running the new 1.02.1 server against + your own 1.01 or 1.02 database and applying the queries attached at + the end of the file. This can be done easily through psql. If your + 1.01 or 1.02 database is named testdb and you have cut the commands + from the end of this file and saved them in addfunc.sql: - % psql testdb -f addfunc.sql + % psql testdb -f addfunc.sql Those upgrading 1.02 databases will get a warning when executing the @@ -5962,7 +6074,7 @@ 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' <in_file >out_file + sed 's/^\.$/\\./g' <in_file >out_file