From d807bbe8377172e607ea636ce4ff77be6f4dba26 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 30 Oct 2003 03:46:42 +0000
Subject: [PATCH] Fix markup for new release footnotes.

---
 HISTORY                   | 251 ++++++++++++++++++++++++++++++++------
 doc/src/sgml/release.sgml |   7 +-
 2 files changed, 216 insertions(+), 42 deletions(-)

diff --git a/HISTORY b/HISTORY
index 04daa724a15..8b37cb596bf 100644
--- a/HISTORY
+++ b/HISTORY
@@ -8,27 +8,28 @@
    Major changes in this release:
    
    Performance
-          IN/NOT IN subqueries are now much more efficient
+          IN/NOT IN subqueries are now much more efficient [1]
           
-          Improved GROUP BY processing by using hash buckets
+          Improved GROUP BY processing by using hash buckets [2]
           
-          New multi-key hash join capability
+          New multi-key hash join capability [3]
           
-          ANSI joins are now better optimized
+          ANSI joins are now better optimized [4]
           
-          Faster and more powerful regular expression code
+          Faster and more powerful regular expression code [5]
           
-          Function-inlining for simple SQL functions
+          Function-inlining for simple SQL functions [6]
           
    IPv6
           Full support for IPv6 connections and IPv6 address data types
+          [7]
           
    SSL
-          Major improvements in SSL performance and reliability
+          Major improvements in SSL performance and reliability [8]
           
    Index Growth Prevention
           Allow free space map to efficiently reuse empty index pages,
-          and other free space management improvements.
+          and other free space management improvements. [9]
           
    Standards Compliance
           Implement information schema
@@ -47,14 +48,15 @@
           
    Threads
           libpq and ecpg are now fully thread-safe with
-          --enable-thread-safety
+          --enable-thread-safety [10]
           
    Contrib
           New version of full text indexing (tsearch2)
           
-          New autovacuum tool
+          New autovacuum tool [11]
           
           Array handling has been improved and moved into the main server
+          [12]
      _________________________________________________________________
    
                           Migration to version 7.4
@@ -65,30 +67,33 @@
    Observe the following incompatibilities:
    
      * The server-side autocommit setting was removed and reimplemented
-       in client applications and languages.
+       in client applications and languages. [13]
      * Error message wording has changed substantially in this release,
        and error codes have been added.
      * ANSI inner joins may behave differently because they are now
        better optimized
-     * A number of server variables have been renamed for clarity
-     * MOVE/FETCH 0 now does nothing; return value of MOVE/FETCH 1/0
-       varies based on the current offset in the cursor
-     * COPY now can process carriage-return/line-feed and carriage-return
-       terminated files. Literal carriage-returns and line-feeds are no
-       longer accepted as data values; use \r and \n instead.
+     * A number of server variables have been renamed for clarity,
+       primarily those related to logging
+     * MOVE/FETCH 0 now does nothing [14]
+     * MOVE/FETCH now returns the actual number of rows moved/fetched, or
+       zero if at the beginning/end of the cursor [15]
+     * COPY now can process carriage-return and carriage-return/line-feed
+       end-of-line terminated files.
+     * Literal carriage-returns and line-feeds are no longer accepted as
+       data values; use \r and \n instead.
      * Trailing spaces are now trimmed when converting from CHAR(n) to
        VARCHAR(n) / TEXT
      * FLOAT(p) now measures 'p' in bits, not digits
      * Ambiguous date values now must match the ordering specified by
-       DateStyle
+       DateStyle [16]
      * The oidrand(), oidsrand(), and userfntest() functions have been
-       removed.
+       removed. [17]
      * 'now' will no longer work as a column default; now() or
-       CURRENT_TIMESTAMP should be used instead
+       CURRENT_TIMESTAMP should be used instead [18]
      * 'today' will no longer work as a column default; CURRENT_DATE
-       should be used instead
+       should be used instead [19]
      * Dollar sign ($) is no longer allowed in operator names
-     * Dollar sign ($) can be a non-first character in identifiers
+     * Dollar sign ($) can be a non-first character in identifiers [20]
      _________________________________________________________________
    
                                   Changes
@@ -97,19 +102,20 @@ Server Operation
 
      * Allow IPv6 server connections (Nigel Kukard, Johan Jordaan, Bruce,
        Tom, Kurt Roeckx, Andrew Dunstan)
-     * Fix SSL to handle errors cleanly (Nathan Mueller)
+     * Fix SSL to handle errors cleanly (Nathan Mueller) [21]
      * SSL protocol security and performance improvements (Sean
-       Chittenden)
-     * Print lock information when a deadlock is detected (Tom)
+       Chittenden) [22]
+     * Print lock information when a deadlock is detected (Tom) [23]
      * Update "/tmp" socket mod. times regularly to avoid their removal
-       (Tom)
+       (Tom) [24]
      * Enable PAM for MAC OS X (Aaron Hillegass)
-     * Make btree indexes fully WAL-safe (Tom)
+     * Make btree indexes fully WAL-safe (Tom) [25]
      * Allow btree index compaction and empty page reuse (Tom)
      * Fix inconsistent index lookups during split of first root page
-       (Tom)
+       (Tom) [26]
      * Improve free space map allocation logic (Tom)
      * Preserve free space information between postmaster restarts (Tom)
+       [27]
      * Set proper schema permissions in initdb (Peter)
      * Add start time to pg_stat_activity (Neil)
      * New code to detect corrupt disk pages; erase with
@@ -132,13 +138,13 @@ Performance
      * Allow multi-key hash joins (Tom)
      * Improve constant folding (Tom)
      * Add ability to inline simple SQL functions (Tom)
-     * Reduce memory usage for queries using complex functions (Tom)
-     * Improve GEQO optimizer performance (Tom)
+     * Reduce memory usage for queries using complex functions (Tom) [28]
+     * Improve GEQO optimizer performance (Tom) [29]
      * Allow IN/NOT IN to be handled via hash tables (Tom)
      * Improve NOT IN (subquery) performance (Tom)
      * Allow most IN subqueries to be processed as joins (Tom)
      * Allow the postmaster to preload libraries using preload_libraries
-       (Joe)
+       (Joe) [30]
      * Improve optimizer cost computations, particularly for subqueries
        (Tom)
      * Avoid sort when subquery ORDER BY matches upper query (Tom)
@@ -156,17 +162,17 @@ Performance
      * Improve trigger/constraint performance (Stephan)
      * Improve speed of col IN (const, const, const, ...) (Tom)
      * Fix hash indexes which were broken in rare cases (Tom)
-     * Improve hash index concurrency and speed (Tom)
+     * Improve hash index concurrency and speed (Tom) [31]
      * Align shared buffers on 32-byte boundary for copy speed
-       improvement (Manfred Spraul)
+       improvement (Manfred Spraul) [32]
      * The NUMERIC datatype has been reimplemented for better performance
-       (Tom)
+       (Tom) [33]
      _________________________________________________________________
    
 Server Configuration
 
      * Rename server parameter server_min_messages to log_min_messages
-       (Bruce)
+       (Bruce) [34]
      * Rename show_*_stats to log_*_stats (Bruce)
      * Rename show_source_port to log_source_port (Bruce)
      * Rename hostname_lookup to log_hostname (Bruce)
@@ -243,10 +249,9 @@ Utility Commands
 
      * Add ON COMMIT clause to CREATE TABLE for temp tables (Gavin)
      * Allow cursors outside transactions using WITH HOLD (Neil)
-     * Make MOVE/FETCH 0 actually move/fetch 0 (Bruce)
-     * Cause FETCH 1 to return the next cursor row number, or zero if at
-       beginning/end of cursor, per SQL spec (Bruce)
-     * Have MOVE return 0 or 1 depending on cursor position (Bruce)
+     * MOVE/FETCH 0 now does nothing (Bruce)
+     * Cause MOVE/FETCH to return the number of rows moved/fetched, or
+       zero if at the beginning/end of cursor, per SQL spec (Bruce)
      * Properly handle SCROLL with cursors, or report an error (Neil)
      * Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n
        options for FETCH and MOVE (Tom)
@@ -4704,3 +4709,171 @@ The following bugs have been fixed in postgres95-beta-0.02:
      Release date: 1995-05-01
      
    Initial release.
+   
+  Notes
+  
+   [1]
+   
+   In previous releases, IN/NOT IN subqueries were joined to the upper
+   query by sequentially scanning the subquery looking for a join. The
+   7.4 code uses the same sophisticated techniques used by ordinary joins
+   and so is much faster, and is now faster than EXISTS subqueries.
+   [2]
+   
+   In previous releases, GROUP BY totals were accumulated by sequentially
+   scanning the list of groups looking for a match; the 7.4 code places
+   GROUP BY values in hash buckets so the proper match can be found much
+   quicker. This is particularly significant in speeding up queries that
+   have a large number of distinct GROUP BY values.
+   [3]
+   
+   In previous releases, hash joins could only occur on single-column
+   joins. This release allows multi-column hash joins.
+   [4]
+   
+   Prior releases evaluated ANSI join syntax only in the order specified
+   by the query; 7.4 allows full optimization of queries using ANSI join
+   syntax, meaning the optimizer considers all possible join orderings
+   and chooses the most efficient.
+   [5]
+   
+   The entire regular expression module has been replaced with a new
+   version by Henry Spencer, originally written for TCL. The code greatly
+   improves performance and supports several flavors of regular
+   expressions.
+   [6]
+   
+   Simple SQL functions can now be inlined by including their SQL in the
+   main query. This improves performance by preventing repeated calls to
+   the SQL function --- this allows simple SQL functions to behave like
+   macros.
+   [7]
+   
+   Prior releases allowed only IPv6 connections and IP data types only
+   supported IPv4 addresses. This release adds full IPv6 support in both
+   of these areas.
+   [8]
+   
+   Several people very familiar with the SSL API have overhauled our SSL
+   code to improve SSL key negotiation and error recovery.
+   [9]
+   
+   In prior releases, index pages that were left empty because of deleted
+   rows could only be reused by rows with index values similar to the
+   original rows indexed on that page. In 7.4, VACUUM records empty index
+   pages and allows them to be used for any future index rows.
+   [10]
+   
+   While prior libpq releases already supported threads, this release
+   improves thread safety by fixing some non-thread-safe code that was
+   used in the database connection routines.
+   [11]
+   
+   This new tool monitors the database statistics tables for
+   INSERT/UPDATE/DELETE activity and automatically vacuums tables when
+   needed.
+   [12]
+   
+   Many array limitations have been removed and they behave more like
+   fully-supported data types.
+   [13]
+   
+   Server-side autocommit was causing too many problems with languages
+   and applications that wanted to control their own autocommit behavior
+   so autocommit was removed from the server and added to individual
+   client API's as appropriate.
+   [14]
+   
+   In prior releases, FETCH 0 would fetch all remaining rows, and MOVE 0
+   would move to the end of the cursor.
+   [15]
+   
+   Prior releases would return the tuple count passed to the command, not
+   the actual number of rows FETCHed or MOVEd.
+   [16]
+   
+   In prior releases, a date of 10/20/03 was interpreted as a date in
+   October even if the DateStyle specified the day should be first. In
+   7.4, DateStyle is honored when converting such values and will throw
+   an error if the date is invalid for the current DateStyle.
+   [17]
+   
+   These functions were determined to be no longer useful.
+   [18]
+   
+   In prior releases, there was special code so the string 'now' was
+   interpreted at "INSERT" time and not at table creation time, but this
+   work around didn't cover all cases. Release 7.4 now requires that
+   defaults be defined properly using the now() or the special value
+   CURRENT_TIMESTAMP. These will work in all situations.
+   [19]
+   
+   Same description as above.
+   [20]
+   
+   This was done to improve compatibility with other database systems.
+   [21]
+   
+   In prior releases, certain rare SSL API error reports were not handled
+   correctly. This release fixes those problems. gracefully.
+   [22]
+   
+   SSL key renegotiation was happening too frequently, causing poor SSL
+   performance. Also, initial key handling was improved.
+   [23]
+   
+   This allows easier debugging of deadlock situations.
+   [24]
+   
+   This should help prevent "/tmp" directory cleaner administration
+   scripts from removing server socket files.
+   [25]
+   
+   In prior releases, under certain rare cases, a server crash could
+   cause btree indexes to become corrupt. This release removes those last
+   few rare cases.
+   [26]
+   
+   In prior releases, when a single-page index split into two page, there
+   was a brief period when another database session would miss seeing an
+   index entry. This failure was possible primarly on multi-cpu machines.
+   This release fixes that rare failure case.
+   [27]
+   
+   In prior releases, the free space map was not saved when the
+   postmaster was stopped, so newly started servers has no free space
+   information. This release saves the free space map, which is loaded
+   when the server is restarted.
+   [28]
+   
+   In prior releases, functions returning allocated memory would not free
+   it until the query completed. This release allows the freeing of
+   function-allocated memory when the function call completes, reducing
+   the total memory used by functions.
+   [29]
+   
+   There were several inefficiencies in the way the GEQO optimizer
+   managed potential query paths. This release fixes this.
+   [30]
+   
+   For shared libraries that require a long time to load, this option is
+   available so the library can be pre-loaded in the postmaster and
+   inherited by all database sessions.
+   [31]
+   
+   Prior releases suffered from poor hash index performance, particularly
+   for high concurrency situations. This release fixes that, and the
+   development group is interested in reports comparing btree and hash
+   index performance.
+   [32]
+   
+   Certain CPU's perform faster data copies when addresses are 32-bit
+   aligned.
+   [33]
+   
+   NUMERIC used to be stored in base-100. The new code uses base-10000,
+   for significantly better performance.
+   [34]
+   
+   This was done so most parameters that control the server logs being
+   with log_.
diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml
index f6b9a73cea9..b9b94bb3a7a 100644
--- a/doc/src/sgml/release.sgml
+++ b/doc/src/sgml/release.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.221 2003/10/29 23:28:59 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/release.sgml,v 1.222 2003/10/30 03:46:42 momjian Exp $
 -->
 
 <appendix id="release">
@@ -456,13 +456,14 @@ required for those wishing to migrate data from any previous release.</para>
 <sect3><title>Server Configuration</title>
 
 <itemizedlist>
-<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)</para></listitem>
+<listitem><para>Rename server parameter server_min_messages to log_min_messages (Bruce)
    <footnote>
    <para>
     This was done so most parameters that control the server logs being
-    with <literal>log_>/>.
+    with <literal>log_</>.
    </para>
    </footnote>
+</para></listitem>
 <listitem><para>Rename show_*_stats to log_*_stats (Bruce)</para></listitem>
 <listitem><para>Rename show_source_port to log_source_port (Bruce)</para></listitem>
 <listitem><para>Rename hostname_lookup to log_hostname (Bruce)</para></listitem>
-- 
GitLab