summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-01-03 21:36:29 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-01-03 21:36:29 +0000
commitd66dcb144a3a5b8fd5cc76018bdbee2ef9f21f5f (patch)
treeac04a39ebdec3dbc22e0d100b20a4622cd768156
parent6689ac7db925e0830ee88da8b2f8a2ca341b9c13 (diff)
downloadpostgresql-d66dcb144a3a5b8fd5cc76018bdbee2ef9f21f5f.tar.gz
Update release notes for security releases.
Security: CVE-2007-4769, CVE-2007-4772, CVE-2007-6067, CVE-2007-6600, CVE-2007-6601
-rw-r--r--doc/src/sgml/release.sgml4388
1 files changed, 2250 insertions, 2138 deletions
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml
index 7ce0c27c56..ad08319a5f 100644
--- a/doc/src/sgml/release.sgml
+++ b/doc/src/sgml/release.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.163.2.47 2007/09/16 03:04:09 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.163.2.48 2008/01/03 21:36:29 tgl Exp $ -->
<!--
Typical markup:
@@ -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 </link>
-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.
<appendix id="release">
<title>Release Notes</title>
- <sect1 id="release-7-3-20">
- <title>Release 7.3.20</title>
+ <sect1 id="release-7-3-21">
+ <title>Release 7.3.21</title>
- <note>
- <title>Release date</title>
- <simpara>2007-09-17</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2008-01-07</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 7.3.20,
+ including fixes for significant security issues.
+ </para>
+
+ <para>
+ This is expected to be the last <productname>PostgreSQL</> release
+ in the 7.3.X series. Users are encouraged to update to a newer
+ release branch soon.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 7.3.21</title>
<para>
- 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.
</para>
- <sect2>
- <title>Migration to version 7.3.20</title>
+ </sect2>
- <para>
- 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.
- </para>
+ <sect2>
+ <title>Changes</title>
- </sect2>
+ <itemizedlist>
- <sect2>
- <title>Changes</title>
+ <listitem>
+ <para>
+ Prevent functions in indexes from executing with the privileges of
+ the user running <command>VACUUM</>, <command>ANALYZE</>, etc (Tom)
+ </para>
- <itemizedlist>
+ <para>
+ 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 <command>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 <command>VACUUM</>, <command>ANALYZE</>, <command>REINDEX</>,
+ and <command>CLUSTER</>) to execute as the table owner rather than
+ the calling user, using the same privilege-switching mechanism already
+ used for <literal>SECURITY DEFINER</> functions. To prevent bypassing
+ this security measure, execution of <command>SET SESSION
+ AUTHORIZATION</> and <command>SET ROLE</> is now forbidden within a
+ <literal>SECURITY DEFINER</> context. (CVE-2007-6600)
+ </para>
+ </listitem>
- <listitem>
- <para>
- Prevent index corruption when a transaction inserts rows and
- then aborts close to the end of a concurrent <command>VACUUM</>
- on the same table (Tom)
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Require non-superusers who use <filename>/contrib/dblink</> to use only
+ password authentication, as a security measure (Joe)
+ </para>
- <listitem>
- <para>
- Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
- </para>
- </listitem>
+ <para>
+ The fix that appeared for this in 7.3.20 was incomplete, as it plugged
+ the hole for only some <filename>dblink</> functions. (CVE-2007-6601,
+ CVE-2007-3278)
+ </para>
+ </listitem>
- <listitem>
- <para>
- Fix crash when <varname>log_min_error_statement</> logging runs out
- of memory (Tom)
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Fix potential crash in <function>translate()</> when using a multibyte
+ database encoding (Tom)
+ </para>
+ </listitem>
- <listitem>
- <para>
- Require non-superusers who use <filename>/contrib/dblink</> to use only
- password authentication, as a security measure (Joe)
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Make <filename>contrib/tablefunc</>'s <function>crosstab()</> handle
+ NULL rowid as a category in its own right, rather than crashing (Joe)
+ </para>
+ </listitem>
- </itemizedlist>
+ <listitem>
+ <para>
+ Require a specific version of <productname>Autoconf</> to be used
+ when re-generating the <command>configure</> script (Peter)
+ </para>
- </sect2>
- </sect1>
+ <para>
+ This affects developers and packagers only. The change was made
+ to prevent accidental use of untested combinations of
+ <productname>Autoconf</> and <productname>PostgreSQL</> versions.
+ You can remove the version check if you really want to use a
+ different <productname>Autoconf</> version, but it's
+ your responsibility whether the result works or not.
+ </para>
+ </listitem>
- <sect1 id="release-7-3-19">
- <title>Release 7.3.19</title>
+ </itemizedlist>
- <note>
- <title>Release date</title>
- <simpara>2007-04-23</simpara>
- </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="release-7-3-20">
+ <title>Release 7.3.20</title>
+
+ <note>
+ <title>Release date</title>
+ <simpara>2007-09-17</simpara>
+ </note>
+
+ <para>
+ This release contains fixes from 7.3.19.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 7.3.20</title>
<para>
- 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.
</para>
- <sect2>
- <title>Migration to version 7.3.19</title>
-
- <para>
- 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.
- </para>
+ </sect2>
- </sect2>
+ <sect2>
+ <title>Changes</title>
- <sect2>
- <title>Changes</title>
+ <itemizedlist>
- <itemizedlist>
+ <listitem>
+ <para>
+ Prevent index corruption when a transaction inserts rows and
+ then aborts close to the end of a concurrent <command>VACUUM</>
+ on the same table (Tom)
+ </para>
+ </listitem>
- <listitem>
+ <listitem>
<para>
- Support explicit placement of the temporary-table schema within
- <varname>search_path</>, and disable searching it for functions
- and operators (Tom)
+ Make <command>CREATE DOMAIN ... DEFAULT NULL</> work properly (Tom)
</para>
+ </listitem>
+
+ <listitem>
<para>
- This is needed to allow a security-definer function to set a
- truly secure value of <varname>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 <command>CREATE FUNCTION</> for more information.
+ Fix crash when <varname>log_min_error_statement</> logging runs out
+ of memory (Tom)
</para>
- </listitem>
+ </listitem>
- <listitem>
+ <listitem>
<para>
- Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
- <command>UPDATE</> chains (Tom, Pavan Deolasee)
+ Require non-superusers who use <filename>/contrib/dblink</> to use only
+ password authentication, as a security measure (Joe)
</para>
- </listitem>
+ </listitem>
- </itemizedlist>
+ </itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-18">
- <title>Release 7.3.18</title>
+ <sect1 id="release-7-3-19">
+ <title>Release 7.3.19</title>
- <note>
- <title>Release date</title>
- <simpara>2007-02-05</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2007-04-23</simpara>
+ </note>
+
+ <para>
+ This release contains fixes from 7.3.18,
+ including a security fix.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 7.3.19</title>
<para>
- 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.
</para>
- <sect2>
- <title>Migration to version 7.3.18</title>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Support explicit placement of the temporary-table schema within
+ <varname>search_path</>, and disable searching it for functions
+ and operators (Tom)
+ </para>
<para>
- 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 <varname>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 <command>CREATE FUNCTION</> for more information.
</para>
+ </listitem>
- </sect2>
+ <listitem>
+ <para>
+ Fix potential-data-corruption bug in how <command>VACUUM FULL</> handles
+ <command>UPDATE</> chains (Tom, Pavan Deolasee)
+ </para>
+ </listitem>
- <sect2>
- <title>Changes</title>
+ </itemizedlist>
- <itemizedlist>
+ </sect2>
+ </sect1>
- <listitem>
- <para>
- Remove security vulnerability that allowed connected users
- to read backend memory (Tom)
- </para>
- <para>
- 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.
- </para>
- </listitem>
+ <sect1 id="release-7-3-18">
+ <title>Release 7.3.18</title>
- <listitem>
- <para>
- Fix rare bug wherein btree index page splits could fail
- due to choosing an infeasible split point (Heikki Linnakangas)
- </para>
- </listitem>
+ <note>
+ <title>Release date</title>
+ <simpara>2007-02-05</simpara>
+ </note>
- <listitem>
- <para>
- Tighten security of multi-byte character processing for UTF8 sequences
- over three bytes long (Tom)
- </para>
- </listitem>
+ <para>
+ This release contains a variety of fixes from 7.3.17, including
+ a security fix.
+ </para>
- </itemizedlist>
+ <sect2>
+ <title>Migration to Version 7.3.18</title>
- </sect2>
- </sect1>
+ <para>
+ 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.
+ </para>
- <sect1 id="release-7-3-17">
- <title>Release 7.3.17</title>
+ </sect2>
- <note>
- <title>Release date</title>
- <simpara>2007-01-08</simpara>
- </note>
+ <sect2>
+ <title>Changes</title>
- <para>
- This release contains a variety of fixes from 7.3.16.
- </para>
+ <itemizedlist>
- <sect2>
- <title>Migration to version 7.3.17</title>
+ <listitem>
+ <para>
+ Remove security vulnerability that allowed connected users
+ to read backend memory (Tom)
+ </para>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ <listitem>
<para>
- 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)
</para>
+ </listitem>
- </sect2>
+ <listitem>
+ <para>
+ Tighten security of multi-byte character processing for UTF8 sequences
+ over three bytes long (Tom)
+ </para>
+ </listitem>
- <sect2>
- <title>Changes</title>
+ </itemizedlist>
- <itemizedlist>
+ </sect2>
+ </sect1>
- <listitem>
- <para>
- <function>to_number()</> and <function>to_char(numeric)</>
- are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
- new <application>initdb</> installs (Tom)
- </para>
+ <sect1 id="release-7-3-17">
+ <title>Release 7.3.17</title>
- <para>
- This is because <varname>lc_numeric</> can potentially
- change the output of these functions.
- </para>
- </listitem>
+ <note>
+ <title>Release date</title>
+ <simpara>2007-01-08</simpara>
+ </note>
- <listitem>
- <para>
- Improve index usage of regular expressions that use parentheses (Tom)
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.16.
+ </para>
- <para>
- This improves <application>psql</> <literal>\d</> performance also.
- </para>
- </listitem>
+ <sect2>
+ <title>Migration to Version 7.3.17</title>
- </itemizedlist>
+ <para>
+ 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.
+ </para>
- </sect2>
- </sect1>
+ </sect2>
- <sect1 id="release-7-3-16">
- <title>Release 7.3.16</title>
+ <sect2>
+ <title>Changes</title>
- <note>
- <title>Release date</title>
- <simpara>2006-10-16</simpara>
- </note>
+ <itemizedlist>
- <para>
- This release contains a variety of fixes from 7.3.15.
- </para>
+ <listitem>
+ <para>
+ <function>to_number()</> and <function>to_char(numeric)</>
+ are now <literal>STABLE</>, not <literal>IMMUTABLE</>, for
+ new <application>initdb</> installs (Tom)
+ </para>
- <sect2>
- <title>Migration to version 7.3.16</title>
+ <para>
+ This is because <varname>lc_numeric</> can potentially
+ change the output of these functions.
+ </para>
+ </listitem>
- <para>
- 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.
- </para>
+ <listitem>
+ <para>
+ Improve index usage of regular expressions that use parentheses (Tom)
+ </para>
- </sect2>
+ <para>
+ This improves <application>psql</> <literal>\d</> performance also.
+ </para>
+ </listitem>
- <sect2>
- <title>Changes</title>
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="release-7-3-16">
+ <title>Release 7.3.16</title>
+
+ <note>
+ <title>Release date</title>
+ <simpara>2006-10-16</simpara>
+ </note>
+
+ <para>
+ This release contains a variety of fixes from 7.3.15.
+ </para>
+
+ <sect2>
+ <title>Migration to Version 7.3.16</title>
+
+ <para>
+ 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.
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Fix corner cases in pattern matching for
- <application>psql</>'s <literal>\d</> commands</para></listitem>
+ <application>psql</>'s <literal>\d</> commands</para></listitem>
<listitem><para>Fix index-corrupting bugs in /contrib/ltree
- (Teodor)</para></listitem>
+ (Teodor)</para></listitem>
<listitem><para>Back-port 7.4 spinlock code to improve performance and support
64-bit architectures better</para> </listitem>
<listitem><para>Fix SSL-related memory leak in libpq</para> </listitem>
@@ -309,46 +421,46 @@ do it for earlier branch release files.
</para> </listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-15">
- <title>Release 7.3.15</title>
+ <sect1 id="release-7-3-15">
+ <title>Release 7.3.15</title>
- <note>
- <title>Release date</title>
- <simpara>2006-05-23</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2006-05-23</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.14,
- including patches for extremely serious security issues.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.14,
+ including patches for extremely serious security issues.
+ </para>
- <sect2>
- <title>Migration to version 7.3.15</title>
+ <sect2>
+ <title>Migration to Version 7.3.15</title>
- <para>
- 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.
- </para>
+ <para>
+ 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.
+ </para>
- <para>
- 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 <application>libpq</>'s
- <function>PQescapeStringConn()</>) to perform string escaping,
- rather than relying on <foreignphrase>ad hoc</> code to do it.
- </para>
- </sect2>
+ <para>
+ 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 <application>libpq</>'s
+ <function>PQescapeStringConn()</>) to perform string escaping,
+ rather than relying on <foreignphrase>ad hoc</> code to do it.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Change the server to reject invalidly-encoded multibyte
@@ -401,33 +513,33 @@ Fuhr)</para></listitem>
<listitem><para>Fix various minor memory leaks</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-14">
- <title>Release 7.3.14</title>
+ <sect1 id="release-7-3-14">
+ <title>Release 7.3.14</title>
- <note>
- <title>Release date</title>
- <simpara>2006-02-14</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2006-02-14</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.13.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.13.
+ </para>
- <sect2>
- <title>Migration to version 7.3.14</title>
+ <sect2>
+ <title>Migration to Version 7.3.14</title>
- <para>
- 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.
- </para>
- </sect2>
+ <para>
+ 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.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
@@ -458,36 +570,36 @@ and <function>isinf</> during configure (Tom)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-13">
- <title>Release 7.3.13</title>
+ <sect1 id="release-7-3-13">
+ <title>Release 7.3.13</title>
- <note>
- <title>Release date</title>
- <simpara>2006-01-09</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2006-01-09</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.12.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.12.
+ </para>
- <sect2>
- <title>Migration to version 7.3.13</title>
+ <sect2>
+ <title>Migration to Version 7.3.13</title>
- <para>
- 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 <command>REINDEX</> indexes on textual
- columns after updating, if you are affected by the locale or
- <application>plperl</> issues described below.
- </para>
- </sect2>
+ <para>
+ 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 <command>REINDEX</> indexes on textual
+ columns after updating, if you are affected by the locale or
+ <application>plperl</> issues described below.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
@@ -520,33 +632,33 @@ what's actually returned by the query (Joe)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-12">
- <title>Release 7.3.12</title>
+ <sect1 id="release-7-3-12">
+ <title>Release 7.3.12</title>
- <note>
- <title>Release date</title>
- <simpara>2005-12-12</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-12-12</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.11.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.11.
+ </para>
- <sect2>
- <title>Migration to version 7.3.12</title>
+ <sect2>
+ <title>Migration to Version 7.3.12</title>
- <para>
- 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.
- </para>
- </sect2>
+ <para>
+ 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.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
@@ -567,33 +679,33 @@ table has been dropped</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-11">
- <title>Release 7.3.11</title>
+ <sect1 id="release-7-3-11">
+ <title>Release 7.3.11</title>
- <note>
- <title>Release date</title>
- <simpara>2005-10-04</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-10-04</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.10.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.10.
+ </para>
- <sect2>
- <title>Migration to version 7.3.11</title>
+ <sect2>
+ <title>Migration to Version 7.3.11</title>
- <para>
- 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.
- </para>
- </sect2>
+ <para>
+ 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.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Fix error that allowed <command>VACUUM</> to remove
@@ -618,87 +730,87 @@ enabled</para></listitem>
the variable is of pass-by-reference type</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-10">
- <title>Release 7.3.10</title>
+ <sect1 id="release-7-3-10">
+ <title>Release 7.3.10</title>
- <note>
- <title>Release date</title>
- <simpara>2005-05-09</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-05-09</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.9, including several
- security-related issues.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.9, including several
+ security-related issues.
+ </para>
- <sect2>
- <title>Migration to version 7.3.10</title>
+ <sect2>
+ <title>Migration to Version 7.3.10</title>
- <para>
- 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.
- </para>
+ <para>
+ 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.
+ </para>
- <para>
- 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.
- </para>
+ <para>
+ 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.
+ </para>
- <para>
- If you wish not to do an initdb, perform the following procedure instead.
- As the database superuser, do:
+ <para>
+ If you wish not to do an initdb, perform the following procedure instead.
+ As the database superuser, do:
<programlisting>
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;
</programlisting>
- </para>
+ </para>
- <para>
- The above procedure must be carried out in <emphasis>each</> database
- of an installation, including <literal>template1</>, and ideally
- including <literal>template0</> as well. If you do not fix the
- template databases then any subsequently created databases will contain
- the same error. <literal>template1</> can be fixed in the same way
- as any other database, but fixing <literal>template0</> requires
- additional steps. First, from any database issue:
+ <para>
+ The above procedure must be carried out in <emphasis>each</> database
+ of an installation, including <literal>template1</>, and ideally
+ including <literal>template0</> as well. If you do not fix the
+ template databases then any subsequently created databases will contain
+ the same error. <literal>template1</> can be fixed in the same way
+ as any other database, but fixing <literal>template0</> requires
+ additional steps. First, from any database issue:
<programlisting>
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
</programlisting>
- Next connect to <literal>template0</> and perform the above repair
- procedure. Finally, do:
+ Next connect to <literal>template0</> and perform the above repair
+ procedure. Finally, do:
<programlisting>
-- re-freeze template0:
VACUUM FREEZE;
-- and protect it against future alterations:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
</programlisting>
- </para>
- </sect2>
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Change encoding function signature to prevent
@@ -744,32 +856,32 @@ month-related formats</para></listitem>
<type>RECORD</></para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-9">
- <title>Release 7.3.9</title>
+ <sect1 id="release-7-3-9">
+ <title>Release 7.3.9</title>
- <note>
- <title>Release date</title>
- <simpara>2005-01-31</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-01-31</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.8, including several
- security-related issues.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.8, including several
+ security-related issues.
+ </para>
- <sect2>
- <title>Migration to version 7.3.9</title>
+ <sect2>
+ <title>Migration to Version 7.3.9</title>
- <para>
- A dump/restore is not required for those running 7.3.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.3.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
@@ -800,32 +912,32 @@ in case of nested merge joins could give outright wrong answers.
datestyles</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-8">
- <title>Release 7.3.8</title>
+ <sect1 id="release-7-3-8">
+ <title>Release 7.3.8</title>
- <note>
- <title>Release date</title>
- <simpara>2004-10-22</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2004-10-22</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.7.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.7.
+ </para>
- <sect2>
- <title>Migration to version 7.3.8</title>
+ <sect2>
+ <title>Migration to Version 7.3.8</title>
- <para>
- A dump/restore is not required for those running 7.3.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.3.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Repair possible failure to update hint bits on disk</para>
@@ -850,32 +962,32 @@ concern since there is no reason for non-developers to use this script anyway.
</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-7">
- <title>Release 7.3.7</title>
+ <sect1 id="release-7-3-7">
+ <title>Release 7.3.7</title>
- <note>
- <title>Release date</title>
- <simpara>2004-08-16</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2004-08-16</simpara>
+ </note>
- <para>
- This release contains one critical fix over 7.3.6, and some minor items.
- </para>
+ <para>
+ This release contains one critical fix over 7.3.6, and some minor items.
+ </para>
- <sect2>
- <title>Migration to version 7.3.7</title>
+ <sect2>
+ <title>Migration to Version 7.3.7</title>
- <para>
- A dump/restore is not required for those running 7.3.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.3.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Prevent possible loss of committed transactions during crash</para>
@@ -890,34 +1002,34 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Properly schema-qualify function names when pg_dump'ing a CAST</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-6">
- <title>Release 7.3.6</title>
+ <sect1 id="release-7-3-6">
+ <title>Release 7.3.6</title>
- <note>
- <title>Release date</title>
- <simpara>2004-03-02</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2004-03-02</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.3.5.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.3.5.
+ </para>
- <sect2>
- <title>Migration to version 7.3.6</title>
+ <sect2>
+ <title>Migration to Version 7.3.6</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running 7.3.*.
- </para>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running 7.3.*.
+ </para>
- </sect2>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Revert erroneous changes in rule permissions checking</para>
@@ -955,33 +1067,33 @@ in multibyte cases (Korea PostgreSQL Users' Group)</para></listitem>
operations on bytea columns (Joe)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-5">
- <title>Release 7.3.5</title>
+ <sect1 id="release-7-3-5">
+ <title>Release 7.3.5</title>
- <note>
- <title>Release date</title>
- <simpara>2003-12-03</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2003-12-03</simpara>
+ </note>
- <para>
- This has a variety of fixes from 7.3.4.
- </para>
+ <para>
+ This has a variety of fixes from 7.3.4.
+ </para>
- <sect2>
- <title>Migration to version 7.3.5</title>
+ <sect2>
+ <title>Migration to Version 7.3.5</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running 7.3.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running 7.3.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Force zero_damaged_pages to be on during recovery from WAL</para></listitem>
@@ -1006,33 +1118,33 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix corner case for btree search in parallel with first root page split</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-4">
- <title>Release 7.3.4</title>
+ <sect1 id="release-7-3-4">
+ <title>Release 7.3.4</title>
- <note>
- <title>Release date</title>
- <simpara>2003-07-24</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2003-07-24</simpara>
+ </note>
- <para>
- This has a variety of fixes from 7.3.3.
- </para>
+ <para>
+ This has a variety of fixes from 7.3.3.
+ </para>
- <sect2>
- <title>Migration to version 7.3.4</title>
+ <sect2>
+ <title>Migration to Version 7.3.4</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running 7.3.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running 7.3.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Repair breakage in timestamp-to-date conversion for dates before 2000</para></listitem>
@@ -1045,33 +1157,33 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Work around buggy strxfrm() present in some Solaris releases (Tom)</para></listitem>
<listitem><para>Properly escape jdbc setObject() strings to improve security (Barry)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-3-3">
- <title>Release 7.3.3</title>
+<sect1 id="release-7-3-3">
+ <title>Release 7.3.3</title>
- <note>
- <title>Release date</title>
- <simpara>2003-05-22</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2003-05-22</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.3.2.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.3.2.
+ </para>
- <sect2>
- <title>Migration to version 7.3.3</title>
+ <sect2>
+ <title>Migration to Version 7.3.3</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.3.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.3.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Repair sometimes-incorrect computation of StartUpID after a crash</para></listitem>
@@ -1087,21 +1199,21 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Issue notice, not error, if <type>TIMESTAMP</type>,
<type> TIME</type>, or <type>INTERVAL</type> precision too large</para></listitem>
<listitem><para>Fix <function>abstime-to-time</function> cast function (fix is
- not applied unless you <application>initdb</application>)</para></listitem>
+ not applied unless you <application>initdb</application>)</para></listitem>
<listitem><para>Fix <application>pg_proc</application> entry for
- <type>timestampt_izone</type> (fix is not applied unless you
- <application>initdb</application>)</para></listitem>
+ <type>timestampt_izone</type> (fix is not applied unless you
+ <application>initdb</application>)</para></listitem>
<listitem><para>Make <function>EXTRACT(EPOCH FROM timestamp without time zone)</function> treat input as local time</para></listitem>
<listitem><para><command>'now'::timestamptz</command> gave wrong answer if timezone changed earlier in transaction</para></listitem>
<listitem><para><envar>HAVE_INT64_TIMESTAMP</envar> code for time with timezone overwrote its input</para></listitem>
<listitem><para>Accept <command>GLOBAL TEMP/TEMPORARY</command> as a
- synonym for <command>TEMPORARY</command></para></listitem>
+ synonym for <command>TEMPORARY</command></para></listitem>
<listitem><para>Avoid improper schema-privilege-check failure in foreign-key triggers</para></listitem>
<listitem><para>Fix bugs in foreign-key triggers for <command>SET DEFAULT</command> action</para></listitem>
<listitem><para>Fix incorrect time-qual check in row fetch for
- <command>UPDATE</command> and <command>DELETE</command> triggers</para></listitem>
+ <command>UPDATE</command> and <command>DELETE</command> triggers</para></listitem>
<listitem><para>Foreign-key clauses were parsed but ignored in
- <command>ALTER TABLE ADD COLUMN</command></para></listitem>
+ <command>ALTER TABLE ADD COLUMN</command></para></listitem>
<listitem><para>Fix createlang script breakage for case where handler function already exists</para></listitem>
<listitem><para>Fix misbehavior on zero-column tables in <application>pg_dump</application>, COPY, ANALYZE, other places</para></listitem>
<listitem><para>Fix misbehavior of <function>func_error()</function> on type names containing '%'</para></listitem>
@@ -1135,13 +1247,13 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix replace_vars_with_subplan_refs failure in complex views</para></listitem>
<listitem><para>Fix regexp slowness in single-byte encodings (Tatsuo)</para></listitem>
<listitem><para>Allow qualified type names in <command>CREATE CAST</command>
- and <command> DROP CAST</command></para></listitem>
+ and <command> DROP CAST</command></para></listitem>
<listitem><para>Accept <function>SETOF type[]</function>, which formerly had to
- be written <function>SETOF _type</function></para></listitem>
+ be written <function>SETOF _type</function></para></listitem>
<listitem><para>Fix <application>pg_dump</application> core dump in some cases with procedural languages</para></listitem>
<listitem><para>Force ISO datestyle in <application>pg_dump</application> output, for portability (Oliver)</para></listitem>
<listitem><para><application>pg_dump</application> failed to handle error return
- from <function>lo_read</function> (Oleg Drokin)</para></listitem>
+ from <function>lo_read</function> (Oleg Drokin)</para></listitem>
<listitem><para><application>pg_dumpall</application> failed with groups having no members (Nick Eskelinen)</para></listitem>
<listitem><para><application>pg_dumpall</application> failed to recognize --globals-only switch</para></listitem>
<listitem><para>pg_restore failed to restore blobs if -X disable-triggers is specified</para></listitem>
@@ -1155,34 +1267,34 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fixed problem with parsing table ACLs in JDBC</para></listitem>
<listitem><para>Better error message for character set conversion problems in JDBC</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-2">
- <title>Release 7.3.2</title>
+<sect1 id="release-7-3-2">
+ <title>Release 7.3.2</title>
- <note>
- <title>Release date</title>
- <simpara>2003-02-04</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2003-02-04</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.3.1.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.3.1.
+ </para>
- <sect2>
- <title>Migration to version 7.3.2</title>
+ <sect2>
+ <title>Migration to Version 7.3.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.3.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.3.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Restore creation of OID column in CREATE TABLE AS / SELECT INTO</para></listitem>
@@ -1216,37 +1328,37 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Add casts between types lo and oid in contrib/lo</para></listitem>
<listitem><para>fastpath code now checks for privilege to call function</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-3-1">
- <title>Release 7.3.1</title>
+<sect1 id="release-7-3-1">
+ <title>Release 7.3.1</title>
- <note>
- <title>Release date</title>
- <simpara>2002-12-18</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-12-18</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.3.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.3.
+ </para>
- <sect2>
- <title>Migration to version 7.3.1</title>
+ <sect2>
+ <title>Migration to Version 7.3.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.3. However, it should be noted that the main
- <productname>PostgreSQL</productname> interface library, libpq,
- has a new major version number for this release, which might require
- recompilation of client code in certain cases.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.3. However, it should be noted that the main
+ <productname>PostgreSQL</productname> interface library, libpq,
+ has a new major version number for this release, which might require
+ recompilation of client code in certain cases.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Fix a core dump of COPY TO when client/server encodings don't match (Tom)</para></listitem>
@@ -1266,265 +1378,265 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>SSL fixes (Nathan Mueller)</para></listitem>
<listitem><para>Prevent composite column creation via ALTER TABLE (Tom)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
-
-
- <sect1 id="release-7-3">
- <title>Release 7.3</title>
-
- <note>
- <title>Release date</title>
- <simpara>2002-11-27</simpara>
- </note>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- Major changes in this release:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>Schemas</term>
- <listitem>
- <para>
- 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.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Drop Column</term>
- <listitem>
- <para>
- <productname>PostgreSQL</productname> now supports the
- <literal>ALTER TABLE ... DROP COLUMN</literal> functionality.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Table Functions</term>
- <listitem>
- <para>
- Functions returning multiple rows and/or multiple columns are
- now much easier to use than before. You can call such a
- <quote>table function</quote> in the <literal>SELECT</literal>
- <literal>FROM</literal> clause, treating its output like a
- table. Also, <application>PL/pgSQL</application> functions can
- now return sets.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Prepared Queries</term>
- <listitem>
- <para>
- <productname>PostgreSQL</productname> now supports prepared
- queries, for improved performance.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Dependency Tracking</term>
- <listitem>
- <para>
- <productname>PostgreSQL</productname> now records object
- dependencies, which allows improvements in many areas.
- <command>DROP</command> statements now take either
- <literal>CASCADE</> or <literal>RESTRICT</> to control whether
- dependent objects are also dropped.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Privileges</term>
- <listitem>
- <para>
- Functions and procedural languages now have privileges, and
- functions can be defined to run with the privileges of their
- creator.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Internationalization</term>
- <listitem>
- <para>
- Both multibyte and locale support are now always enabled.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Logging</term>
- <listitem>
- <para>
- A variety of logging options have been enhanced.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Interfaces</term>
- <listitem>
- <para>
- A large number of interfaces have been moved to <ulink
- url="http://gborg.postgresql.org">http://gborg.postgresql.org</>
- where they can be developed and released independently.
- </para>
- </listitem>
- </varlistentry>
+ </sect2>
+</sect1>
- <varlistentry>
- <term>Functions/Identifiers</term>
- <listitem>
- <para>
- By default, functions can now take up to 32 parameters, and
- identifiers can be up to 63 bytes long. Also, <literal>OPAQUE</>
- is now deprecated: there are specific <quote>pseudo-datatypes</>
- to represent each of the former meanings of <literal>OPAQUE</>
- in function argument and result types.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
+<sect1 id="release-7-3">
+ <title>Release 7.3</title>
- <sect2>
- <title>Migration to version 7.3</title>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-11-27</simpara>
+ </note>
- <para>
- A dump/restore using <application>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: <ulink
- url="http://developer.postgresql.org/~momjian/upgrade_tips_7.3"></>.
- </para>
+ <sect2>
+ <title>Overview</title>
- <para>
- Observe the following incompatibilities:
- </para>
+ <para>
+ Major changes in this release:
+ </para>
- <itemizedlist>
+ <variablelist>
+ <varlistentry>
+ <term>Schemas</term>
<listitem>
<para>
- 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.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Drop Column</term>
<listitem>
<para>
- <filename>pg_hba.conf</filename> now has a column for the user
- name and additional features. Existing files need to be
- adjusted.
+ <productname>PostgreSQL</productname> now supports the
+ <literal>ALTER TABLE ... DROP COLUMN</literal> functionality.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Table Functions</term>
<listitem>
<para>
- Several <filename>postgresql.conf</filename> 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
+ <quote>table function</quote> in the <literal>SELECT</literal>
+ <literal>FROM</literal> clause, treating its output like a
+ table. Also, <application>PL/pgSQL</application> functions can
+ now return sets.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Prepared Queries</term>
<listitem>
<para>
- <literal>LIMIT #,#</literal> has been disabled; use
- <literal>LIMIT # OFFSET #</literal>.
+ <productname>PostgreSQL</productname> now supports prepared
+ queries, for improved performance.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Dependency Tracking</term>
<listitem>
<para>
- <command>INSERT</command> statements with column lists must
- specify a value for each specified column. For example,
- <literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal>
- is now invalid. It's still allowed to supply fewer columns than
- expected if the <command>INSERT</command> does not have a column list.
+ <productname>PostgreSQL</productname> now records object
+ dependencies, which allows improvements in many areas.
+ <command>DROP</command> statements now take either
+ <literal>CASCADE</> or <literal>RESTRICT</> to control whether
+ dependent objects are also dropped.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Privileges</term>
<listitem>
<para>
- <type>serial</type> columns are no longer automatically
- <literal>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.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Internationalization</term>
<listitem>
<para>
- A <command>SET</command> command inside an aborted transaction
- is now rolled back.
+ Both multibyte and locale support are now always enabled.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Logging</term>
<listitem>
<para>
- <command>COPY</command> 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 <command>COPY</command> command.)
+ A variety of logging options have been enhanced.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Interfaces</term>
<listitem>
<para>
- The data type <type>timestamp</type> is now equivalent to
- <type>timestamp without time zone</type>, instead of
- <type>timestamp with time zone</type>.
+ A large number of interfaces have been moved to <ulink
+ url="http://gborg.postgresql.org">http://gborg.postgresql.org</>
+ where they can be developed and released independently.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Functions/Identifiers</term>
<listitem>
<para>
- Pre-7.3 databases loaded into 7.3 will not have the new object
- dependencies for <type>serial</type> columns, unique
- constraints, and foreign keys. See the directory
- <filename>contrib/adddepend/</filename> 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, <literal>OPAQUE</>
+ is now deprecated: there are specific <quote>pseudo-datatypes</>
+ to represent each of the former meanings of <literal>OPAQUE</>
+ in function argument and result types.
</para>
</listitem>
+ </varlistentry>
- <listitem>
- <para>
- An empty string (<literal>''</literal>) is no longer allowed as
- the input into an integer field. Formerly, it was silently
- interpreted as 0.
- </para>
- </listitem>
+ </variablelist>
+ </sect2>
- </itemizedlist>
- </sect2>
+ <sect2>
+ <title>Migration to Version 7.3</title>
- <sect2>
- <title>Changes</title>
+ <para>
+ A dump/restore using <application>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: <ulink
+ url="http://developer.postgresql.org/~momjian/upgrade_tips_7.3"></>.
+ </para>
- <sect3>
- <title>Server Operation</title>
+ <para>
+ Observe the following incompatibilities:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Pre-6.3 clients are no longer supported.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <filename>pg_hba.conf</filename> now has a column for the user
+ name and additional features. Existing files need to be
+ adjusted.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Several <filename>postgresql.conf</filename> logging parameters
+ have been renamed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>LIMIT #,#</literal> has been disabled; use
+ <literal>LIMIT # OFFSET #</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>INSERT</command> statements with column lists must
+ specify a value for each specified column. For example,
+ <literal>INSERT INTO tab (col1, col2) VALUES ('val1')</literal>
+ is now invalid. It's still allowed to supply fewer columns than
+ expected if the <command>INSERT</command> does not have a column list.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <type>serial</type> columns are no longer automatically
+ <literal>UNIQUE</>; thus, an index will not automatically be
+ created.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A <command>SET</command> command inside an aborted transaction
+ is now rolled back.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>COPY</command> 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 <command>COPY</command> command.)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The data type <type>timestamp</type> is now equivalent to
+ <type>timestamp without time zone</type>, instead of
+ <type>timestamp with time zone</type>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Pre-7.3 databases loaded into 7.3 will not have the new object
+ dependencies for <type>serial</type> columns, unique
+ constraints, and foreign keys. See the directory
+ <filename>contrib/adddepend/</filename> for a detailed
+ description and a script that will add such dependencies.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ An empty string (<literal>''</literal>) is no longer allowed as
+ the input into an integer field. Formerly, it was silently
+ interpreted as 0.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <sect3>
+ <title>Server Operation</title>
<itemizedlist>
<listitem><para>Add pg_locks view to show locks (Neil)</para></listitem>
<listitem><para>Security fixes for password negotiation memory allocation (Neil)</para></listitem>
<listitem><para>Remove support for version 0 FE/BE protocol (<productname>PostgreSQL</productname> 6.2 and earlier) (Tom)</para></listitem>
<listitem><para>Reserve the last few backend slots for superusers, add parameter superuser_reserved_connections to control this (Nigel J. Andrews)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Performance</title>
+ <sect3>
+ <title>Performance</title>
<itemizedlist>
<listitem><para>Improve startup by calling localtime() only once (Tom)</para></listitem>
<listitem><para>Cache system catalog information in flat files for faster startup (Tom)</para></listitem>
@@ -1545,10 +1657,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Improve free space map performance on large tables (Stephen Marshall, Tom)</para></listitem>
<listitem><para>Improved WAL write concurrency (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Privileges</title>
+ <sect3>
+ <title>Privileges</title>
<itemizedlist>
<listitem><para>Add privileges on functions and procedural languages (Peter)</para></listitem>
<listitem><para>Add OWNER to CREATE DATABASE so superusers can create databases on behalf of unprivileged users (Gavin Sherry, Tom)</para></listitem>
@@ -1556,10 +1668,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Tom)</para></listitem>
<listitem><para>Allow functions to be executed with the privilege of the function owner (Peter)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Server Configuration</title>
+ <sect3>
+ <title>Server Configuration</title>
<itemizedlist>
<listitem><para>Server log messages now tagged with LOG, not DEBUG (Bruce)</para></listitem>
<listitem><para>Add user column to pg_hba.conf (Bruce)</para></listitem>
@@ -1578,10 +1690,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Rename show_query_stats to show_statement_stats (Bruce)</para></listitem>
<listitem><para>Add param log_min_error_statement to print commands to logs on error (Gavin)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Queries</title>
+ <sect3>
+ <title>Queries</title>
<itemizedlist>
<listitem><para>Make cursors insensitive, meaning their contents do not change (Tom)</para></listitem>
<listitem><para>Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)</para></listitem>
@@ -1602,10 +1714,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)</para></listitem>
<listitem><para>Add variable autocommit (Tom, David Van Wie)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Object Manipulation</title>
+ <sect3>
+ <title>Object Manipulation</title>
<itemizedlist>
<listitem><para>Make equals signs optional in CREATE DATABASE (Gavin Sherry)</para></listitem>
<listitem><para>Make ALTER TABLE OWNER change index ownership too (Neil)</para></listitem>
@@ -1639,10 +1751,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)</para></listitem>
<listitem><para>Allow better casting when inserting/updating values (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Utility Commands</title>
+ <sect3>
+ <title>Utility Commands</title>
<itemizedlist>
<listitem><para>Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom)</para></listitem>
<listitem><para>Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)</para></listitem>
@@ -1679,10 +1791,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix rare index corruption when a page split affects bulk delete (Tom)</para></listitem>
<listitem><para>Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Data Types and Functions</title>
+ <sect3>
+ <title>Data Types and Functions</title>
<itemizedlist>
<listitem><para>Fix factorial(0) to return 1 (Bruce)</para></listitem>
<listitem><para>Date/time/timezone improvements (Thomas)</para></listitem>
@@ -1725,10 +1837,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix to_char(1,'FM999.99') to return a period (Karel)</para></listitem>
<listitem><para>Fix trigger/type/language functions returning OPAQUE to return proper type (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Internationalization</title>
+ <sect3>
+ <title>Internationalization</title>
<itemizedlist>
<listitem><para>Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya)</para></listitem>
<listitem><para>Enable locale support by default (Peter)</para></listitem>
@@ -1743,10 +1855,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>pg_dumpall, pg_controldata, and pg_resetxlog now national-language aware (Peter)</para></listitem>
<listitem><para>New and updated translations</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Server-side Languages</title>
+ <sect3>
+ <title>Server-side Languages</title>
<itemizedlist>
<listitem><para>Allow recursive SQL function (Peter)</para></listitem>
<listitem><para>Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter)</para></listitem>
@@ -1756,10 +1868,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Make PL/pgSQL schema-aware (Joe)</para></listitem>
<listitem><para>Remove some memory leaks (Nigel J. Andrews, Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>psql</title>
+ <sect3>
+ <title>psql</title>
<itemizedlist>
<listitem><para>Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom)</para></listitem>
<listitem><para>Add psql \timing to time user queries (Greg Sabino Mullane)</para></listitem>
@@ -1773,10 +1885,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Have psql reports its version number on startup (Tom)</para></listitem>
<listitem><para>Allow \copy to specify column names (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>libpq</title>
+ <sect3>
+ <title>libpq</title>
<itemizedlist>
<listitem><para>Add ~/.pgpass to store host/user password combinations (Alvaro Herrera)</para></listitem>
<listitem><para>Add PQunescapeBytea() function to libpq (Patrick Welche)</para></listitem>
@@ -1787,10 +1899,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix for SSL with non-blocking connections (Jack Bates)</para></listitem>
<listitem><para>Add libpq connection timeout parameter (Denis A Ustimenko)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>JDBC</title>
+ <sect3>
+ <title>JDBC</title>
<itemizedlist>
<listitem><para>Allow JDBC to compile with JDK 1.4 (Dave)</para></listitem>
<listitem><para>Add JDBC 3 support (Barry)</para></listitem>
@@ -1803,10 +1915,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fix MD5 encryption handling for multibyte servers (Jun Kawai)</para></listitem>
<listitem><para>Add support for prepared statements (Barry)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Miscellaneous Interfaces</title>
+ <sect3>
+ <title>Miscellaneous Interfaces</title>
<itemizedlist>
<listitem><para>Fixed ECPG bug concerning octal numbers in single quotes (Michael)</para></listitem>
<listitem><para>Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)</para></listitem>
@@ -1819,10 +1931,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Remove src/bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce)</para></listitem>
<listitem><para>Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer, Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Source Code</title>
+ <sect3>
+ <title>Source Code</title>
<itemizedlist>
<listitem><para>Fix for parallel make (Peter)</para></listitem>
<listitem><para>AIX fixes for linking Tcl (Andreas Zeugswetter)</para></listitem>
@@ -1874,10 +1986,10 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Remove parameter wal_files because WAL files are now recycled (Bruce)</para></listitem>
<listitem><para>Add version numbers to heap pages (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Contrib</title>
+ <sect3>
+ <title>Contrib</title>
<itemizedlist>
<listitem><para>Allow inet arrays in /contrib/array (Neil)</para></listitem>
<listitem><para>GiST fixes (Teodor Sigaev, Neil)</para></listitem>
@@ -1901,34 +2013,34 @@ operations on bytea columns (Joe)</para></listitem>
<listitem><para>Fixes to /contrib/cube (Bruno Wolff)</para></listitem>
<listitem><para>Improve /contrib/fulltextindex (Christopher)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-8">
- <title>Release 7.2.8</title>
+ <sect1 id="release-7-2-8">
+ <title>Release 7.2.8</title>
- <note>
- <title>Release date</title>
- <simpara>2005-05-09</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-05-09</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.2.7, including one
- security-related issue.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.2.7, including one
+ security-related issue.
+ </para>
- <sect2>
- <title>Migration to version 7.2.8</title>
+ <sect2>
+ <title>Migration to Version 7.2.8</title>
- <para>
- A dump/restore is not required for those running 7.2.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.2.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Repair ancient race condition that allowed a transaction to be
@@ -1954,32 +2066,32 @@ month-related formats</para></listitem>
(Marko Kreen)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-7">
- <title>Release 7.2.7</title>
+ <sect1 id="release-7-2-7">
+ <title>Release 7.2.7</title>
- <note>
- <title>Release date</title>
- <simpara>2005-01-31</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2005-01-31</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.2.6, including several
- security-related issues.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.2.6, including several
+ security-related issues.
+ </para>
- <sect2>
- <title>Migration to version 7.2.7</title>
+ <sect2>
+ <title>Migration to Version 7.2.7</title>
- <para>
- A dump/restore is not required for those running 7.2.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.2.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Disallow <command>LOAD</> to non-superusers</para>
@@ -2002,32 +2114,32 @@ in case of nested merge joins could give outright wrong answers.
datestyles</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-6">
- <title>Release 7.2.6</title>
+ <sect1 id="release-7-2-6">
+ <title>Release 7.2.6</title>
- <note>
- <title>Release date</title>
- <simpara>2004-10-22</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2004-10-22</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.2.5.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.2.5.
+ </para>
- <sect2>
- <title>Migration to version 7.2.6</title>
+ <sect2>
+ <title>Migration to Version 7.2.6</title>
- <para>
- A dump/restore is not required for those running 7.2.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.2.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Repair possible failure to update hint bits on disk</para>
@@ -2053,32 +2165,32 @@ concern since there is no reason for non-developers to use this script anyway.
<listitem><para>Update to newer versions of Bison</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-5">
- <title>Release 7.2.5</title>
+ <sect1 id="release-7-2-5">
+ <title>Release 7.2.5</title>
- <note>
- <title>Release date</title>
- <simpara>2004-08-16</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2004-08-16</simpara>
+ </note>
- <para>
- This release contains a variety of fixes from 7.2.4.
- </para>
+ <para>
+ This release contains a variety of fixes from 7.2.4.
+ </para>
- <sect2>
- <title>Migration to version 7.2.5</title>
+ <sect2>
+ <title>Migration to Version 7.2.5</title>
- <para>
- A dump/restore is not required for those running 7.2.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is not required for those running 7.2.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Prevent possible loss of committed transactions during crash</para>
@@ -2096,33 +2208,33 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Repair memory leaks in pg_dump</para></listitem>
<listitem><para>Avoid conflict with system definition of <function>isblank()</function> function or macro</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-4">
- <title>Release 7.2.4</title>
+<sect1 id="release-7-2-4">
+ <title>Release 7.2.4</title>
- <note>
- <title>Release date</title>
- <simpara>2003-01-30</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2003-01-30</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.2.3,
- including fixes to prevent possible data loss.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.2.3,
+ including fixes to prevent possible data loss.
+ </para>
- <sect2>
- <title>Migration to version 7.2.4</title>
+ <sect2>
+ <title>Migration to Version 7.2.4</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.2.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.2.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Fix some additional cases of VACUUM "No one parent tuple was found" error</para></listitem>
@@ -2134,34 +2246,34 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix integer overflows in circle_poly(), path_encode(), path_add() (Neil)</para></listitem>
<listitem><para>Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-3">
- <title>Release 7.2.3</title>
+<sect1 id="release-7-2-3">
+ <title>Release 7.2.3</title>
- <note>
- <title>Release date</title>
- <simpara>2002-10-01</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-10-01</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.2.2,
- including fixes to prevent possible data loss.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.2.2,
+ including fixes to prevent possible data loss.
+ </para>
- <sect2>
- <title>Migration to version 7.2.3</title>
+ <sect2>
+ <title>Migration to Version 7.2.3</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.2.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.2.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Prevent possible compressed transaction log loss (Tom)</para></listitem>
@@ -2171,33 +2283,33 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)</para></listitem>
<listitem><para>Fix <application>pg_dump</> to properly dump FULL JOIN USING (Tom)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-2">
- <title>Release 7.2.2</title>
+<sect1 id="release-7-2-2">
+ <title>Release 7.2.2</title>
- <note>
- <title>Release date</title>
- <simpara>2002-08-23</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-08-23</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.2.1.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.2.1.
+ </para>
- <sect2>
- <title>Migration to version 7.2.2</title>
+ <sect2>
+ <title>Migration to Version 7.2.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.2.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.2.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)</para></listitem>
@@ -2214,33 +2326,33 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix for crash with long DATA strings (Thomas, Neil)</para></listitem>
<listitem><para>Fix for repeat(), lpad(), rpad() and long strings (Neil)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
+ </sect2>
+</sect1>
- <sect1 id="release-7-2-1">
- <title>Release 7.2.1</title>
+<sect1 id="release-7-2-1">
+ <title>Release 7.2.1</title>
- <note>
- <title>Release date</title>
- <simpara>2002-03-21</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-03-21</simpara>
+ </note>
- <para>
- This release contains a variety of fixes for version 7.2.
- </para>
+ <para>
+ This release contains a variety of fixes for version 7.2.
+ </para>
- <sect2>
- <title>Migration to version 7.2.1</title>
+ <sect2>
+ <title>Migration to Version 7.2.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running version 7.2.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those
+ running version 7.2.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
<itemizedlist>
<listitem><para>Ensure that sequence counters do not go backwards after a crash (Tom)</para></listitem>
@@ -2260,183 +2372,183 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix for array subscripts handling (Tom)</para></listitem>
<listitem><para>Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)</para></listitem>
</itemizedlist>
- </sect2>
- </sect1>
-
-
- <sect1 id="release-7-2">
- <title>Release 7.2</title>
-
- <note>
- <title>Release date</title>
- <simpara>2002-02-04</simpara>
- </note>
-
- <sect2>
- <title>Overview</title>
-
- <para>
- This release improves <productname>PostgreSQL</> for use in
- high-volume applications.
- </para>
-
- <para>
- Major changes in this release:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>VACUUM</term>
- <listitem>
- <para>
- Vacuuming no longer locks tables, thus allowing normal user
- access during the vacuum. A new <command>VACUUM FULL</>
- command does old-style vacuum by locking the table and
- shrinking the on-disk copy of the table.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Transactions</term>
- <listitem>
- <para>
- There is no longer a problem with installations that exceed
- four billion transactions.
- </para>
- </listitem>
- </varlistentry>
+ </sect2>
+</sect1>
- <varlistentry>
- <term>OIDs</term>
- <listitem>
- <para>
- OIDs are now optional. Users can now create tables without
- OIDs for cases where OID usage is excessive.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Optimizer</term>
- <listitem>
- <para>
- The system now computes histogram column statistics during
- <command>ANALYZE</>, allowing much better optimizer choices.
- </para>
- </listitem>
- </varlistentry>
+<sect1 id="release-7-2">
+ <title>Release 7.2</title>
- <varlistentry>
- <term>Security</term>
- <listitem>
- <para>
- 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.
- </para>
- </listitem>
- </varlistentry>
+ <note>
+ <title>Release date</title>
+ <simpara>2002-02-04</simpara>
+ </note>
- <varlistentry>
- <term>Statistics</term>
- <listitem>
- <para>
- Administrators can use the new table access statistics module
- to get fine-grained information about table and index usage.
- </para>
- </listitem>
- </varlistentry>
+ <sect2>
+ <title>Overview</title>
- <varlistentry>
- <term>Internationalization</term>
- <listitem>
- <para>
- Program and library messages can now be displayed in several
- languages.
- </para>
- </listitem>
- </varlistentry>
-
- </variablelist>
- </sect2>
-
- <sect2>
- <title>Migration to version 7.2</title>
+ <para>
+ This release improves <productname>PostgreSQL</> for use in
+ high-volume applications.
+ </para>
- <para>
- A dump/restore using <command>pg_dump</command> is required for
- those wishing to migrate data from any previous release.
- </para>
+ <para>
+ Major changes in this release:
+ </para>
- <para>
- Observe the following incompatibilities:
- </para>
+ <variablelist>
+ <varlistentry>
+ <term>VACUUM</term>
+ <listitem>
+ <para>
+ Vacuuming no longer locks tables, thus allowing normal user
+ access during the vacuum. A new <command>VACUUM FULL</>
+ command does old-style vacuum by locking the table and
+ shrinking the on-disk copy of the table.
+ </para>
+ </listitem>
+ </varlistentry>
- <itemizedlist>
+ <varlistentry>
+ <term>Transactions</term>
<listitem>
<para>
- The semantics of the <command>VACUUM</command> 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.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>OIDs</term>
<listitem>
<para>
- In this release, comparisons using <literal>= NULL</literal>
- will always return false (or NULL, more precisely). Previous
- releases automatically transformed this syntax to <literal>IS
- NULL</literal>. The old behavior can be re-enabled using a
- <filename>postgresql.conf</filename> parameter.
+ OIDs are now optional. Users can now create tables without
+ OIDs for cases where OID usage is excessive.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Optimizer</term>
<listitem>
<para>
- The <filename>pg_hba.conf</> and <filename>pg_ident.conf</>
- configuration is now only reloaded after receiving a
- <systemitem>SIGHUP</> signal, not with each connection.
+ The system now computes histogram column statistics during
+ <command>ANALYZE</>, allowing much better optimizer choices.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Security</term>
<listitem>
<para>
- The function <filename>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.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Statistics</term>
<listitem>
<para>
- The date/time value <literal>'current'</literal> 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.
</para>
</listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Internationalization</term>
<listitem>
<para>
- The <literal>timestamp()</literal>, <literal>time()</literal>,
- and <literal>interval()</literal> functions are no longer
- available. Instead of <literal>timestamp()</literal>, use
- <literal>timestamp 'string'</literal> or <literal>CAST</literal>.
+ Program and library messages can now be displayed in several
+ languages.
</para>
</listitem>
+ </varlistentry>
- </itemizedlist>
+ </variablelist>
+ </sect2>
- <para>
- The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed
- in the next release. You should change your queries to use
- separate LIMIT and OFFSET clauses, e.g. <literal>LIMIT 10 OFFSET
- 20</literal>.
- </para>
- </sect2>
+ <sect2>
+ <title>Migration to Version 7.2</title>
- <sect2>
- <title>Changes</title>
+ <para>
+ A dump/restore using <command>pg_dump</command> is required for
+ those wishing to migrate data from any previous release.
+ </para>
- <sect3>
- <title>Server Operation</title>
+ <para>
+ Observe the following incompatibilities:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ The semantics of the <command>VACUUM</command> command have
+ changed in this release. You might wish to update your
+ maintenance procedures accordingly.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ In this release, comparisons using <literal>= NULL</literal>
+ will always return false (or NULL, more precisely). Previous
+ releases automatically transformed this syntax to <literal>IS
+ NULL</literal>. The old behavior can be re-enabled using a
+ <filename>postgresql.conf</filename> parameter.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <filename>pg_hba.conf</> and <filename>pg_ident.conf</>
+ configuration is now only reloaded after receiving a
+ <systemitem>SIGHUP</> signal, not with each connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The function <filename>octet_length()</> now returns the uncompressed data length.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The date/time value <literal>'current'</literal> is no longer
+ available. You will need to rewrite your applications.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <literal>timestamp()</literal>, <literal>time()</literal>,
+ and <literal>interval()</literal> functions are no longer
+ available. Instead of <literal>timestamp()</literal>, use
+ <literal>timestamp 'string'</literal> or <literal>CAST</literal>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The <literal>SELECT ... LIMIT #,#</literal> syntax will be removed
+ in the next release. You should change your queries to use
+ separate LIMIT and OFFSET clauses, e.g. <literal>LIMIT 10 OFFSET
+ 20</literal>.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Changes</title>
+
+ <sect3>
+ <title>Server Operation</title>
<itemizedlist>
<listitem><para>Create temporary files in a separate directory (Bruce)</para></listitem>
<listitem><para>Delete orphaned temporary files on postmaster startup (Bruce)</para></listitem>
@@ -2459,10 +2571,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Superuser ID now fixed at 1 (Peter E)</para></listitem>
<listitem><para>New pg_ctl "reload" option (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Performance</title>
+ <sect3>
+ <title>Performance</title>
<itemizedlist>
<listitem><para>Optimizer improvements (Tom)</para></listitem>
<listitem><para>New histogram column statistics for optimizer (Tom)</para></listitem>
@@ -2475,10 +2587,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>R-tree performance improvements (Kenneth Been)</para></listitem>
<listitem><para>B-tree splits more efficient (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Privileges</title>
+ <sect3>
+ <title>Privileges</title>
<itemizedlist>
<listitem><para>Change UPDATE, DELETE privileges to be distinct (Peter E)</para></listitem>
<listitem><para>New REFERENCES, TRIGGER privileges (Peter E)</para></listitem>
@@ -2489,10 +2601,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix bug in privilege modifications on newly created tables (Tom)</para></listitem>
<listitem><para>Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Client Authentication</title>
+ <sect3>
+ <title>Client Authentication</title>
<itemizedlist>
<listitem><para>Fork postmaster before doing authentication to prevent hangs (Peter E)</para></listitem>
<listitem><para>Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)</para></listitem>
@@ -2501,10 +2613,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>PAM authentication (Dominic J. Eidson)</para></listitem>
<listitem><para>Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Server Configuration</title>
+ <sect3>
+ <title>Server Configuration</title>
<itemizedlist>
<listitem><para>Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)</para></listitem>
<listitem><para>New parameter to set default transaction isolation level (Peter E)</para></listitem>
@@ -2513,10 +2625,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>New parameter to set client authentication timeout (Tom)</para></listitem>
<listitem><para>New parameter to set maximum number of open files (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Queries</title>
+ <sect3>
+ <title>Queries</title>
<itemizedlist>
<listitem><para>Statements added by INSERT rules now execute after the INSERT (Jan)</para></listitem>
<listitem><para>Prevent unadorned relation names in target list (Bruce)</para></listitem>
@@ -2528,10 +2640,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)</para></listitem>
<listitem><para>Fix nested EXCEPT/INTERSECT (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Schema Manipulation</title>
+ <sect3>
+ <title>Schema Manipulation</title>
<itemizedlist>
<listitem><para>Fix SERIAL in temporary tables (Bruce)</para></listitem>
<listitem><para>Allow temporary sequences (Bruce)</para></listitem>
@@ -2551,10 +2663,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)</para></listitem>
<listitem><para>Enable partial indexes (Martijn van Oosterhout)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Utility Commands</title>
+ <sect3>
+ <title>Utility Commands</title>
<itemizedlist>
<listitem><para>Add RESET ALL, SHOW ALL (Marko Kreen)</para></listitem>
<listitem><para>CREATE/ALTER USER/GROUP now allow options in any order (Vince)</para></listitem>
@@ -2567,10 +2679,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Fix privilege checks for CREATE INDEX (Tom)</para></listitem>
<listitem><para>Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Data Types and Functions</title>
+ <sect3>
+ <title>Data Types and Functions</title>
<itemizedlist>
<listitem><para>SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)</para></listitem>
<listitem><para>Add convert(), convert2() (Tatsuo)</para></listitem>
@@ -2610,10 +2722,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Some datatype() function calls now evaluated differently</para></listitem>
<listitem><para>Add support for Julian and ISO time specifications (Thomas)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Internationalization</title>
+ <sect3>
+ <title>Internationalization</title>
<itemizedlist>
<listitem><para>National language support in psql, <application>pg_dump</>, libpq, and server (Peter E)</para></listitem>
<listitem><para>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)</para></listitem>
@@ -2624,10 +2736,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Make mic2ascii() non-ASCII aware (Tatsuo)</para></listitem>
<listitem><para>Reject invalid multibyte character sequences (Tatsuo)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title><application>PL/pgSQL</></title>
+ <sect3>
+ <title><application>PL/pgSQL</></title>
<itemizedlist>
<listitem><para>Now uses portals for SELECT loops, allowing huge result sets (Jan)</para></listitem>
<listitem><para>CURSOR and REFCURSOR support (Jan)</para></listitem>
@@ -2641,33 +2753,33 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Memory leak fix (Jan, Tom)</para></listitem>
<listitem><para>Make trailing semicolon optional (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>PL/Perl</title>
+ <sect3>
+ <title>PL/Perl</title>
<itemizedlist>
<listitem><para>New untrusted PL/Perl (Alex Pilosov)</para></listitem>
<listitem><para>PL/Perl is now built on some platforms even if libperl is not shared (Peter E)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>PL/Tcl</title>
+ <sect3>
+ <title>PL/Tcl</title>
<itemizedlist>
<listitem><para>Now reports errorInfo (Vsevolod Lobko)</para></listitem>
<listitem><para>Add spi_lastoid function (bob@redivi.com)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>PL/Python</title>
+ <sect3>
+ <title>PL/Python</title>
<itemizedlist>
<listitem><para>...is new (Andrew Bosma)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title><application>psql</></title>
+ <sect3>
+ <title><application>psql</></title>
<itemizedlist>
<listitem><para>\d displays indexes in unique, primary groupings (Christopher Kings-Lynne)</para></listitem>
<listitem><para>Allow trailing semicolons in backslash commands (Greg Sabino Mullane)</para></listitem>
@@ -2675,18 +2787,18 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Force new password prompt when changing user and database (Tatsuo, Tom)</para></listitem>
<listitem><para>Format the correct number of columns for Unicode (Patrice)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title><application>libpq</></title>
+ <sect3>
+ <title><application>libpq</></title>
<itemizedlist>
<listitem><para>New function PQescapeString() to escape quotes in command strings (Florian Weimer)</para></listitem>
<listitem><para>New function PQescapeBytea() escapes binary strings for use as SQL string literals</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>JDBC</title>
+ <sect3>
+ <title>JDBC</title>
<itemizedlist>
<listitem><para>Return OID of INSERT (Ken K)</para></listitem>
<listitem><para>Handle more data types (Ken K)</para></listitem>
@@ -2721,10 +2833,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>MD5 password encryption support (Jeremy Wohl)</para></listitem>
<listitem><para>Fix to actually use type cache (Ned Wolpert)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>ODBC</title>
+ <sect3>
+ <title>ODBC</title>
<itemizedlist>
<listitem><para>Remove query size limit (Hiroshi)</para></listitem>
<listitem><para>Remove text field size limit (Hiroshi)</para></listitem>
@@ -2737,10 +2849,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>MD5 password encryption support (Bruce)</para></listitem>
<listitem><para>Add more compatibility functions to odbc.sql (Peter E)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title><application>ECPG</></title>
+ <sect3>
+ <title><application>ECPG</></title>
<itemizedlist>
<listitem><para>EXECUTE ... INTO implemented (Christof Petig)</para></listitem>
<listitem><para>Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)</para></listitem>
@@ -2753,10 +2865,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>All function names with external linkage are now prefixed by ECPG</para></listitem>
<listitem><para>Fixes for arrays of structures (Michael)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Misc. Interfaces</title>
+ <sect3>
+ <title>Misc. Interfaces</title>
<itemizedlist>
<listitem><para>Python fix fetchone() (Gerhard Haring)</para></listitem>
<listitem><para>Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)</para></listitem>
@@ -2764,10 +2876,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Prevent output of default index op class in <application>pg_dump</> (Tom)</para></listitem>
<listitem><para>Fix libpgeasy memory leak (Bruce)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Build and Install</title>
+ <sect3>
+ <title>Build and Install</title>
<itemizedlist>
<listitem><para>Configure, dynamic loader, and shared library fixes (Peter E)</para></listitem>
<listitem><para>Fixes in QNX 4 port (Bernd Tegge)</para></listitem>
@@ -2782,10 +2894,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Rename config.h to pg_config.h (Peter E)</para></listitem>
<listitem><para>Reorganize installation layout of header files (Peter E)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Source Code</title>
+ <sect3>
+ <title>Source Code</title>
<itemizedlist>
<listitem><para>Remove SEP_CHAR (Bruce)</para></listitem>
<listitem><para>New GUC hooks (Tom)</para></listitem>
@@ -2799,10 +2911,10 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>Add 'volatile' usage in spinlock structures</para></listitem>
<listitem><para>Improve signal handling logic (Tom)</para></listitem>
</itemizedlist>
- </sect3>
+ </sect3>
- <sect3>
- <title>Contrib</title>
+ <sect3>
+ <title>Contrib</title>
<itemizedlist>
<listitem><para>New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)</para></listitem>
<listitem><para>New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)</para></listitem>
@@ -2815,33 +2927,33 @@ since <productname>PostgreSQL</productname> 7.1.
<listitem><para>New pg_upgrade utility (Bruce)</para></listitem>
<listitem><para>Add new pg_resetxlog options (Bruce, Tom)</para></listitem>
</itemizedlist>
- </sect3>
- </sect2>
- </sect1>
+ </sect3>
+ </sect2>
+</sect1>
- <sect1 id="release-7-1-3">
- <title>Release 7.1.3</title>
+ <sect1 id="release-7-1-3">
+ <title>Release 7.1.3</title>
- <note>
- <title>Release date</title>
- <simpara>2001-08-15</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2001-08-15</simpara>
+ </note>
- <sect2>
- <title>Migration to version 7.1.3</title>
+ <sect2>
+ <title>Migration to Version 7.1.3</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.1.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.1.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-1-2">
- <title>Release 7.1.2</title>
+ <sect1 id="release-7-1-2">
+ <title>Release 7.1.2</title>
- <note>
- <title>Release date</title>
- <simpara>2001-05-11</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2001-05-11</simpara>
+ </note>
- <para>
- This has one fix from 7.1.1.
- </para>
+ <para>
+ This has one fix from 7.1.1.
+ </para>
- <sect2>
- <title>Migration to version 7.1.2</title>
+ <sect2>
+ <title>Migration to Version 7.1.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.1.X.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.1.X.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Fix PL/pgSQL SELECTs when returning no rows
Fix for psql backslash core dump
Referential integrity privilege fix
Optimizer fixes
pg_dump cleanups
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-1-1">
- <title>Release 7.1.1</title>
+ <sect1 id="release-7-1-1">
+ <title>Release 7.1.1</title>
- <note>
- <title>Release date</title>
- <simpara>2001-05-05</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2001-05-05</simpara>
+ </note>
- <para>
- This has a variety of fixes from 7.1.
- </para>
+ <para>
+ This has a variety of fixes from 7.1.
+ </para>
- <sect2>
- <title>Migration to version 7.1.1</title>
+ <sect2>
+ <title>Migration to Version 7.1.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.1.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.1.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-1">
- <title>Release 7.1</title>
+ <sect1 id="release-7-1">
+ <title>Release 7.1</title>
- <note>
- <title>Release date</title>
- <simpara>2001-04-13</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2001-04-13</simpara>
+ </note>
- <para>
- This release focuses on removing limitations that have existed in the
- <productname>PostgreSQL</productname> code for many years.
- </para>
+ <para>
+ This release focuses on removing limitations that have existed in the
+ <productname>PostgreSQL</productname> code for many years.
+ </para>
- <para>
- Major changes in this release:
- </para>
+ <para>
+ Major changes in this release:
+ </para>
- <variablelist>
- <varlistentry>
- <term>
- Write-ahead Log (WAL)
- </term>
- <listitem>
- <para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ Write-ahead Log (WAL)
+ </term>
+ <listitem>
+ <para>
To maintain database consistency in case of an operating system crash,
previous releases of <productname>PostgreSQL</productname> 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.
- </para>
- </listitem>
- </varlistentry>
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- TOAST
- </term>
- <listitem>
- <para>
- TOAST - Previous releases had a compiled-in row length limit,
+ <varlistentry>
+ <term>
+ TOAST
+ </term>
+ <listitem>
+ <para>
+ 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.
- </para>
- </listitem>
- </varlistentry>
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Outer Joins
- </term>
- <listitem>
- <para>
+ <varlistentry>
+ <term>
+ Outer Joins
+ </term>
+ <listitem>
+ <para>
We now support outer joins. The UNION/NOT IN
workaround for outer joins is no longer required. We use the SQL92
outer join syntax.
- </para>
- </listitem>
- </varlistentry>
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Function Manager
- </term>
- <listitem>
- <para>
+ <varlistentry>
+ <term>
+ Function Manager
+ </term>
+ <listitem>
+ <para>
The previous C function manager did not
handle null values properly, nor did it support 64-bit <acronym>CPU</acronym>'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.
- </para>
- </listitem>
- </varlistentry>
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Complex Queries
- </term>
- <listitem>
- <para>
+ <varlistentry>
+ <term>
+ Complex Queries
+ </term>
+ <listitem>
+ <para>
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.
- </para>
- </listitem>
- </varlistentry>
+ </para>
+ </listitem>
+ </varlistentry>
- </variablelist>
+ </variablelist>
- <sect2>
- <title>Migration to version 7.1</title>
+ <sect2>
+ <title>Migration to Version 7.1</title>
- <para>
- A dump/restore using pg_dump is required for those wishing to migrate
- data from any previous release.
- </para>
- </sect2>
+ <para>
+ A dump/restore using pg_dump is required for those wishing to migrate
+ data from any previous release.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-0-3">
- <title>Release 7.0.3</title>
+ <sect1 id="release-7-0-3">
+ <title>Release 7.0.3</title>
- <note>
- <title>Release date</title>
- <simpara>2000-11-11</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2000-11-11</simpara>
+ </note>
- <para>
- This has a variety of fixes from 7.0.2.
- </para>
+ <para>
+ This has a variety of fixes from 7.0.2.
+ </para>
- <sect2>
- <title>Migration to version 7.0.3</title>
+ <sect2>
+ <title>Migration to Version 7.0.3</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.0.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.0.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-0-2">
- <title>Release 7.0.2</title>
+ <sect1 id="release-7-0-2">
+ <title>Release 7.0.2</title>
- <note>
- <title>Release date</title>
- <simpara>2000-06-05</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2000-06-05</simpara>
+ </note>
- <para>
- This is a repackaging of 7.0.1 with added documentation.
- </para>
+ <para>
+ This is a repackaging of 7.0.1 with added documentation.
+ </para>
- <sect2>
- <title>Migration to version 7.0.2</title>
+ <sect2>
+ <title>Migration to Version 7.0.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Added documentation to tarball.
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-0-1">
- <title>Release 7.0.1</title>
+ <sect1 id="release-7-0-1">
+ <title>Release 7.0.1</title>
- <note>
- <title>Release date</title>
- <simpara>2000-06-01</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2000-06-01</simpara>
+ </note>
- <para>
- This is a cleanup release for 7.0.
- </para>
+ <para>
+ This is a cleanup release for 7.0.
+ </para>
- <sect2>
- <title>Migration to version 7.0.1</title>
+ <sect2>
+ <title>Migration to Version 7.0.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 7.0.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 7.0.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Fix many CLUSTER failures (Tom)
Allow ALTER TABLE RENAME works on indexes (Tom)
Fix plpgsql to handle datetime-&gt;timestamp and timespan-&gt;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 &amp; Floyd Marinescu)
ecpg changes (Michael)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-7-0">
- <title>Release 7.0</title>
+ <sect1 id="release-7-0">
+ <title>Release 7.0</title>
- <note>
- <title>Release date</title>
- <simpara>2000-05-08</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>2000-05-08</simpara>
+ </note>
- <para>
- This release contains improvements in many areas, demonstrating
- the continued growth of <productname>PostgreSQL</productname>.
- 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.
- </para>
+ <para>
+ This release contains improvements in many areas, demonstrating
+ the continued growth of <productname>PostgreSQL</productname>.
+ 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.
+ </para>
- <para>
- Major changes in this release:
- </para>
+ <para>
+ Major changes in this release:
+ </para>
- <variablelist>
- <varlistentry>
- <term>
- Foreign Keys
- </term>
- <listitem>
- <para>
- 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.
- </para>
- </listitem>
- </varlistentry>
+ <variablelist>
+ <varlistentry>
+ <term>
+ Foreign Keys
+ </term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Optimizer Overhaul
- </term>
- <listitem>
- <para>
- Continuing on work started a year ago, the optimizer has been
- improved, allowing better query plan selection and faster performance
- with less memory usage.
- </para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>
+ Optimizer Overhaul
+ </term>
+ <listitem>
+ <para>
+ Continuing on work started a year ago, the optimizer has been
+ improved, allowing better query plan selection and faster performance
+ with less memory usage.
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Updated <application>psql</application>
- </term>
- <listitem>
- <para>
- <application>psql</application>, our interactive terminal monitor, has been
- updated with a variety of new features. See the <application>psql</application> manual page for details.
- </para>
- </listitem>
- </varlistentry>
+ <varlistentry>
+ <term>
+ Updated <application>psql</application>
+ </term>
+ <listitem>
+ <para>
+ <application>psql</application>, our interactive terminal monitor, has been
+ updated with a variety of new features. See the <application>psql</application> manual page for details.
+ </para>
+ </listitem>
+ </varlistentry>
- <varlistentry>
- <term>
- Join Syntax
- </term>
- <listitem>
- <para>
- SQL92 join syntax is now supported, though only as
- <literal>INNER JOIN</> for this release. <literal>JOIN</>,
- <literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>,
- and <literal>JOIN</>/<literal>ON</> are available, as are
- column correlation names.
- </para>
- </listitem>
+ <varlistentry>
+ <term>
+ Join Syntax
+ </term>
+ <listitem>
+ <para>
+ SQL92 join syntax is now supported, though only as
+ <literal>INNER JOIN</> for this release. <literal>JOIN</>,
+ <literal>NATURAL JOIN</>, <literal>JOIN</>/<literal>USING</>,
+ and <literal>JOIN</>/<literal>ON</> are available, as are
+ column correlation names.
+ </para>
+ </listitem>
- </varlistentry>
- </variablelist>
+ </varlistentry>
+ </variablelist>
- <sect2>
- <title>Migration to version 7.0</title>
+ <sect2>
+ <title>Migration to Version 7.0</title>
- <para>
- A dump/restore using <application>pg_dump</application>
- is required for those wishing to migrate data from any
- previous release of <productname>PostgreSQL</productname>.
- For those upgrading from 6.5.*, you can instead use
- <application>pg_upgrade</application> to upgrade to this
- release; however, a full dump/reload installation is always the
- most robust method for upgrades.
- </para>
+ <para>
+ A dump/restore using <application>pg_dump</application>
+ is required for those wishing to migrate data from any
+ previous release of <productname>PostgreSQL</productname>.
+ For those upgrading from 6.5.*, you can instead use
+ <application>pg_upgrade</application> to upgrade to this
+ release; however, a full dump/reload installation is always the
+ most robust method for upgrades.
+ </para>
- <para>
- Interface and compatibility issues to consider for the new
- release include:
- </para>
+ <para>
+ Interface and compatibility issues to consider for the new
+ release include:
+ </para>
- <itemizedlist>
- <listitem>
- <para>
- The date/time types <type>datetime</type> and
- <type>timespan</type> have been superseded by the
- SQL92-defined types <type>timestamp</type> and
- <type>interval</type>. Although there has been some effort to
- ease the transition by allowing
- <productname>PostgreSQL</productname> to recognize
- the deprecated type names and translate them to the new type
- names, this mechanism cannot be completely transparent to
- your existing application.
- </para>
- </listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The date/time types <type>datetime</type> and
+ <type>timespan</type> have been superseded by the
+ SQL92-defined types <type>timestamp</type> and
+ <type>interval</type>. Although there has been some effort to
+ ease the transition by allowing
+ <productname>PostgreSQL</productname> to recognize
+ the deprecated type names and translate them to the new type
+ names, this mechanism cannot be completely transparent to
+ your existing application.
+ </para>
+ </listitem>
- <listitem>
- <para>
- 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.
- </para>
- </listitem>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
- <listitem>
- <para>
- The <acronym>JDBC</acronym> and <acronym>ODBC</acronym>
- interfaces have been upgraded and extended.
- </para>
- </listitem>
+ <listitem>
+ <para>
+ The <acronym>JDBC</acronym> and <acronym>ODBC</acronym>
+ interfaces have been upgraded and extended.
+ </para>
+ </listitem>
- <listitem>
- <para>
- The string function <function>CHAR_LENGTH</function> is now a
- native function. Previous versions translated this into a call
- to <function>LENGTH</function>, which could result in
- ambiguity with other types implementing
- <function>LENGTH</function> such as the geometric types.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
+ <listitem>
+ <para>
+ The string function <function>CHAR_LENGTH</function> is now a
+ native function. Previous versions translated this into a call
+ to <function>LENGTH</function>, which could result in
+ ambiguity with other types implementing
+ <function>LENGTH</function> such as the geometric types.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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 &lt;zakkr@zf.jcu.cz&gt;)
+ conversion functions (Karel Zak &lt;zakkr@zf.jcu.cz&gt;)
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 <email>lamj@stat.cmu.edu</email>)
Fixes for Alpha compiles
New multibyte encodings
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-6-5-3">
- <title>Release 6.5.3</title>
+ <sect1 id="release-6-5-3">
+ <title>Release 6.5.3</title>
- <note>
- <title>Release date</title>
- <simpara>1999-10-13</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1999-10-13</simpara>
+ </note>
- <para>
- This is basically a cleanup release for 6.5.2. We have added a new
- <application>PgAccess</> that was missing in 6.5.2, and installed an NT-specific fix.
- </para>
+ <para>
+ This is basically a cleanup release for 6.5.2. We have added a new
+ <application>PgAccess</> that was missing in 6.5.2, and installed an NT-specific fix.
+ </para>
- <sect2>
- <title>Migration to version 6.5.3</title>
+ <sect2>
+ <title>Migration to Version 6.5.3</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.5.*.
- </para>
- </sect2>
- <sect2>
- <title>Changes</title>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 6.5.*.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Updated version of pgaccess 0.98
NT-specific patch
Fix dumping rules on inherited tables
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-6-5-2">
- <title>Release 6.5.2</title>
+ <sect1 id="release-6-5-2">
+ <title>Release 6.5.2</title>
- <note>
- <title>Release date</title>
- <simpara>1999-09-15</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1999-09-15</simpara>
+ </note>
- <para>
- This is basically a cleanup release for 6.5.1. We have fixed a variety of
- problems reported by 6.5.1 users.
- </para>
+ <para>
+ This is basically a cleanup release for 6.5.1. We have fixed a variety of
+ problems reported by 6.5.1 users.
+ </para>
- <sect2>
- <title>Migration to version 6.5.2</title>
+ <sect2>
+ <title>Migration to Version 6.5.2</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.5.*.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 6.5.*.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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 &gt;yucao@falcon.kla-tencor.com&lt;
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
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-6-5-1">
- <title>Release 6.5.1</title>
+ <sect1 id="release-6-5-1">
+ <title>Release 6.5.1</title>
- <note>
- <title>Release date</title>
- <simpara>1999-07-15</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1999-07-15</simpara>
+ </note>
- <para>
- This is basically a cleanup release for 6.5. We have fixed a variety of
- problems reported by 6.5 users.
- </para>
+ <para>
+ This is basically a cleanup release for 6.5. We have fixed a variety of
+ problems reported by 6.5 users.
+ </para>
- <sect2>
- <title>Migration to version 6.5.1</title>
+ <sect2>
+ <title>Migration to Version 6.5.1</title>
- <para>
- A dump/restore is <emphasis>not</emphasis> required for those running
- 6.5.
- </para>
- </sect2>
+ <para>
+ A dump/restore is <emphasis>not</emphasis> required for those running
+ 6.5.
+ </para>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-6-5">
- <title>Release 6.5</title>
+ <sect1 id="release-6-5">
+ <title>Release 6.5</title>
- <note>
- <title>Release date</title>
- <simpara>1999-06-09</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1999-06-09</simpara>
+ </note>
+
+ <para>
+ 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.
+ </para>
+
+ <para>
+ Here is a brief summary of the more notable changes:
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ Multiversion concurrency control(MVCC)
+ </term>
+ <listitem>
+ <para>
+ 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
+ <productname>PostgreSQL</productname> 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Hot backups from <application>pg_dump</application>
+ </term>
+ <listitem>
+ <para>
+ <application>pg_dump</application> takes advantage of the new
+ MVCC features to give a consistent database dump/backup while
+ the database stays online and available for queries.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Numeric data type
+ </term>
+ <listitem>
+ <para>
+ We now have a true numeric data type, with
+ user-specified precision.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Temporary tables
+ </term>
+ <listitem>
+ <para>
+ Temporary tables are guaranteed to have unique names
+ within a database session, and are destroyed on session exit.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ New SQL features
+ </term>
+ <listitem>
+ <para>
+ 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.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Speedups
+ </term>
+ <listitem>
+ <para>
+ We continue to speed up <productname>PostgreSQL</productname>,
+ thanks to the variety of talents within our team. We have
+ sped up memory allocation, optimization, table joins, and row
+ transfer routines.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Ports
+ </term>
+ <listitem>
+ <para>
+ We continue to expand our port list, this time including
+ <systemitem class="osname">Windows NT</>/<systemitem>ix86</> and <systemitem class="osname">NetBSD</>/<systemitem>arm32</>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Interfaces
+ </term>
+ <listitem>
+ <para>
+ Most interfaces have new versions, and existing functionality
+ has been improved.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Documentation
+ </term>
+ <listitem>
+ <para>
+ New and updated material is present throughout the
+ documentation. New <acronym>FAQ</acronym>s have been
+ contributed for <systemitem class="osname">SGI</> and <systemitem class="osname">AIX</> platforms.
+ The <citetitle>Tutorial</citetitle> has introductory information
+ on <acronym>SQL</acronym> from Stefan Simkovics.
+ For the <citetitle>User's Guide</citetitle>, there are
+ reference pages covering the postmaster and more utility
+ programs, and a new appendix
+ contains details on date/time behavior.
+ The <citetitle>Administrator's Guide</citetitle> has a new
+ chapter on troubleshooting from Tom Lane.
+ And the <citetitle>Programmer's Guide</citetitle> has a
+ description of query processing, also from Stefan, and details
+ on obtaining the <productname>PostgreSQL</productname> source
+ tree via anonymous <productname>CVS</productname> and
+ <productname>CVSup</productname>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+
+ <sect2>
+ <title>Migration to Version 6.5</title>
<para>
- 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 <application>pg_dump</application>
+ is required for those wishing to migrate data from any
+ previous release of <productname>PostgreSQL</productname>.
+ <application>pg_upgrade</application> can <emphasis>not</emphasis>
+ be used to upgrade to this release because the on-disk structure
+ of the tables has changed compared to previous releases.
</para>
<para>
- Here is a brief summary of the more notable changes:
-
- <variablelist>
- <varlistentry>
- <term>
- Multiversion concurrency control(MVCC)
- </term>
- <listitem>
- <para>
- 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
- <productname>PostgreSQL</productname> 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.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Hot backups from <application>pg_dump</application>
- </term>
- <listitem>
- <para>
- <application>pg_dump</application> takes advantage of the new
- MVCC features to give a consistent database dump/backup while
- the database stays online and available for queries.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Numeric data type
- </term>
- <listitem>
- <para>
- We now have a true numeric data type, with
- user-specified precision.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Temporary tables
- </term>
- <listitem>
- <para>
- Temporary tables are guaranteed to have unique names
- within a database session, and are destroyed on session exit.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- New SQL features
- </term>
- <listitem>
- <para>
- 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.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Speedups
- </term>
- <listitem>
- <para>
- We continue to speed up <productname>PostgreSQL</productname>,
- thanks to the variety of talents within our team. We have
- sped up memory allocation, optimization, table joins, and row
- transfer routines.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Ports
- </term>
- <listitem>
- <para>
- We continue to expand our port list, this time including
- <systemitem class="osname">Windows NT</>/<systemitem>ix86</> and <systemitem class="osname">NetBSD</>/<systemitem>arm32</>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Interfaces
- </term>
- <listitem>
- <para>
- Most interfaces have new versions, and existing functionality
- has been improved.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Documentation
- </term>
- <listitem>
- <para>
- New and updated material is present throughout the
- documentation. New <acronym>FAQ</acronym>s have been
- contributed for <systemitem class="osname">SGI</> and <systemitem class="osname">AIX</> platforms.
- The <citetitle>Tutorial</citetitle> has introductory information
- on <acronym>SQL</acronym> from Stefan Simkovics.
- For the <citetitle>User's Guide</citetitle>, there are
- reference pages covering the postmaster and more utility
- programs, and a new appendix
- contains details on date/time behavior.
- The <citetitle>Administrator's Guide</citetitle> has a new
- chapter on troubleshooting from Tom Lane.
- And the <citetitle>Programmer's Guide</citetitle> has a
- description of query processing, also from Stefan, and details
- on obtaining the <productname>PostgreSQL</productname> source
- tree via anonymous <productname>CVS</productname> and
- <productname>CVSup</productname>.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
+ The new Multiversion Concurrency Control (MVCC) features can
+ give somewhat different behaviors in multiuser
+ environments. <emphasis>Read and understand the following section
+ to ensure that your existing applications will give you the
+ behavior you need.</emphasis>
</para>
- <sect2>
- <title>Migration to version 6.5</title>
+ <sect3>
+ <title>Multiversion Concurrency Control</title>
<para>
- A dump/restore using <application>pg_dump</application>
- is required for those wishing to migrate data from any
- previous release of <productname>PostgreSQL</productname>.
- <application>pg_upgrade</application> can <emphasis>not</emphasis>
- 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
+ <command>SELECT</command> 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.
</para>
<para>
- The new Multiversion Concurrency Control (MVCC) features can
- give somewhat different behaviors in multiuser
- environments. <emphasis>Read and understand the following section
- to ensure that your existing applications will give you the
- behavior you need.</emphasis>
+ To ensure the actual existence of a row and protect it against
+ concurrent updates one must use <command>SELECT FOR UPDATE</command> or
+ an appropriate <command>LOCK TABLE</command> statement. This should be
+ taken into account when porting applications from previous releases of
+ <productname>PostgreSQL</productname> and other environments.
</para>
- <sect3>
- <title>Multiversion Concurrency Control</title>
-
- <para>
- 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
- <command>SELECT</command> 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.
- </para>
-
- <para>
- To ensure the actual existence of a row and protect it against
- concurrent updates one must use <command>SELECT FOR UPDATE</command> or
- an appropriate <command>LOCK TABLE</command> statement. This should be
- taken into account when porting applications from previous releases of
- <productname>PostgreSQL</productname> and other environments.
- </para>
-
- <para>
- Keep the above in mind if you are using
- <filename>contrib/refint.*</filename> triggers for
- referential integrity. Additional techniques are required now. One way is
- to use <command>LOCK parent_table IN SHARE ROW EXCLUSIVE MODE</command>
- command if a transaction is going to update/delete a primary key and
- use <command>LOCK parent_table IN SHARE MODE</command> command if a
- transaction is going to update/insert a foreign key.
-
- <note>
- <para>
- Note that if you run a transaction in SERIALIZABLE mode then you must
- execute the <command>LOCK</command> commands above before execution of any
- <acronym>DML</acronym> statement
- (<command>SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO</command>) in the
- transaction.
- </para>
- </note>
- </para>
+ <para>
+ Keep the above in mind if you are using
+ <filename>contrib/refint.*</filename> triggers for
+ referential integrity. Additional techniques are required now. One way is
+ to use <command>LOCK parent_table IN SHARE ROW EXCLUSIVE MODE</command>
+ command if a transaction is going to update/delete a primary key and
+ use <command>LOCK parent_table IN SHARE MODE</command> command if a
+ transaction is going to update/insert a foreign key.
+
+ <note>
+ <para>
+ Note that if you run a transaction in SERIALIZABLE mode then you must
+ execute the <command>LOCK</command> commands above before execution of any
+ <acronym>DML</acronym> statement
+ (<command>SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO</command>) in the
+ transaction.
+ </para>
+ </note>
+ </para>
- <para>
- 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.
- </para>
- </sect3>
- </sect2>
+ <para>
+ 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.
+ </para>
+ </sect3>
+ </sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Bug Fixes
---------
Fix text&lt;-&gt;float8 and text&lt;-&gt;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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
<sect1 id="release-6-4-2">
<title>Release 6.4.2</title>
- <note>
- <title>Release date</title>
- <simpara>1998-12-20</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1998-12-20</simpara>
+ </note>
<para>
The 6.4.1 release was improperly packaged. This also has one additional
@@ -4434,7 +4546,7 @@ bug fix.
<sect2>
-<title>Migration to version 6.4.2</title>
+<title>Migration to Version 6.4.2</title>
<para>
A dump/restore is <emphasis>not</emphasis> required for those running
@@ -4457,10 +4569,10 @@ Fix for datetime constant problem on some platforms(Thomas)
<sect1 id="release-6-4-1">
<title>Release 6.4.1</title>
- <note>
- <title>Release date</title>
- <simpara>1998-12-18</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1998-12-18</simpara>
+ </note>
<para>
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.
<sect2>
-<title>Migration to version 6.4.1</title>
+<title>Migration to Version 6.4.1</title>
<para>
A dump/restore is <emphasis>not</emphasis> required for those running
@@ -4482,12 +4594,12 @@ A dump/restore is <emphasis>not</emphasis> required for those running
<para>
<programlisting>
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)
<sect1 id="release-6-4">
<title>Release 6.4</title>
- <note>
- <title>Release date</title>
- <simpara>1998-10-30</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1998-10-30</simpara>
+ </note>
<para>
There are <emphasis>many</emphasis> new features and improvements in this release.
@@ -4603,7 +4715,7 @@ been.
</para>
<sect2>
-<title>Migration to version 6.4</title>
+<title>Migration to Version 6.4</title>
<para>
A dump/restore using <application>pg_dump</application>
@@ -4613,11 +4725,11 @@ previous release of <productname>PostgreSQL</productname>.
</para>
</sect2>
- <sect2>
+ <sect2>
<title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
<sect1 id="release-6-3-2">
<title>Release 6.3.2</title>
- <note>
- <title>Release date</title>
- <simpara>1998-04-07</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1998-04-07</simpara>
+ </note>
<para>
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.
</para>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <sect1 id="release-6-3-1">
- <title>Release 6.3.1</title>
+ <sect1 id="release-6-3-1">
+ <title>Release 6.3.1</title>
- <note>
- <title>Release date</title>
- <simpara>1998-03-23</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1998-03-23</simpara>
+ </note>
- <para>
- Summary:
+ <para>
+ Summary:
<itemizedlist>
<listitem>
@@ -4934,11 +5046,11 @@ For upgrades from pre-6.3 installations,
refer to the installation and migration instructions for version 6.3.
</para>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
-
- <sect1 id="release-6-3">
- <title>Release 6.3</title>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
- <note>
- <title>Release date</title>
- <simpara>1998-03-01</simpara>
- </note>
+ <sect1 id="release-6-3">
+ <title>Release 6.3</title>
- <para>
- There are <emphasis>many</emphasis> new features and improvements in this release.
- Here is a brief, incomplete summary:
+ <note>
+ <title>Release date</title>
+ <simpara>1998-03-01</simpara>
+ </note>
- <itemizedlist>
- <listitem>
- <para>
- Many new SQL features, including
- full <acronym>SQL92</acronym> subselect capability
- (everything is here but target-list subselects).
- </para>
- </listitem>
+ <para>
+ There are <emphasis>many</emphasis> new features and improvements in this release.
+ Here is a brief, incomplete summary:
- <listitem>
- <para>
- Support for client-side environment variables to specify time zone and date style.
- </para>
- </listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Many new SQL features, including
+ full <acronym>SQL92</acronym> subselect capability
+ (everything is here but target-list subselects).
+ </para>
+ </listitem>
- <listitem>
- <para>
- Socket interface for client/server connection. This is the default now
- so you might need to start <application>postmaster</application> with the
- <option>-i</option> flag.
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Support for client-side environment variables to specify time zone and date style.
+ </para>
+ </listitem>
- <listitem>
- <para>
- Better password authorization mechanisms. Default table privileges have changed.
- </para>
- </listitem>
+ <listitem>
+ <para>
+ Socket interface for client/server connection. This is the default now
+ so you might need to start <application>postmaster</application> with the
+ <option>-i</option> flag.
+ </para>
+ </listitem>
- <listitem>
- <para>
- Old-style <firstterm>time travel</firstterm>
- has been removed. Performance has been improved.
- </para>
- </listitem>
- </itemizedlist>
- </para>
+ <listitem>
+ <para>
+ Better password authorization mechanisms. Default table privileges have changed.
+ </para>
+ </listitem>
- <note>
- <para>
- Bruce Momjian wrote the following notes to introduce the new release.
- </para>
- </note>
+ <listitem>
+ <para>
+ Old-style <firstterm>time travel</firstterm>
+ has been removed. Performance has been improved.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <note>
<para>
- 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.
- </para>
- <para>
- 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.
- </para>
- <para>
- 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 <filename>pg_hba.conf</filename>. Also, for this
- reason, the format of <filename>pg_hba.conf</filename> has changed.
- </para>
- <para>
- Third, <type>char()</type> fields will now allow faster access than <type>varchar()</type> or
- <type>text</type>. Specifically, the <type>text</> and <type>varchar()</type> have a penalty for access to
- any columns after the first column of this type. <type>char()</type> 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 <type>varchar()</type> or <type>text</type>. This and other
- changes make 6.3 even faster than earlier releases.
- </para>
- <para>
- We now have passwords definable independent of any Unix file. There are
- new SQL USER commands.
- See the <citetitle>Administrator's Guide</citetitle> 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 <systemitem>postgres</systemitem> 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.
- </para>
- <para>
- 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.
- </para>
- <para>
- We also have real deadlock detection code. No more sixty-second
- timeouts. And the new locking code implements a <acronym>FIFO</acronym> better, so there
- should be less resource starvation during heavy use.
- </para>
- <para>
- 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.
- </para>
- <para>
- For performance reasons, time travel is gone, but can be implemented
- using triggers (see <filename>pgsql/contrib/spi/README</filename>). 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 <filename>/pgsql/interfaces</filename> for some new
- ways to talk to <productname>PostgreSQL</productname>.
- </para>
- <para>
- 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.
</para>
+ </note>
- <sect2>
- <title>Migration to version 6.3</title>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ 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 <filename>pg_hba.conf</filename>. Also, for this
+ reason, the format of <filename>pg_hba.conf</filename> has changed.
+ </para>
+ <para>
+ Third, <type>char()</type> fields will now allow faster access than <type>varchar()</type> or
+ <type>text</type>. Specifically, the <type>text</> and <type>varchar()</type> have a penalty for access to
+ any columns after the first column of this type. <type>char()</type> 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 <type>varchar()</type> or <type>text</type>. This and other
+ changes make 6.3 even faster than earlier releases.
+ </para>
+ <para>
+ We now have passwords definable independent of any Unix file. There are
+ new SQL USER commands.
+ See the <citetitle>Administrator's Guide</citetitle> 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 <systemitem>postgres</systemitem> 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.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ We also have real deadlock detection code. No more sixty-second
+ timeouts. And the new locking code implements a <acronym>FIFO</acronym> better, so there
+ should be less resource starvation during heavy use.
+ </para>
+ <para>
+ 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.
+ </para>
+ <para>
+ For performance reasons, time travel is gone, but can be implemented
+ using triggers (see <filename>pgsql/contrib/spi/README</filename>). 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 <filename>/pgsql/interfaces</filename> for some new
+ ways to talk to <productname>PostgreSQL</productname>.
+ </para>
+ <para>
+ 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.
+ </para>
- <para>
- A dump/restore using <application>pg_dump</application>
- or <application>pg_dumpall</application>
- is required for those wishing to migrate data from any
- previous release of <productname>PostgreSQL</productname>.
- </para>
- </sect2>
+ <sect2>
+ <title>Migration to Version 6.3</title>
- <sect2>
- <title>Changes</title>
+ <para>
+ A dump/restore using <application>pg_dump</application>
+ or <application>pg_dumpall</application>
+ is required for those wishing to migrate data from any
+ previous release of <productname>PostgreSQL</productname>.
+ </para>
+ </sect2>
- <para>
- <programlisting>
+ <sect2>
+ <title>Changes</title>
+
+ <para>
+ <programlisting>
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 &lt;= 6.2.1(Vadim)
+ this query is done, was turned off in &lt;= 6.2.1(Vadim)
New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
New <productname>PostgreSQL</productname> 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 &amp; 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)
<sect1 id="release-6-2-1">
<title>Release 6.2.1</title>
- <note>
- <title>Release date</title>
- <simpara>1997-10-17</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1997-10-17</simpara>
+ </note>
<para>
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 <command>psql</command> to update the existing system table:
<programlisting>
- 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;
</programlisting>
</para>
<para>
@@ -5344,11 +5456,11 @@ This will need to be done to every existing database, including template1.
</para>
</sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
<sect1 id="release-6-2">
<title>Release 6.2</title>
- <note>
- <title>Release date</title>
- <simpara>1997-10-02</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1997-10-02</simpara>
+ </note>
<para>
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.
</para>
</sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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 &amp; 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 &amp; 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 "&lt;===&gt;" with "&lt;-&gt;"(Thomas)
Replace "above" operator "!^" with "&gt;^" and "below" operator "!|" with "&lt;^"(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 &amp; 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 &amp; 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 &amp; 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 &amp; D'Arcy)
</programlisting>
</para>
</sect2>
@@ -5521,10 +5633,10 @@ SPI and Trigger programming guides (Vadim & D'Arcy)
<sect1 id="release-6-1-1">
<title>Release 6.1.1</title>
- <note>
- <title>Release date</title>
- <simpara>1997-07-22</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1997-07-22</simpara>
+ </note>
<sect2>
<title>Migration from version 6.1 to version 6.1.1</title>
@@ -5536,11 +5648,11 @@ Refer to the release notes for 6.1 for more details.
</para>
</sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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)
- </programlisting>
- </para>
- </sect2>
- </sect1>
+ </programlisting>
+ </para>
+ </sect2>
+ </sect1>
<sect1 id="release-6-1">
<title>Release 6.1</title>
- <note>
- <title>Release date</title>
- <simpara>1997-06-08</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1997-06-08</simpara>
+ </note>
<para>
- The regression tests have been adapted and extensively modified for the
- 6.1 release of <productname>PostgreSQL</productname>.
+ The regression tests have been adapted and extensively modified for the
+ 6.1 release of <productname>PostgreSQL</productname>.
</para>
<para>
- Three new data types (<type>datetime</type>, <type>timespan</type>, and <type>circle</type>) have been added to
- the native set of <productname>PostgreSQL</productname> 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 (<type>datetime</type>, <type>timespan</type>, and <type>circle</type>) have been added to
+ the native set of <productname>PostgreSQL</productname> 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.
</para>
<para>
- <productname>PostgreSQL</productname> 6.1 introduces a new, alternate
+ <productname>PostgreSQL</productname> 6.1 introduces a new, alternate
optimizer which uses <firstterm>genetic</firstterm>
- 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
- <command>set geqo to 'off'</command> and <command>reset geqo</command>.
+ 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
+ <command>set geqo to 'off'</command> and <command>reset geqo</command>.
</para>
<para>
- 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 <filename>./expected/*.out</filename> 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 <filename>./expected/*.out</filename> files reflect this
+ new interpretation, which might not be correct!
</para>
<para>
- The float8 regression test fails on at least some platforms. This is due
- to differences in implementations of <function>pow()</function> and <function>exp()</function> 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 <function>pow()</function> and <function>exp()</function> and the signaling
+ mechanisms used for overflow and underflow conditions.
</para>
<para>
- The <quote>random</> results in the random test should cause the
- <quote>random</quote> test to be <quote>failed</quote>, since the
- regression tests are evaluated using a simple diff. However,
- <quote>random</> does not seem to produce random results on my test
- machine (Linux/<application>gcc</>/i686).
+ The <quote>random</> results in the random test should cause the
+ <quote>random</quote> test to be <quote>failed</quote>, since the
+ regression tests are evaluated using a simple diff. However,
+ <quote>random</> does not seem to produce random results on my test
+ machine (Linux/<application>gcc</>/i686).
</para>
<sect2>
-<title>Migration to version 6.1</title>
+<title>Migration to Version 6.1</title>
<para>
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.
</para>
</sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
Bug Fixes
---------
packet length checking in library routines
@@ -5738,10 +5850,10 @@ DG/UX, Ultrix, IRIX, AIX portability fixes
<sect1 id="release-6-0">
<title>Release 6.0</title>
- <note>
- <title>Release date</title>
- <simpara>1997-01-29</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1997-01-29</simpara>
+ </note>
<para>
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.
</para>
</sect2>
- <sect2>
- <title>Changes</title>
+ <sect2>
+ <title>Changes</title>
- <para>
- <programlisting>
+ <para>
+ <programlisting>
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 &amp; 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
<sect1 id="release-1-09">
<title>Release 1.09</title>
- <note>
- <title>Release date</title>
- <simpara>1996-11-04</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1996-11-04</simpara>
+ </note>
<para>
Sorry, we didn't keep track of changes from 1.02 to 1.09. Some of
@@ -5897,10 +6009,10 @@ releases.
<sect1 id="release-1-02">
<title>Release 1.02</title>
- <note>
- <title>Release date</title>
- <simpara>1996-08-01</simpara>
- </note>
+ <note>
+ <title>Release date</title>
+ <simpara>1996-08-01</simpara>
+ </note>
<sect2>
<title>Migration from version 1.02 to version 1.02.1</title>
@@ -5933,13 +6045,13 @@ Start up a new 1.02.1 postmaster
<step>
<para>
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 <command>psql</>. If your
- 1.01 or 1.02 database is named <literal>testdb</literal> and you have cut the commands
- from the end of this file and saved them in <filename>addfunc.sql</filename>:
+ 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 <command>psql</>. If your
+ 1.01 or 1.02 database is named <literal>testdb</literal> and you have cut the commands
+ from the end of this file and saved them in <filename>addfunc.sql</filename>:
<programlisting>
- % psql testdb -f addfunc.sql
+ % psql testdb -f addfunc.sql
</programlisting>
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.
<programlisting>
- sed 's/^\.$/\\./g' &lt;in_file &gt;out_file
+ sed 's/^\.$/\\./g' &lt;in_file &gt;out_file
</programlisting>
</para>
<para>