summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/release.sgml128
1 files changed, 108 insertions, 20 deletions
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml
index e066d1d1f4f..13e5a074d56 100644
--- a/doc/src/sgml/release.sgml
+++ b/doc/src/sgml/release.sgml
@@ -1,5 +1,5 @@
<!--
-$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.235.2.20 2004/03/05 19:52:39 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.235.2.21 2004/03/07 22:08:09 tgl Exp $
-->
<appendix id="release">
@@ -10,7 +10,7 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.235.2.20 2004/03/05 19:52:39 mo
<note>
<title>Release date</title>
- <simpara>2004-03-??</simpara>
+ <simpara>2004-03-08</simpara>
</note>
<para>
@@ -22,37 +22,125 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.235.2.20 2004/03/05 19:52:39 mo
<title>Migration to version 7.4.2</title>
<para>
- A dump/restore is <emphasis>not</emphasis> required for those
- running 7.4.X.
+ A dump/restore is not required for those running 7.4.X. However,
+ it may be advisable as the easiest method of incorporating fixes for
+ two errors that have been found in the initial contents of 7.4.X system
+ catalogs. A dump/initdb/reload sequence using 7.4.2's initdb will
+ automatically correct these problems.
+ </para>
+
+ <para>
+ The more severe of the two errors is that data type <type>anyarray</>
+ has the wrong alignment label; this is a problem because the
+ <structname>pg_statistic</> system catalog uses <type>anyarray</>
+ columns. The mislabeling can cause planner misestimations and even
+ crashes when planning queries that involve <literal>WHERE</> clauses on
+ double-aligned columns (such as <type>float8</> and <type>timestamp</>).
+ It is strongly recommended that all installations repair this error,
+ either by initdb or by following the manual repair procedure given
+ below.
+ </para>
+
+ <para>
+ The lesser error is that the system view <structname>pg_settings</>
+ ought to be marked as having public update access, to allow
+ <literal>UPDATE pg_settings</> to be used as a substitute for
+ <command>SET</>. This can also be fixed either by initdb or manually,
+ but it is not necessary to fix unless you want to use <literal>UPDATE
+ pg_settings</>.
+ </para>
+
+ <para>
+ If you wish not to do an initdb, the following procedure will work
+ for fixing <structname>pg_statistic</>. As the database superuser,
+ do:
+
+<programlisting>
+-- clear out old data in pg_statistic:
+DELETE FROM pg_statistic;
+VACUUM pg_statistic;
+-- this should update 1 row:
+UPDATE pg_type SET typalign = 'd' WHERE oid = 2277;
+-- this should update 6 rows:
+UPDATE pg_attribute SET attalign = 'd' WHERE atttypid = 2277;
+--
+-- At this point you MUST start a fresh backend to avoid a crash!
+--
+-- repopulate pg_statistic:
+ANALYZE;
+</programlisting>
+
+ This can be done in a live database, but beware that all backends
+ running in the altered database must be restarted before it is safe to
+ repopulate <structname>pg_statistic</>.
</para>
+ <para>
+ To repair the <structname>pg_settings</> error, simply do:
+<programlisting>
+GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;
+</programlisting>
+ </para>
+
+ <para>
+ The above procedures 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 errors. <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
+ procedures. 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>
<sect2>
<title>Changes</title>
-<para>As of 2004-03-02</para>
+<para>
+ Release 7.4.2 incorporates all the fixes included in release 7.3.6,
+ plus the following fixes:
+</para>
<itemizedlist>
-<listitem><para>Fix problems with ALTER TABLE during concurrent access (Tom)</para></listitem>
-<listitem><para>Improve hash build reliability (Tom)</para></listitem>
-<listitem><para>Fix statistics alignment bug that could affect optimizer, initdb required (Tom)</para></listitem>
-<listitem><para>Optimizer improvements (Tom)</para></listitem>
-<listitem><para>Permission fix for view updates (Tom)</para></listitem>
-<listitem><para>Allow non-super users to update pg_settings (Tom)</para></listitem>
-<listitem><para>Fix for multibyte handling in position() (Korea PostgreSQL Users' Group)</para></listitem>
-<listitem><para>Various multibyte fixes</para></listitem>
-<listitem><para>Fix problem with hitting open file limit, especially on OS X (Tom)</para></listitem>
-<listitem><para>Have pg_dump set client encoding on restore (Tom)</para></listitem>
+<listitem><para>Fix <structname>pg_statistics</> alignment bug that could crash optimizer</para>
+<para>See above for details about this problem.</para></listitem>
+<listitem><para>Allow non-super users to update <structname>pg_settings</></para></listitem>
+<listitem><para>Fix several optimizer bugs, most of which led to
+<quote>variable not found in subplan target lists</> errors</para></listitem>
+<listitem><para>Avoid out-of-memory failure during startup of large multiple
+index scan</para></listitem>
+<listitem><para>Fix multibyte problem that could lead to <quote>out of
+memory</> error during <command>COPY IN</></para></listitem>
+<listitem><para>Fix problems with <command>SELECT INTO</> / <command>CREATE
+TABLE AS</> from tables without OIDs</para></listitem>
+<listitem><para>Fix problems with <filename>alter_table</> regression test
+during parallel testing</para></listitem>
+<listitem><para>Fix problems with hitting open file limit, especially on OS X (Tom)</para></listitem>
+<listitem><para>Partial fix for Turkish-locale issues</para>
+<para>initdb will succeed now in Turkish locale, but there are still some
+inconveniences associated with the <literal>i/I</> problem.</para></listitem>
+<listitem><para>Make pg_dump set client encoding on restore</para></listitem>
+<listitem><para>Other minor pg_dump fixes</para></listitem>
<listitem><para>Allow ecpg to again use C keywords as column names (Michael)</para></listitem>
-<listitem><para>Added ecpg WHENEVER NOT_FOUND to SELECT/INSERT/UPDATE/DELETE (Michael)</para></listitem>
+<listitem><para>Added ecpg <literal>WHENEVER NOT_FOUND</> to
+<literal>SELECT/INSERT/UPDATE/DELETE</> (Michael)</para></listitem>
<listitem><para>Fix ecpg crash for queries calling set-returning functions (Michael)</para></listitem>
-<listitem><para>Various ecpg fixes (Michael)</para></listitem>
+<listitem><para>Various other ecpg fixes (Michael)</para></listitem>
<listitem><para>Fixes for Borland compiler</para></listitem>
<listitem><para>Thread build improvements (Bruce)</para></listitem>
-<listitem><para>Fix for configure --disable-shared support (Tom)</para></listitem>
-<listitem><para>Various build fixes</para></listitem>
-<listitem><para>Various jdbc fixes</para></listitem>
+<listitem><para>Various other build fixes</para></listitem>
+<listitem><para>Various JDBC fixes</para></listitem>
</itemizedlist>
</sect2>