diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 8f4b3163eae717ae3ff68b2405ad483cf96e9f9c..4ec368704df63ec5082da01b77f386b1facdab7e 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.581 2008/04/21 09:44:47 mha Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.582 2008/06/04 03:16:02 tgl Exp $ --> <!-- Typical markup: @@ -63,6 +63,371 @@ do it for earlier branch release files. review, so each item is truly a community effort. </para> + <sect1 id="release-8-3-2"> + <title>Release 8.3.2</title> + + <note> + <title>Release date</title> + <simpara>2008-06-09</simpara> + </note> + + <para> + This release contains a variety of fixes from 8.3.1. + For information about new features in the 8.3 major release, see + <xref linkend="release-8-3">. + </para> + + <sect2> + <title>Migration to Version 8.3.2</title> + + <para> + A dump/restore is not required for those running 8.3.X. + However, if you are upgrading from a version earlier than 8.3.1, + see the release notes for 8.3.1. + </para> + + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that + occurred on Windows when using UTF-8 database encoding and a different + client encoding (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect archive truncation point calculation for the + <literal>%r</> macro in <varname>recovery_command</> parameters + (Simon) + </para> + + <para> + This could lead to data loss if a warm-standby script relied on + <literal>%r</> to decide when to throw away WAL segment files. + </para> + </listitem> + + <listitem> + <para> + Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new + column is correctly checked to see if it's been initialized to all + non-nulls (Brendan Jurd) + </para> + + <para> + Previous versions neglected to check this requirement at all. + </para> + </listitem> + + <listitem> + <para> + Fix <command>REASSIGN OWNED</> so that it works on procedural + languages too (Alvaro) + </para> + </listitem> + + <listitem> + <para> + Fix problems with <command>SELECT FOR UPDATE/SHARE</> occurring as a + subquery in a query with a non-<command>SELECT</> top-level operation + (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix possible <command>CREATE TABLE</> failure when inheriting the + <quote>same</> constraint from multiple parent relations that + inherited that constraint from a common ancestor (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <function>pg_get_ruledef()</> to show the alias, if any, attached + to the target table of an <command>UPDATE</> or <command>DELETE</> + (Tom) + </para> + </listitem> + + <listitem> + <para> + Restore the pre-8.3 behavior that an out-of-range block number in a + TID being used in a TidScan plan results in silently not matching any + rows (Tom) + </para> + + <para> + 8.3.0 and 8.3.1 threw an error instead. + </para> + </listitem> + + <listitem> + <para> + Fix GIN bug that could result in a <literal>too many LWLocks + taken</literal> failure (Teodor) + </para> + </listitem> + + <listitem> + <para> + Fix broken GiST comparison function for <type>tsquery</> (Teodor) + </para> + </listitem> + + <listitem> + <para> + Fix <function>tsvector_update_trigger()</> and <function>ts_stat()</> + to accept domains over the types they expect to work with (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix failure to support enum data types as foreign keys (Tom) + </para> + </listitem> + + <listitem> + <para> + Avoid possible crash when decompressing corrupted data + (Zdenek Kotala) + </para> + </listitem> + + <listitem> + <para> + Fix race conditions between delayed unlinks and <command>DROP + DATABASE</> (Heikki) + </para> + + <para> + In the worst case this could result in deleting a newly created table + in a new database that happened to get the same OID as the + recently-dropped one; but of course that is an extremely + low-probability scenario. + </para> + </listitem> + + <listitem> + <para> + Repair two places where SIGTERM exit of a backend could leave corrupted + state in shared memory (Tom) + </para> + + <para> + Neither case is very important if SIGTERM is used to shut down the + whole database cluster together, but there was a problem if someone + tried to SIGTERM individual backends. + </para> + </listitem> + + <listitem> + <para> + Fix possible crash due to incorrect plan generated for an + <literal><replaceable>x</> IN (SELECT <replaceable>y</> + FROM ...)</literal> clause when <replaceable>x</> and <replaceable>y</> + have different data types; and make sure the behavior is semantically + correct when the conversion from <replaceable>y</>'s type to + <replaceable>x</>'s type is lossy (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix oversight that prevented the planner from substituting known Param + values as if they were constants (Tom) + </para> + + <para> + This mistake partially disabled optimization of unnamed + extended-Query statements in 8.3.0 and 8.3.1: in particular the + LIKE-to-indexscan optimization would never be applied if the LIKE + pattern was passed as a parameter, and constraint exclusion + depending on a parameter value didn't work either. + </para> + </listitem> + + <listitem> + <para> + Fix planner failure when an indexable <function>MIN</> or + <function>MAX</> aggregate is used with <literal>DISTINCT</> or + <literal>ORDER BY</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix planner to ensure it never uses a <quote>physical tlist</> for a + plan node that is feeding a Sort node (Tom) + </para> + + <para> + This led to the sort having to push around more data than it really + needed to, since unused column values were included in the sorted + data. + </para> + </listitem> + + <listitem> + <para> + Avoid unnecessary copying of query strings (Tom) + </para> + + <para> + This fixes a performance problem introduced in 8.3.0 when a very large + number of commands are submitted as a single query string. + </para> + </listitem> + + <listitem> + <para> + Make <function>TransactionIdIsCurrentTransactionId()</> use binary + search instead of linear search when checking child-transaction XIDs + (Heikki) + </para> + + <para> + This fixes some cases in which 8.3.0 was significantly + slower than earlier releases. + </para> + </listitem> + + <listitem> + <para> + Fix conversions between ISO-8859-5 and other encodings to handle + Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with + two dots) (Sergey Burladyan) + </para> + </listitem> + + <listitem> + <para> + Fix several datatype input functions, notably <function>array_in()</>, + that were allowing unused bytes in their results to contain + uninitialized, unpredictable values (Tom) + </para> + + <para> + This could lead to failures in which two apparently identical literal + values were not seen as equal, resulting in the parser complaining + about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> + expressions. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case in regular-expression substring matching + (<literal>substring(<replaceable>string</> from + <replaceable>pattern</>)</literal>) (Tom) + </para> + + <para> + The problem occurs when there is a match to the pattern overall but + the user has specified a parenthesized subexpression and that + subexpression hasn't got a match. An example is + <literal>substring('foo' from 'foo(bar)?')</>. + This should return NULL, since <literal>(bar)</> isn't matched, but + it was mistakenly returning the whole-pattern match instead (ie, + <literal>foo</>). + </para> + </listitem> + + <listitem> + <para> + Prevent cancellation of an auto-vacuum that was launched to prevent + XID wraparound (Alvaro) + </para> + </listitem> + + <listitem> + <para> + Improve <command>ANALYZE</>'s handling of in-doubt tuples (those + inserted or deleted by a not-yet-committed transaction) so that the + counts it reports to the stats collector are more likely to be correct + (Pavan Deolasee) + </para> + </listitem> + + <listitem> + <para> + Fix <application>initdb</> to reject a relative path for its + <literal>--xlogdir</> (<literal>-X</>) option (Tom) + </para> + </listitem> + + <listitem> + <para> + Make <application>psql</> print tab characters as an appropriate + number of spaces, rather than <literal>\x09</literal> as was done in + 8.3.0 and 8.3.1 (Bruce) + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</> release 2008c (for + DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and + Argentina/San_Luis) + </para> + </listitem> + + <listitem> + <para> + Add <function>ECPGget_PGconn()</> function to + <application>ecpglib</> (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect result from <application>ecpg</>'s + <function>PGTYPEStimestamp_sub()</> function (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix handling of continuation line markers in <application>ecpg</> + (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix possible crashes in <filename>contrib/cube</> functions (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix core dump in <filename>contrib/xml2</>'s + <function>xpath_table()</> function when the input query returns a + NULL value (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <filename>contrib/xml2</>'s makefile to not override + <literal>CFLAGS</>, and make it auto-configure properly for + <application>libxslt</> present or not (Tom) + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-8-3-1"> <title>Release 8.3.1</title> @@ -212,7 +577,7 @@ do it for earlier branch release files. </para> <para> - This was formerly allowed but trying to do it had various unpleasant + This was formerly allowed but trying to do it had various unpleasant consequences, notably that the originating backend could not exit as long as an <command>UNLISTEN</> remained uncommitted. </para> @@ -2944,43 +3309,238 @@ current_date < 2017-11-17 </para> </listitem> - <listitem> - <para> - Update OS/X startup scripts in - <filename>contrib/start-scripts</filename> (Mark Cotner, David - Fetter) - </para> - </listitem> + <listitem> + <para> + Update OS/X startup scripts in + <filename>contrib/start-scripts</filename> (Mark Cotner, David + Fetter) + </para> + </listitem> + + <listitem> + <para> + Restrict <function>pgrowlocks()</function> and + <function>dblink_get_pkey()</function> to users who have + <literal>SELECT</literal> privilege on the target table (Tom) + </para> + </listitem> + + <listitem> + <para> + Restrict <filename>contrib/pgstattuple</filename> functions to + superusers (Tom) + </para> + </listitem> + + <listitem> + <para> + <filename>contrib/xml2</filename> is deprecated and planned for + removal in 8.4 (Peter) + </para> + + <para> + The new XML support in core PostgreSQL supersedes this module. + </para> + </listitem> + + </itemizedlist> + + </sect3> + </sect2> + </sect1> + + <sect1 id="release-8-2-8"> + <title>Release 8.2.8</title> + + <note> + <title>Release date</title> + <simpara>2008-06-09</simpara> + </note> + + <para> + This release contains a variety of fixes from 8.2.7. + For information about new features in the 8.2 major release, see + <xref linkend="release-8-2">. + </para> + + <sect2> + <title>Migration to Version 8.2.8</title> + + <para> + A dump/restore is not required for those running 8.2.X. + However, if you are upgrading from a version earlier than 8.2.7, + see the release notes for 8.2.7. + </para> + + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix <literal>ERRORDATA_STACK_SIZE exceeded</literal> crash that + occurred on Windows when using UTF-8 database encoding and a different + client encoding (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new + column is correctly checked to see if it's been initialized to all + non-nulls (Brendan Jurd) + </para> + + <para> + Previous versions neglected to check this requirement at all. + </para> + </listitem> + + <listitem> + <para> + Fix possible <command>CREATE TABLE</> failure when inheriting the + <quote>same</> constraint from multiple parent relations that + inherited that constraint from a common ancestor (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <function>pg_get_ruledef()</> to show the alias, if any, attached + to the target table of an <command>UPDATE</> or <command>DELETE</> + (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix GIN bug that could result in a <literal>too many LWLocks + taken</literal> failure (Teodor) + </para> + </listitem> + + <listitem> + <para> + Avoid possible crash when decompressing corrupted data + (Zdenek Kotala) + </para> + </listitem> + + <listitem> + <para> + Repair two places where SIGTERM exit of a backend could leave corrupted + state in shared memory (Tom) + </para> + + <para> + Neither case is very important if SIGTERM is used to shut down the + whole database cluster together, but there was a problem if someone + tried to SIGTERM individual backends. + </para> + </listitem> + + <listitem> + <para> + Fix conversions between ISO-8859-5 and other encodings to handle + Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with + two dots) (Sergey Burladyan) + </para> + </listitem> + + <listitem> + <para> + Fix several datatype input functions, notably <function>array_in()</>, + that were allowing unused bytes in their results to contain + uninitialized, unpredictable values (Tom) + </para> + + <para> + This could lead to failures in which two apparently identical literal + values were not seen as equal, resulting in the parser complaining + about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> + expressions. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case in regular-expression substring matching + (<literal>substring(<replaceable>string</> from + <replaceable>pattern</>)</literal>) (Tom) + </para> + + <para> + The problem occurs when there is a match to the pattern overall but + the user has specified a parenthesized subexpression and that + subexpression hasn't got a match. An example is + <literal>substring('foo' from 'foo(bar)?')</>. + This should return NULL, since <literal>(bar)</> isn't matched, but + it was mistakenly returning the whole-pattern match instead (ie, + <literal>foo</>). + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</> release 2008c (for + DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and + Argentina/San_Luis) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect result from <application>ecpg</>'s + <function>PGTYPEStimestamp_sub()</> function (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix broken GiST comparison function for <filename>contrib/tsearch2</>'s + <type>tsquery</> type (Teodor) + </para> + </listitem> - <listitem> - <para> - Restrict <function>pgrowlocks()</function> and - <function>dblink_get_pkey()</function> to users who have - <literal>SELECT</literal> privilege on the target table (Tom) - </para> - </listitem> + <listitem> + <para> + Fix possible crashes in <filename>contrib/cube</> functions (Tom) + </para> + </listitem> - <listitem> - <para> - Restrict <filename>contrib/pgstattuple</filename> functions to - superusers (Tom) - </para> - </listitem> + <listitem> + <para> + Fix core dump in <filename>contrib/xml2</>'s + <function>xpath_table()</> function when the input query returns a + NULL value (Tom) + </para> + </listitem> - <listitem> - <para> - <filename>contrib/xml2</filename> is deprecated and planned for - removal in 8.4 (Peter) - </para> + <listitem> + <para> + Fix <filename>contrib/xml2</>'s makefile to not override + <literal>CFLAGS</> (Tom) + </para> + </listitem> - <para> - The new XML support in core PostgreSQL supersedes this module. - </para> - </listitem> + <listitem> + <para> + Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</> + 4.3 (Tom) + </para> - </itemizedlist> + <para> + This problem affects <quote>old style</> (V0) C functions that + return boolean. The fix is already in 8.3, but the need to + back-patch it was not realized at the time. + </para> + </listitem> + + </itemizedlist> - </sect3> </sect2> </sect1> @@ -3068,7 +3628,7 @@ current_date < 2017-11-17 </para> <para> - This was formerly allowed but trying to do it had various unpleasant + This was formerly allowed but trying to do it had various unpleasant consequences, notably that the originating backend could not exit as long as an <command>UNLISTEN</> remained uncommitted. </para> @@ -3244,7 +3804,7 @@ current_date < 2017-11-17 <para> This failure has only been observed to occur when a user-defined datatype's output routine issues a NOTICE, but there is no - guaranteee it couldn't happen due to other causes. + guarantee it couldn't happen due to other causes. </para> </listitem> @@ -6714,50 +7274,300 @@ current_date < 2017-11-17 </itemizedlist> </listitem> - <listitem> - <para> - Improvements to cube module (Joshua Reich) - </para> + <listitem> + <para> + Improvements to cube module (Joshua Reich) + </para> + + <para> + New functions are <function>cube(float[])</>, + <function>cube(float[], float[])</>, and + <function>cube_subset(cube, int4[])</>. + </para> + </listitem> + + <listitem> + <para> + Add async query capability to dblink (Kai Londenberg, + Joe Conway) + </para> + </listitem> + + <listitem> + <para> + New operators for array-subset comparisons (<literal>@></>, + <literal><@</>, <literal>&&</>) (Tom) + </para> + + <para> + Various contrib packages already had these operators for their + datatypes, but the naming wasn't consistent. We have now added + consistently named array-subset comparison operators to the core code + and all the contrib packages that have such functionality. + (The old names remain available, but are deprecated.) + </para> + </listitem> + + <listitem> + <para> + Add uninstall scripts for all contrib packages that have install + scripts (David, Josh Drake) + </para> + </listitem> + + </itemizedlist> + + </sect3> + + </sect2> + </sect1> + + <sect1 id="release-8-1-12"> + <title>Release 8.1.12</title> + + <note> + <title>Release date</title> + <simpara>2008-06-09</simpara> + </note> + + <para> + This release contains a variety of fixes from 8.1.11. + For information about new features in the 8.1 major release, see + <xref linkend="release-8-1">. + </para> + + <sect2> + <title>Migration to Version 8.1.12</title> + + <para> + A dump/restore is not required for those running 8.1.X. + However, if you are upgrading from a version earlier than 8.1.2, + see the release notes for 8.1.2. + </para> + + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new + column is correctly checked to see if it's been initialized to all + non-nulls (Brendan Jurd) + </para> + + <para> + Previous versions neglected to check this requirement at all. + </para> + </listitem> + + <listitem> + <para> + Fix possible <command>CREATE TABLE</> failure when inheriting the + <quote>same</> constraint from multiple parent relations that + inherited that constraint from a common ancestor (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix conversions between ISO-8859-5 and other encodings to handle + Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with + two dots) (Sergey Burladyan) + </para> + </listitem> + + <listitem> + <para> + Fix a few datatype input functions + that were allowing unused bytes in their results to contain + uninitialized, unpredictable values (Tom) + </para> + + <para> + This could lead to failures in which two apparently identical literal + values were not seen as equal, resulting in the parser complaining + about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> + expressions. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case in regular-expression substring matching + (<literal>substring(<replaceable>string</> from + <replaceable>pattern</>)</literal>) (Tom) + </para> + + <para> + The problem occurs when there is a match to the pattern overall but + the user has specified a parenthesized subexpression and that + subexpression hasn't got a match. An example is + <literal>substring('foo' from 'foo(bar)?')</>. + This should return NULL, since <literal>(bar)</> isn't matched, but + it was mistakenly returning the whole-pattern match instead (ie, + <literal>foo</>). + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</> release 2008c (for + DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, + Argentina/San_Luis, and Chile) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect result from <application>ecpg</>'s + <function>PGTYPEStimestamp_sub()</> function (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix core dump in <filename>contrib/xml2</>'s + <function>xpath_table()</> function when the input query returns a + NULL value (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <filename>contrib/xml2</>'s makefile to not override + <literal>CFLAGS</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</> + 4.3 (Tom) + </para> + + <para> + This problem affects <quote>old style</> (V0) C functions that + return boolean. The fix is already in 8.3, but the need to + back-patch it was not realized at the time. + </para> + </listitem> + + <listitem> + <para> + Fix longstanding <command>LISTEN</>/<command>NOTIFY</> + race condition (Tom) + </para> + + <para> + In rare cases a session that had just executed a + <command>LISTEN</> might not get a notification, even though + one would be expected because the concurrent transaction executing + <command>NOTIFY</> was observed to commit later. + </para> + + <para> + A side effect of the fix is that a transaction that has executed + a not-yet-committed <command>LISTEN</> command will not see any + row in <structname>pg_listener</> for the <command>LISTEN</>, + should it choose to look; formerly it would have. This behavior + was never documented one way or the other, but it is possible that + some applications depend on the old behavior. + </para> + </listitem> + + <listitem> + <para> + Disallow <command>LISTEN</> and <command>UNLISTEN</> within a + prepared transaction (Tom) + </para> + + <para> + This was formerly allowed but trying to do it had various unpleasant + consequences, notably that the originating backend could not exit + as long as an <command>UNLISTEN</> remained uncommitted. + </para> + </listitem> + + <listitem> + <para> + Fix rare crash when an error occurs during a query using a hash index + (Heikki) + </para> + </listitem> + + <listitem> + <para> + Fix input of datetime values for February 29 in years BC (Tom) + </para> + + <para> + The former coding was mistaken about which years were leap years. + </para> + </listitem> + + <listitem> + <para> + Fix <quote>unrecognized node type</> error in some variants of + <command>ALTER OWNER</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <application>pg_ctl</> to correctly extract the postmaster's port + number from command-line options (Itagaki Takahiro, Tom) + </para> + + <para> + Previously, <literal>pg_ctl start -w</> could try to contact the + postmaster on the wrong port, leading to bogus reports of startup + failure. + </para> + </listitem> - <para> - New functions are <function>cube(float[])</>, - <function>cube(float[], float[])</>, and - <function>cube_subset(cube, int4[])</>. - </para> - </listitem> + <listitem> + <para> + Use <option>-fwrapv</> to defend against possible misoptimization + in recent <application>gcc</> versions (Tom) + </para> - <listitem> - <para> - Add async query capability to dblink (Kai Londenberg, - Joe Conway) - </para> - </listitem> + <para> + This is known to be necessary when building <productname>PostgreSQL</> + with <application>gcc</> 4.3 or later. + </para> + </listitem> - <listitem> - <para> - New operators for array-subset comparisons (<literal>@></>, - <literal><@</>, <literal>&&</>) (Tom) - </para> + <listitem> + <para> + Fix display of constant expressions in <literal>ORDER BY</> + and <literal>GROUP BY</> (Tom) + </para> - <para> - Various contrib packages already had these operators for their - datatypes, but the naming wasn't consistent. We have now added - consistently named array-subset comparison operators to the core code - and all the contrib packages that have such functionality. - (The old names remain available, but are deprecated.) - </para> - </listitem> + <para> + An explictly casted constant would be shown incorrectly. This could + for example lead to corruption of a view definition during + dump and reload. + </para> + </listitem> - <listitem> - <para> - Add uninstall scripts for all contrib packages that have install - scripts (David, Josh Drake) - </para> - </listitem> + <listitem> + <para> + Fix <application>libpq</> to handle NOTICE messages correctly + during COPY OUT (Tom) + </para> - </itemizedlist> + <para> + This failure has only been observed to occur when a user-defined + datatype's output routine issues a NOTICE, but there is no + guarantee it couldn't happen due to other causes. + </para> + </listitem> - </sect3> + </itemizedlist> </sect2> </sect1> @@ -10104,88 +10914,325 @@ psql -t -f fixseq.sql db1 | psql -e db1 </para> </listitem> - <listitem> - <para> - Move <filename>/contrib/findoidjoins</> to - <filename>/src/tools</> (Tom) - </para> - </listitem> + <listitem> + <para> + Move <filename>/contrib/findoidjoins</> to + <filename>/src/tools</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Remove the <literal><<</>, <literal>>></>, + <literal>&<</>, and <literal>&></> operators from + <filename>/contrib/cube</> + </para> + <para> + These operators were not useful. + </para> + </listitem> + + <listitem> + <para> + Improve <filename>/contrib/btree_gist</> (Janko Richter) + </para> + </listitem> + + <listitem> + <para> + Improve <filename>/contrib/pgbench</> (Tomoaki Sato, Tatsuo) + </para> + <para> + There is now a facility for testing with SQL command scripts given + by the user, instead of only a hard-wired command sequence. + </para> + </listitem> + + <listitem> + <para> + Improve <filename>/contrib/pgcrypto</> (Marko Kreen) + </para> + + <itemizedlist> + + <listitem> + <para> + Implementation of OpenPGP symmetric-key and public-key encryption + </para> + <para> + Both RSA and Elgamal public-key algorithms are supported. + </para> + </listitem> + + <listitem> + <para> + Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG + </para> + </listitem> + + <listitem> + <para> + OpenSSL build: support 3DES, use internal AES with OpenSSL < 0.9.7 + </para> + </listitem> + + <listitem> + <para> + Take build parameters (OpenSSL, zlib) from <filename>configure</> result + </para> + <para> + There is no need to edit the <filename>Makefile</> anymore. + </para> + </listitem> + + <listitem> + <para> + Remove support for <filename>libmhash</> and <filename>libmcrypt</> + </para> + </listitem> + + </itemizedlist> + </listitem> + + </itemizedlist> + </sect3> + + </sect2> + </sect1> + + <sect1 id="release-8-0-16"> + <title>Release 8.0.16</title> + + <note> + <title>Release date</title> + <simpara>2008-06-09</simpara> + </note> + + <para> + This release contains a variety of fixes from 8.0.15. + For information about new features in the 8.0 major release, see + <xref linkend="release-8-0">. + </para> + + <sect2> + <title>Migration to Version 8.0.16</title> + + <para> + A dump/restore is not required for those running 8.0.X. + However, if you are upgrading from a version earlier than 8.0.6, + see the release notes for 8.0.6. + </para> + + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix <command>ALTER TABLE ADD COLUMN ... PRIMARY KEY</> so that the new + column is correctly checked to see if it's been initialized to all + non-nulls (Brendan Jurd) + </para> + + <para> + Previous versions neglected to check this requirement at all. + </para> + </listitem> + + <listitem> + <para> + Fix possible <command>CREATE TABLE</> failure when inheriting the + <quote>same</> constraint from multiple parent relations that + inherited that constraint from a common ancestor (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix conversions between ISO-8859-5 and other encodings to handle + Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with + two dots) (Sergey Burladyan) + </para> + </listitem> + + <listitem> + <para> + Fix a few datatype input functions + that were allowing unused bytes in their results to contain + uninitialized, unpredictable values (Tom) + </para> + + <para> + This could lead to failures in which two apparently identical literal + values were not seen as equal, resulting in the parser complaining + about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> + expressions. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case in regular-expression substring matching + (<literal>substring(<replaceable>string</> from + <replaceable>pattern</>)</literal>) (Tom) + </para> + + <para> + The problem occurs when there is a match to the pattern overall but + the user has specified a parenthesized subexpression and that + subexpression hasn't got a match. An example is + <literal>substring('foo' from 'foo(bar)?')</>. + This should return NULL, since <literal>(bar)</> isn't matched, but + it was mistakenly returning the whole-pattern match instead (ie, + <literal>foo</>). + </para> + </listitem> + + <listitem> + <para> + Update time zone data files to <application>tzdata</> release 2008c (for + DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, + Argentina/San_Luis, and Chile) + </para> + </listitem> + + <listitem> + <para> + Fix incorrect result from <application>ecpg</>'s + <function>PGTYPEStimestamp_sub()</> function (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix core dump in <filename>contrib/xml2</>'s + <function>xpath_table()</> function when the input query returns a + NULL value (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <filename>contrib/xml2</>'s makefile to not override + <literal>CFLAGS</> (Tom) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</> + 4.3 (Tom) + </para> + + <para> + This problem affects <quote>old style</> (V0) C functions that + return boolean. The fix is already in 8.3, but the need to + back-patch it was not realized at the time. + </para> + </listitem> + + <listitem> + <para> + Fix longstanding <command>LISTEN</>/<command>NOTIFY</> + race condition (Tom) + </para> + + <para> + In rare cases a session that had just executed a + <command>LISTEN</> might not get a notification, even though + one would be expected because the concurrent transaction executing + <command>NOTIFY</> was observed to commit later. + </para> + + <para> + A side effect of the fix is that a transaction that has executed + a not-yet-committed <command>LISTEN</> command will not see any + row in <structname>pg_listener</> for the <command>LISTEN</>, + should it choose to look; formerly it would have. This behavior + was never documented one way or the other, but it is possible that + some applications depend on the old behavior. + </para> + </listitem> - <listitem> - <para> - Remove the <literal><<</>, <literal>>></>, - <literal>&<</>, and <literal>&></> operators from - <filename>/contrib/cube</> - </para> - <para> - These operators were not useful. - </para> - </listitem> + <listitem> + <para> + Fix rare crash when an error occurs during a query using a hash index + (Heikki) + </para> + </listitem> - <listitem> - <para> - Improve <filename>/contrib/btree_gist</> (Janko Richter) - </para> - </listitem> + <listitem> + <para> + Fix input of datetime values for February 29 in years BC (Tom) + </para> - <listitem> - <para> - Improve <filename>/contrib/pgbench</> (Tomoaki Sato, Tatsuo) - </para> - <para> - There is now a facility for testing with SQL command scripts given - by the user, instead of only a hard-wired command sequence. - </para> - </listitem> + <para> + The former coding was mistaken about which years were leap years. + </para> + </listitem> - <listitem> - <para> - Improve <filename>/contrib/pgcrypto</> (Marko Kreen) - </para> + <listitem> + <para> + Fix <quote>unrecognized node type</> error in some variants of + <command>ALTER OWNER</> (Tom) + </para> + </listitem> - <itemizedlist> + <listitem> + <para> + Fix <application>pg_ctl</> to correctly extract the postmaster's port + number from command-line options (Itagaki Takahiro, Tom) + </para> - <listitem> - <para> - Implementation of OpenPGP symmetric-key and public-key encryption - </para> - <para> - Both RSA and Elgamal public-key algorithms are supported. - </para> - </listitem> + <para> + Previously, <literal>pg_ctl start -w</> could try to contact the + postmaster on the wrong port, leading to bogus reports of startup + failure. + </para> + </listitem> - <listitem> - <para> - Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG - </para> - </listitem> + <listitem> + <para> + Use <option>-fwrapv</> to defend against possible misoptimization + in recent <application>gcc</> versions (Tom) + </para> - <listitem> - <para> - OpenSSL build: support 3DES, use internal AES with OpenSSL < 0.9.7 - </para> - </listitem> + <para> + This is known to be necessary when building <productname>PostgreSQL</> + with <application>gcc</> 4.3 or later. + </para> + </listitem> - <listitem> - <para> - Take build parameters (OpenSSL, zlib) from <filename>configure</> result - </para> - <para> - There is no need to edit the <filename>Makefile</> anymore. - </para> - </listitem> + <listitem> + <para> + Fix display of constant expressions in <literal>ORDER BY</> + and <literal>GROUP BY</> (Tom) + </para> - <listitem> - <para> - Remove support for <filename>libmhash</> and <filename>libmcrypt</> - </para> - </listitem> + <para> + An explictly casted constant would be shown incorrectly. This could + for example lead to corruption of a view definition during + dump and reload. + </para> + </listitem> - </itemizedlist> - </listitem> + <listitem> + <para> + Fix <application>libpq</> to handle NOTICE messages correctly + during COPY OUT (Tom) + </para> - </itemizedlist> - </sect3> + <para> + This failure has only been observed to occur when a user-defined + datatype's output routine issues a NOTICE, but there is no + guarantee it couldn't happen due to other causes. + </para> + </listitem> + + </itemizedlist> </sect2> </sect1> @@ -14047,6 +15094,151 @@ typedefs (Michael)</para></listitem> </sect2> </sect1> + <sect1 id="release-7-4-20"> + <title>Release 7.4.20</title> + + <note> + <title>Release date</title> + <simpara>2008-06-09</simpara> + </note> + + <para> + This release contains a variety of fixes from 7.4.19. + For information about new features in the 7.4 major release, see + <xref linkend="release-7-4">. + </para> + + <sect2> + <title>Migration to Version 7.4.20</title> + + <para> + A dump/restore is not required for those running 7.4.X. + However, if you are upgrading from a version earlier than 7.4.11, + see the release notes for 7.4.11. + </para> + + </sect2> + + <sect2> + <title>Changes</title> + + <itemizedlist> + + <listitem> + <para> + Fix conversions between ISO-8859-5 and other encodings to handle + Cyrillic <quote>Yo</> characters (<literal>e</> and <literal>E</> with + two dots) (Sergey Burladyan) + </para> + </listitem> + + <listitem> + <para> + Fix a few datatype input functions + that were allowing unused bytes in their results to contain + uninitialized, unpredictable values (Tom) + </para> + + <para> + This could lead to failures in which two apparently identical literal + values were not seen as equal, resulting in the parser complaining + about unmatched <literal>ORDER BY</> and <literal>DISTINCT</> + expressions. + </para> + </listitem> + + <listitem> + <para> + Fix a corner case in regular-expression substring matching + (<literal>substring(<replaceable>string</> from + <replaceable>pattern</>)</literal>) (Tom) + </para> + + <para> + The problem occurs when there is a match to the pattern overall but + the user has specified a parenthesized subexpression and that + subexpression hasn't got a match. An example is + <literal>substring('foo' from 'foo(bar)?')</>. + This should return NULL, since <literal>(bar)</> isn't matched, but + it was mistakenly returning the whole-pattern match instead (ie, + <literal>foo</>). + </para> + </listitem> + + <listitem> + <para> + Fix incorrect result from <application>ecpg</>'s + <function>PGTYPEStimestamp_sub()</> function (Michael) + </para> + </listitem> + + <listitem> + <para> + Fix <literal>DatumGetBool</> macro to not fail with <application>gcc</> + 4.3 (Tom) + </para> + + <para> + This problem affects <quote>old style</> (V0) C functions that + return boolean. The fix is already in 8.3, but the need to + back-patch it was not realized at the time. + </para> + </listitem> + + <listitem> + <para> + Fix longstanding <command>LISTEN</>/<command>NOTIFY</> + race condition (Tom) + </para> + + <para> + In rare cases a session that had just executed a + <command>LISTEN</> might not get a notification, even though + one would be expected because the concurrent transaction executing + <command>NOTIFY</> was observed to commit later. + </para> + + <para> + A side effect of the fix is that a transaction that has executed + a not-yet-committed <command>LISTEN</> command will not see any + row in <structname>pg_listener</> for the <command>LISTEN</>, + should it choose to look; formerly it would have. This behavior + was never documented one way or the other, but it is possible that + some applications depend on the old behavior. + </para> + </listitem> + + <listitem> + <para> + Fix display of constant expressions in <literal>ORDER BY</> + and <literal>GROUP BY</> (Tom) + </para> + + <para> + An explictly casted constant would be shown incorrectly. This could + for example lead to corruption of a view definition during + dump and reload. + </para> + </listitem> + + <listitem> + <para> + Fix <application>libpq</> to handle NOTICE messages correctly + during COPY OUT (Tom) + </para> + + <para> + This failure has only been observed to occur when a user-defined + datatype's output routine issues a NOTICE, but there is no + guarantee it couldn't happen due to other causes. + </para> + </listitem> + + </itemizedlist> + + </sect2> + </sect1> + <sect1 id="release-7-4-19"> <title>Release 7.4.19</title>